diff options
Diffstat (limited to 'protocols/Telegram/tdlib')
23 files changed, 205842 insertions, 2 deletions
diff --git a/protocols/Telegram/tdlib/td/.gitignore b/protocols/Telegram/tdlib/td/.gitignore index 2572f22305..9ecee470aa 100644 --- a/protocols/Telegram/tdlib/td/.gitignore +++ b/protocols/Telegram/tdlib/td/.gitignore @@ -1,8 +1,6 @@ **/*build*/ **/.*.swp **/.DS_Store -**/auto/ -auto/ db_backup *.pyc docs/ diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.cpp new file mode 100644 index 0000000000..7e85a47bdd --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.cpp @@ -0,0 +1,1927 @@ +#include "mtproto_api.h" + +#include "td/tl/tl_object_parse.h" +#include "td/tl/tl_object_store.h" + +#include "td/utils/common.h" +#include "td/utils/format.h" +#include "td/utils/logging.h" +#include "td/utils/SliceBuilder.h" +#include "td/utils/tl_parsers.h" +#include "td/utils/tl_storers.h" +#include "td/utils/TlStorerToString.h" + +namespace td { +namespace mtproto_api { + +std::string to_string(const BaseObject &value) { + TlStorerToString storer; + value.store(storer, ""); + return storer.move_as_string(); +} + +object_ptr<Object> Object::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case bad_msg_notification::ID: + return bad_msg_notification::fetch(p); + case bad_server_salt::ID: + return bad_server_salt::fetch(p); + case bind_auth_key_inner::ID: + return bind_auth_key_inner::fetch(p); + case client_DH_inner_data::ID: + return client_DH_inner_data::fetch(p); + case destroy_auth_key_ok::ID: + return destroy_auth_key_ok::fetch(p); + case destroy_auth_key_none::ID: + return destroy_auth_key_none::fetch(p); + case destroy_auth_key_fail::ID: + return destroy_auth_key_fail::fetch(p); + case future_salt::ID: + return future_salt::fetch(p); + case future_salts::ID: + return future_salts::fetch(p); + case gzip_packed::ID: + return gzip_packed::fetch(p); + case dummyHttpWait::ID: + return dummyHttpWait::fetch(p); + case msg_detailed_info::ID: + return msg_detailed_info::fetch(p); + case msg_new_detailed_info::ID: + return msg_new_detailed_info::fetch(p); + case msg_resend_req::ID: + return msg_resend_req::fetch(p); + case msgs_ack::ID: + return msgs_ack::fetch(p); + case msgs_all_info::ID: + return msgs_all_info::fetch(p); + case msgs_state_info::ID: + return msgs_state_info::fetch(p); + case msgs_state_req::ID: + return msgs_state_req::fetch(p); + case new_session_created::ID: + return new_session_created::fetch(p); + case p_q_inner_data_dc::ID: + return p_q_inner_data_dc::fetch(p); + case p_q_inner_data_temp_dc::ID: + return p_q_inner_data_temp_dc::fetch(p); + case pong::ID: + return pong::fetch(p); + case rsa_public_key::ID: + return rsa_public_key::fetch(p); + case resPQ::ID: + return resPQ::fetch(p); + case rpc_answer_unknown::ID: + return rpc_answer_unknown::fetch(p); + case rpc_answer_dropped_running::ID: + return rpc_answer_dropped_running::fetch(p); + case rpc_answer_dropped::ID: + return rpc_answer_dropped::fetch(p); + case rpc_error::ID: + return rpc_error::fetch(p); + case server_DH_params_ok::ID: + return server_DH_params_ok::fetch(p); + case server_DH_inner_data::ID: + return server_DH_inner_data::fetch(p); + case dh_gen_ok::ID: + return dh_gen_ok::fetch(p); + case dh_gen_retry::ID: + return dh_gen_retry::fetch(p); + case dh_gen_fail::ID: + return dh_gen_fail::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +object_ptr<Function> Function::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case destroy_auth_key::ID: + return destroy_auth_key::fetch(p); + case get_future_salts::ID: + return get_future_salts::fetch(p); + case http_wait::ID: + return http_wait::fetch(p); + case ping_delay_disconnect::ID: + return ping_delay_disconnect::fetch(p); + case req_DH_params::ID: + return req_DH_params::fetch(p); + case req_pq_multi::ID: + return req_pq_multi::fetch(p); + case rpc_drop_answer::ID: + return rpc_drop_answer::fetch(p); + case set_client_DH_params::ID: + return set_client_DH_params::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +object_ptr<BadMsgNotification> BadMsgNotification::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case bad_msg_notification::ID: + return bad_msg_notification::fetch(p); + case bad_server_salt::ID: + return bad_server_salt::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +bad_msg_notification::bad_msg_notification(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_) + : bad_msg_id_(bad_msg_id_) + , bad_msg_seqno_(bad_msg_seqno_) + , error_code_(error_code_) +{} + +const std::int32_t bad_msg_notification::ID; + +object_ptr<BadMsgNotification> bad_msg_notification::fetch(TlParser &p) { + return make_tl_object<bad_msg_notification>(p); +} + +bad_msg_notification::bad_msg_notification(TlParser &p) +#define FAIL(error) p.set_error(error) + : bad_msg_id_(TlFetchLong::parse(p)) + , bad_msg_seqno_(TlFetchInt::parse(p)) + , error_code_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void bad_msg_notification::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(bad_msg_id_, s); + TlStoreBinary::store(bad_msg_seqno_, s); + TlStoreBinary::store(error_code_, s); +} + +void bad_msg_notification::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(bad_msg_id_, s); + TlStoreBinary::store(bad_msg_seqno_, s); + TlStoreBinary::store(error_code_, s); +} + +void bad_msg_notification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bad_msg_notification"); + s.store_field("bad_msg_id", bad_msg_id_); + s.store_field("bad_msg_seqno", bad_msg_seqno_); + s.store_field("error_code", error_code_); + s.store_class_end(); + } +} + +bad_server_salt::bad_server_salt(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_, int64 new_server_salt_) + : bad_msg_id_(bad_msg_id_) + , bad_msg_seqno_(bad_msg_seqno_) + , error_code_(error_code_) + , new_server_salt_(new_server_salt_) +{} + +const std::int32_t bad_server_salt::ID; + +object_ptr<BadMsgNotification> bad_server_salt::fetch(TlParser &p) { + return make_tl_object<bad_server_salt>(p); +} + +bad_server_salt::bad_server_salt(TlParser &p) +#define FAIL(error) p.set_error(error) + : bad_msg_id_(TlFetchLong::parse(p)) + , bad_msg_seqno_(TlFetchInt::parse(p)) + , error_code_(TlFetchInt::parse(p)) + , new_server_salt_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void bad_server_salt::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(bad_msg_id_, s); + TlStoreBinary::store(bad_msg_seqno_, s); + TlStoreBinary::store(error_code_, s); + TlStoreBinary::store(new_server_salt_, s); +} + +void bad_server_salt::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(bad_msg_id_, s); + TlStoreBinary::store(bad_msg_seqno_, s); + TlStoreBinary::store(error_code_, s); + TlStoreBinary::store(new_server_salt_, s); +} + +void bad_server_salt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bad_server_salt"); + s.store_field("bad_msg_id", bad_msg_id_); + s.store_field("bad_msg_seqno", bad_msg_seqno_); + s.store_field("error_code", error_code_); + s.store_field("new_server_salt", new_server_salt_); + s.store_class_end(); + } +} + +bind_auth_key_inner::bind_auth_key_inner(int64 nonce_, int64 temp_auth_key_id_, int64 perm_auth_key_id_, int64 temp_session_id_, int32 expires_at_) + : nonce_(nonce_) + , temp_auth_key_id_(temp_auth_key_id_) + , perm_auth_key_id_(perm_auth_key_id_) + , temp_session_id_(temp_session_id_) + , expires_at_(expires_at_) +{} + +const std::int32_t bind_auth_key_inner::ID; + +object_ptr<bind_auth_key_inner> bind_auth_key_inner::fetch(TlParser &p) { + return make_tl_object<bind_auth_key_inner>(p); +} + +bind_auth_key_inner::bind_auth_key_inner(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchLong::parse(p)) + , temp_auth_key_id_(TlFetchLong::parse(p)) + , perm_auth_key_id_(TlFetchLong::parse(p)) + , temp_session_id_(TlFetchLong::parse(p)) + , expires_at_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void bind_auth_key_inner::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(temp_auth_key_id_, s); + TlStoreBinary::store(perm_auth_key_id_, s); + TlStoreBinary::store(temp_session_id_, s); + TlStoreBinary::store(expires_at_, s); +} + +void bind_auth_key_inner::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(temp_auth_key_id_, s); + TlStoreBinary::store(perm_auth_key_id_, s); + TlStoreBinary::store(temp_session_id_, s); + TlStoreBinary::store(expires_at_, s); +} + +void bind_auth_key_inner::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bind_auth_key_inner"); + s.store_field("nonce", nonce_); + s.store_field("temp_auth_key_id", temp_auth_key_id_); + s.store_field("perm_auth_key_id", perm_auth_key_id_); + s.store_field("temp_session_id", temp_session_id_); + s.store_field("expires_at", expires_at_); + s.store_class_end(); + } +} + +client_DH_inner_data::client_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int64 retry_id_, string const &g_b_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , retry_id_(retry_id_) + , g_b_(g_b_) +{} + +const std::int32_t client_DH_inner_data::ID; + +object_ptr<client_DH_inner_data> client_DH_inner_data::fetch(TlParser &p) { + return make_tl_object<client_DH_inner_data>(p); +} + +client_DH_inner_data::client_DH_inner_data(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , retry_id_(TlFetchLong::parse(p)) + , g_b_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void client_DH_inner_data::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(retry_id_, s); + TlStoreString::store(g_b_, s); +} + +void client_DH_inner_data::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(retry_id_, s); + TlStoreString::store(g_b_, s); +} + +void client_DH_inner_data::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "client_DH_inner_data"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("retry_id", retry_id_); + s.store_field("g_b", g_b_); + s.store_class_end(); + } +} + +object_ptr<DestroyAuthKeyRes> DestroyAuthKeyRes::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case destroy_auth_key_ok::ID: + return destroy_auth_key_ok::fetch(p); + case destroy_auth_key_none::ID: + return destroy_auth_key_none::fetch(p); + case destroy_auth_key_fail::ID: + return destroy_auth_key_fail::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t destroy_auth_key_ok::ID; + +object_ptr<DestroyAuthKeyRes> destroy_auth_key_ok::fetch(TlParser &p) { + return make_tl_object<destroy_auth_key_ok>(); +} + +void destroy_auth_key_ok::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void destroy_auth_key_ok::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void destroy_auth_key_ok::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "destroy_auth_key_ok"); + s.store_class_end(); + } +} + +const std::int32_t destroy_auth_key_none::ID; + +object_ptr<DestroyAuthKeyRes> destroy_auth_key_none::fetch(TlParser &p) { + return make_tl_object<destroy_auth_key_none>(); +} + +void destroy_auth_key_none::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void destroy_auth_key_none::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void destroy_auth_key_none::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "destroy_auth_key_none"); + s.store_class_end(); + } +} + +const std::int32_t destroy_auth_key_fail::ID; + +object_ptr<DestroyAuthKeyRes> destroy_auth_key_fail::fetch(TlParser &p) { + return make_tl_object<destroy_auth_key_fail>(); +} + +void destroy_auth_key_fail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void destroy_auth_key_fail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void destroy_auth_key_fail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "destroy_auth_key_fail"); + s.store_class_end(); + } +} + +future_salt::future_salt(int32 valid_since_, int32 valid_until_, int64 salt_) + : valid_since_(valid_since_) + , valid_until_(valid_until_) + , salt_(salt_) +{} + +const std::int32_t future_salt::ID; + +object_ptr<future_salt> future_salt::fetch(TlParser &p) { + return make_tl_object<future_salt>(p); +} + +future_salt::future_salt(TlParser &p) +#define FAIL(error) p.set_error(error) + : valid_since_(TlFetchInt::parse(p)) + , valid_until_(TlFetchInt::parse(p)) + , salt_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void future_salt::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(valid_since_, s); + TlStoreBinary::store(valid_until_, s); + TlStoreBinary::store(salt_, s); +} + +void future_salt::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(valid_since_, s); + TlStoreBinary::store(valid_until_, s); + TlStoreBinary::store(salt_, s); +} + +void future_salt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "future_salt"); + s.store_field("valid_since", valid_since_); + s.store_field("valid_until", valid_until_); + s.store_field("salt", salt_); + s.store_class_end(); + } +} + +future_salts::future_salts(int64 req_msg_id_, int32 now_, array<object_ptr<future_salt>> &&salts_) + : req_msg_id_(req_msg_id_) + , now_(now_) + , salts_(std::move(salts_)) +{} + +const std::int32_t future_salts::ID; + +object_ptr<future_salts> future_salts::fetch(TlParser &p) { + return make_tl_object<future_salts>(p); +} + +future_salts::future_salts(TlParser &p) +#define FAIL(error) p.set_error(error) + : req_msg_id_(TlFetchLong::parse(p)) + , now_(TlFetchInt::parse(p)) + , salts_(TlFetchVector<TlFetchObject<future_salt>>::parse(p)) +#undef FAIL +{} + +void future_salts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(req_msg_id_, s); + TlStoreBinary::store(now_, s); + TlStoreVector<TlStoreObject>::store(salts_, s); +} + +void future_salts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(req_msg_id_, s); + TlStoreBinary::store(now_, s); + TlStoreVector<TlStoreObject>::store(salts_, s); +} + +void future_salts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "future_salts"); + s.store_field("req_msg_id", req_msg_id_); + s.store_field("now", now_); + { s.store_vector_begin("salts", salts_.size()); for (const auto &_value : salts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +gzip_packed::gzip_packed(string const &packed_data_) + : packed_data_(packed_data_) +{} + +const std::int32_t gzip_packed::ID; + +object_ptr<gzip_packed> gzip_packed::fetch(TlParser &p) { + return make_tl_object<gzip_packed>(p); +} + +gzip_packed::gzip_packed(TlParser &p) +#define FAIL(error) p.set_error(error) + : packed_data_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void gzip_packed::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(packed_data_, s); +} + +void gzip_packed::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(packed_data_, s); +} + +void gzip_packed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "gzip_packed"); + s.store_field("packed_data", packed_data_); + s.store_class_end(); + } +} + +const std::int32_t dummyHttpWait::ID; + +object_ptr<dummyHttpWait> dummyHttpWait::fetch(TlParser &p) { + return make_tl_object<dummyHttpWait>(); +} + +void dummyHttpWait::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void dummyHttpWait::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void dummyHttpWait::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dummyHttpWait"); + s.store_class_end(); + } +} + +object_ptr<MsgDetailedInfo> MsgDetailedInfo::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case msg_detailed_info::ID: + return msg_detailed_info::fetch(p); + case msg_new_detailed_info::ID: + return msg_new_detailed_info::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +msg_detailed_info::msg_detailed_info(int64 msg_id_, int64 answer_msg_id_, int32 bytes_, int32 status_) + : msg_id_(msg_id_) + , answer_msg_id_(answer_msg_id_) + , bytes_(bytes_) + , status_(status_) +{} + +const std::int32_t msg_detailed_info::ID; + +object_ptr<MsgDetailedInfo> msg_detailed_info::fetch(TlParser &p) { + return make_tl_object<msg_detailed_info>(p); +} + +msg_detailed_info::msg_detailed_info(TlParser &p) +#define FAIL(error) p.set_error(error) + : msg_id_(TlFetchLong::parse(p)) + , answer_msg_id_(TlFetchLong::parse(p)) + , bytes_(TlFetchInt::parse(p)) + , status_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void msg_detailed_info::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(answer_msg_id_, s); + TlStoreBinary::store(bytes_, s); + TlStoreBinary::store(status_, s); +} + +void msg_detailed_info::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(answer_msg_id_, s); + TlStoreBinary::store(bytes_, s); + TlStoreBinary::store(status_, s); +} + +void msg_detailed_info::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "msg_detailed_info"); + s.store_field("msg_id", msg_id_); + s.store_field("answer_msg_id", answer_msg_id_); + s.store_field("bytes", bytes_); + s.store_field("status", status_); + s.store_class_end(); + } +} + +msg_new_detailed_info::msg_new_detailed_info(int64 answer_msg_id_, int32 bytes_, int32 status_) + : answer_msg_id_(answer_msg_id_) + , bytes_(bytes_) + , status_(status_) +{} + +const std::int32_t msg_new_detailed_info::ID; + +object_ptr<MsgDetailedInfo> msg_new_detailed_info::fetch(TlParser &p) { + return make_tl_object<msg_new_detailed_info>(p); +} + +msg_new_detailed_info::msg_new_detailed_info(TlParser &p) +#define FAIL(error) p.set_error(error) + : answer_msg_id_(TlFetchLong::parse(p)) + , bytes_(TlFetchInt::parse(p)) + , status_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void msg_new_detailed_info::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(answer_msg_id_, s); + TlStoreBinary::store(bytes_, s); + TlStoreBinary::store(status_, s); +} + +void msg_new_detailed_info::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(answer_msg_id_, s); + TlStoreBinary::store(bytes_, s); + TlStoreBinary::store(status_, s); +} + +void msg_new_detailed_info::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "msg_new_detailed_info"); + s.store_field("answer_msg_id", answer_msg_id_); + s.store_field("bytes", bytes_); + s.store_field("status", status_); + s.store_class_end(); + } +} + +msg_resend_req::msg_resend_req(array<int64> &&msg_ids_) + : msg_ids_(std::move(msg_ids_)) +{} + +const std::int32_t msg_resend_req::ID; + +object_ptr<msg_resend_req> msg_resend_req::fetch(TlParser &p) { + return make_tl_object<msg_resend_req>(p); +} + +msg_resend_req::msg_resend_req(TlParser &p) +#define FAIL(error) p.set_error(error) + : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void msg_resend_req::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); +} + +void msg_resend_req::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); +} + +void msg_resend_req::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "msg_resend_req"); + { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +msgs_ack::msgs_ack(array<int64> &&msg_ids_) + : msg_ids_(std::move(msg_ids_)) +{} + +const std::int32_t msgs_ack::ID; + +object_ptr<msgs_ack> msgs_ack::fetch(TlParser &p) { + return make_tl_object<msgs_ack>(p); +} + +msgs_ack::msgs_ack(TlParser &p) +#define FAIL(error) p.set_error(error) + : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void msgs_ack::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); +} + +void msgs_ack::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); +} + +void msgs_ack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "msgs_ack"); + { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +msgs_all_info::msgs_all_info(array<int64> &&msg_ids_, string const &info_) + : msg_ids_(std::move(msg_ids_)) + , info_(info_) +{} + +const std::int32_t msgs_all_info::ID; + +object_ptr<msgs_all_info> msgs_all_info::fetch(TlParser &p) { + return make_tl_object<msgs_all_info>(p); +} + +msgs_all_info::msgs_all_info(TlParser &p) +#define FAIL(error) p.set_error(error) + : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) + , info_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void msgs_all_info::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); + TlStoreString::store(info_, s); +} + +void msgs_all_info::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); + TlStoreString::store(info_, s); +} + +void msgs_all_info::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "msgs_all_info"); + { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("info", info_); + s.store_class_end(); + } +} + +msgs_state_info::msgs_state_info(int64 req_msg_id_, string const &info_) + : req_msg_id_(req_msg_id_) + , info_(info_) +{} + +const std::int32_t msgs_state_info::ID; + +object_ptr<msgs_state_info> msgs_state_info::fetch(TlParser &p) { + return make_tl_object<msgs_state_info>(p); +} + +msgs_state_info::msgs_state_info(TlParser &p) +#define FAIL(error) p.set_error(error) + : req_msg_id_(TlFetchLong::parse(p)) + , info_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void msgs_state_info::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(req_msg_id_, s); + TlStoreString::store(info_, s); +} + +void msgs_state_info::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(req_msg_id_, s); + TlStoreString::store(info_, s); +} + +void msgs_state_info::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "msgs_state_info"); + s.store_field("req_msg_id", req_msg_id_); + s.store_field("info", info_); + s.store_class_end(); + } +} + +msgs_state_req::msgs_state_req(array<int64> &&msg_ids_) + : msg_ids_(std::move(msg_ids_)) +{} + +const std::int32_t msgs_state_req::ID; + +object_ptr<msgs_state_req> msgs_state_req::fetch(TlParser &p) { + return make_tl_object<msgs_state_req>(p); +} + +msgs_state_req::msgs_state_req(TlParser &p) +#define FAIL(error) p.set_error(error) + : msg_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void msgs_state_req::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); +} + +void msgs_state_req::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(msg_ids_, s); +} + +void msgs_state_req::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "msgs_state_req"); + { s.store_vector_begin("msg_ids", msg_ids_.size()); for (const auto &_value : msg_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +new_session_created::new_session_created(int64 first_msg_id_, int64 unique_id_, int64 server_salt_) + : first_msg_id_(first_msg_id_) + , unique_id_(unique_id_) + , server_salt_(server_salt_) +{} + +const std::int32_t new_session_created::ID; + +object_ptr<new_session_created> new_session_created::fetch(TlParser &p) { + return make_tl_object<new_session_created>(p); +} + +new_session_created::new_session_created(TlParser &p) +#define FAIL(error) p.set_error(error) + : first_msg_id_(TlFetchLong::parse(p)) + , unique_id_(TlFetchLong::parse(p)) + , server_salt_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void new_session_created::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(first_msg_id_, s); + TlStoreBinary::store(unique_id_, s); + TlStoreBinary::store(server_salt_, s); +} + +void new_session_created::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(first_msg_id_, s); + TlStoreBinary::store(unique_id_, s); + TlStoreBinary::store(server_salt_, s); +} + +void new_session_created::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "new_session_created"); + s.store_field("first_msg_id", first_msg_id_); + s.store_field("unique_id", unique_id_); + s.store_field("server_salt", server_salt_); + s.store_class_end(); + } +} + +object_ptr<P_Q_inner_data> P_Q_inner_data::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case p_q_inner_data_dc::ID: + return p_q_inner_data_dc::fetch(p); + case p_q_inner_data_temp_dc::ID: + return p_q_inner_data_temp_dc::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +p_q_inner_data_dc::p_q_inner_data_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_) + : pq_(pq_) + , p_(p_) + , q_(q_) + , nonce_(nonce_) + , server_nonce_(server_nonce_) + , new_nonce_(new_nonce_) + , dc_(dc_) +{} + +const std::int32_t p_q_inner_data_dc::ID; + +object_ptr<P_Q_inner_data> p_q_inner_data_dc::fetch(TlParser &p) { + return make_tl_object<p_q_inner_data_dc>(p); +} + +p_q_inner_data_dc::p_q_inner_data_dc(TlParser &p) +#define FAIL(error) p.set_error(error) + : pq_(TlFetchString<string>::parse(p)) + , p_(TlFetchString<string>::parse(p)) + , q_(TlFetchString<string>::parse(p)) + , nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , new_nonce_(TlFetchInt256::parse(p)) + , dc_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void p_q_inner_data_dc::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(pq_, s); + TlStoreString::store(p_, s); + TlStoreString::store(q_, s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_, s); + TlStoreBinary::store(dc_, s); +} + +void p_q_inner_data_dc::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(pq_, s); + TlStoreString::store(p_, s); + TlStoreString::store(q_, s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_, s); + TlStoreBinary::store(dc_, s); +} + +void p_q_inner_data_dc::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "p_q_inner_data_dc"); + s.store_field("pq", pq_); + s.store_field("p", p_); + s.store_field("q", q_); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("new_nonce", new_nonce_); + s.store_field("dc", dc_); + s.store_class_end(); + } +} + +p_q_inner_data_temp_dc::p_q_inner_data_temp_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_, int32 expires_in_) + : pq_(pq_) + , p_(p_) + , q_(q_) + , nonce_(nonce_) + , server_nonce_(server_nonce_) + , new_nonce_(new_nonce_) + , dc_(dc_) + , expires_in_(expires_in_) +{} + +const std::int32_t p_q_inner_data_temp_dc::ID; + +object_ptr<P_Q_inner_data> p_q_inner_data_temp_dc::fetch(TlParser &p) { + return make_tl_object<p_q_inner_data_temp_dc>(p); +} + +p_q_inner_data_temp_dc::p_q_inner_data_temp_dc(TlParser &p) +#define FAIL(error) p.set_error(error) + : pq_(TlFetchString<string>::parse(p)) + , p_(TlFetchString<string>::parse(p)) + , q_(TlFetchString<string>::parse(p)) + , nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , new_nonce_(TlFetchInt256::parse(p)) + , dc_(TlFetchInt::parse(p)) + , expires_in_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void p_q_inner_data_temp_dc::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(pq_, s); + TlStoreString::store(p_, s); + TlStoreString::store(q_, s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_, s); + TlStoreBinary::store(dc_, s); + TlStoreBinary::store(expires_in_, s); +} + +void p_q_inner_data_temp_dc::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(pq_, s); + TlStoreString::store(p_, s); + TlStoreString::store(q_, s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_, s); + TlStoreBinary::store(dc_, s); + TlStoreBinary::store(expires_in_, s); +} + +void p_q_inner_data_temp_dc::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "p_q_inner_data_temp_dc"); + s.store_field("pq", pq_); + s.store_field("p", p_); + s.store_field("q", q_); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("new_nonce", new_nonce_); + s.store_field("dc", dc_); + s.store_field("expires_in", expires_in_); + s.store_class_end(); + } +} + +pong::pong(int64 msg_id_, int64 ping_id_) + : msg_id_(msg_id_) + , ping_id_(ping_id_) +{} + +const std::int32_t pong::ID; + +object_ptr<pong> pong::fetch(TlParser &p) { + return make_tl_object<pong>(p); +} + +pong::pong(TlParser &p) +#define FAIL(error) p.set_error(error) + : msg_id_(TlFetchLong::parse(p)) + , ping_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void pong::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(ping_id_, s); +} + +void pong::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(ping_id_, s); +} + +void pong::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pong"); + s.store_field("msg_id", msg_id_); + s.store_field("ping_id", ping_id_); + s.store_class_end(); + } +} + +rsa_public_key::rsa_public_key(string const &n_, string const &e_) + : n_(n_) + , e_(e_) +{} + +const std::int32_t rsa_public_key::ID; + +object_ptr<rsa_public_key> rsa_public_key::fetch(TlParser &p) { + return make_tl_object<rsa_public_key>(p); +} + +rsa_public_key::rsa_public_key(TlParser &p) +#define FAIL(error) p.set_error(error) + : n_(TlFetchString<string>::parse(p)) + , e_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void rsa_public_key::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(n_, s); + TlStoreString::store(e_, s); +} + +void rsa_public_key::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(n_, s); + TlStoreString::store(e_, s); +} + +void rsa_public_key::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rsa_public_key"); + s.store_field("n", n_); + s.store_field("e", e_); + s.store_class_end(); + } +} + +resPQ::resPQ(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &pq_, array<int64> &&server_public_key_fingerprints_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , pq_(pq_) + , server_public_key_fingerprints_(std::move(server_public_key_fingerprints_)) +{} + +const std::int32_t resPQ::ID; + +object_ptr<resPQ> resPQ::fetch(TlParser &p) { + return make_tl_object<resPQ>(p); +} + +resPQ::resPQ(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , pq_(TlFetchString<string>::parse(p)) + , server_public_key_fingerprints_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void resPQ::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(pq_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(server_public_key_fingerprints_, s); +} + +void resPQ::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(pq_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(server_public_key_fingerprints_, s); +} + +void resPQ::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resPQ"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("pq", pq_); + { s.store_vector_begin("server_public_key_fingerprints", server_public_key_fingerprints_.size()); for (const auto &_value : server_public_key_fingerprints_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<RpcDropAnswer> RpcDropAnswer::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case rpc_answer_unknown::ID: + return rpc_answer_unknown::fetch(p); + case rpc_answer_dropped_running::ID: + return rpc_answer_dropped_running::fetch(p); + case rpc_answer_dropped::ID: + return rpc_answer_dropped::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t rpc_answer_unknown::ID; + +object_ptr<RpcDropAnswer> rpc_answer_unknown::fetch(TlParser &p) { + return make_tl_object<rpc_answer_unknown>(); +} + +void rpc_answer_unknown::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void rpc_answer_unknown::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void rpc_answer_unknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rpc_answer_unknown"); + s.store_class_end(); + } +} + +const std::int32_t rpc_answer_dropped_running::ID; + +object_ptr<RpcDropAnswer> rpc_answer_dropped_running::fetch(TlParser &p) { + return make_tl_object<rpc_answer_dropped_running>(); +} + +void rpc_answer_dropped_running::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void rpc_answer_dropped_running::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void rpc_answer_dropped_running::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rpc_answer_dropped_running"); + s.store_class_end(); + } +} + +rpc_answer_dropped::rpc_answer_dropped(int64 msg_id_, int32 seq_no_, int32 bytes_) + : msg_id_(msg_id_) + , seq_no_(seq_no_) + , bytes_(bytes_) +{} + +const std::int32_t rpc_answer_dropped::ID; + +object_ptr<RpcDropAnswer> rpc_answer_dropped::fetch(TlParser &p) { + return make_tl_object<rpc_answer_dropped>(p); +} + +rpc_answer_dropped::rpc_answer_dropped(TlParser &p) +#define FAIL(error) p.set_error(error) + : msg_id_(TlFetchLong::parse(p)) + , seq_no_(TlFetchInt::parse(p)) + , bytes_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void rpc_answer_dropped::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(seq_no_, s); + TlStoreBinary::store(bytes_, s); +} + +void rpc_answer_dropped::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(seq_no_, s); + TlStoreBinary::store(bytes_, s); +} + +void rpc_answer_dropped::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rpc_answer_dropped"); + s.store_field("msg_id", msg_id_); + s.store_field("seq_no", seq_no_); + s.store_field("bytes", bytes_); + s.store_class_end(); + } +} + +rpc_error::rpc_error(int32 error_code_, string const &error_message_) + : error_code_(error_code_) + , error_message_(error_message_) +{} + +const std::int32_t rpc_error::ID; + +object_ptr<rpc_error> rpc_error::fetch(TlParser &p) { + return make_tl_object<rpc_error>(p); +} + +rpc_error::rpc_error(TlParser &p) +#define FAIL(error) p.set_error(error) + : error_code_(TlFetchInt::parse(p)) + , error_message_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void rpc_error::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(error_code_, s); + TlStoreString::store(error_message_, s); +} + +void rpc_error::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(error_code_, s); + TlStoreString::store(error_message_, s); +} + +void rpc_error::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rpc_error"); + s.store_field("error_code", error_code_); + s.store_field("error_message", error_message_); + s.store_class_end(); + } +} + +server_DH_params_ok::server_DH_params_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_answer_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , encrypted_answer_(encrypted_answer_) +{} + +const std::int32_t server_DH_params_ok::ID; + +object_ptr<server_DH_params_ok> server_DH_params_ok::fetch(TlParser &p) { + return make_tl_object<server_DH_params_ok>(p); +} + +server_DH_params_ok::server_DH_params_ok(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , encrypted_answer_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void server_DH_params_ok::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(encrypted_answer_, s); +} + +void server_DH_params_ok::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(encrypted_answer_, s); +} + +void server_DH_params_ok::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "server_DH_params_ok"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("encrypted_answer", encrypted_answer_); + s.store_class_end(); + } +} + +server_DH_inner_data::server_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int32 g_, string const &dh_prime_, string const &g_a_, int32 server_time_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , g_(g_) + , dh_prime_(dh_prime_) + , g_a_(g_a_) + , server_time_(server_time_) +{} + +const std::int32_t server_DH_inner_data::ID; + +object_ptr<server_DH_inner_data> server_DH_inner_data::fetch(TlParser &p) { + return make_tl_object<server_DH_inner_data>(p); +} + +server_DH_inner_data::server_DH_inner_data(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , g_(TlFetchInt::parse(p)) + , dh_prime_(TlFetchString<string>::parse(p)) + , g_a_(TlFetchString<string>::parse(p)) + , server_time_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void server_DH_inner_data::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(g_, s); + TlStoreString::store(dh_prime_, s); + TlStoreString::store(g_a_, s); + TlStoreBinary::store(server_time_, s); +} + +void server_DH_inner_data::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(g_, s); + TlStoreString::store(dh_prime_, s); + TlStoreString::store(g_a_, s); + TlStoreBinary::store(server_time_, s); +} + +void server_DH_inner_data::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "server_DH_inner_data"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("g", g_); + s.store_field("dh_prime", dh_prime_); + s.store_field("g_a", g_a_); + s.store_field("server_time", server_time_); + s.store_class_end(); + } +} + +object_ptr<Set_client_DH_params_answer> Set_client_DH_params_answer::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case dh_gen_ok::ID: + return dh_gen_ok::fetch(p); + case dh_gen_retry::ID: + return dh_gen_retry::fetch(p); + case dh_gen_fail::ID: + return dh_gen_fail::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +dh_gen_ok::dh_gen_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash1_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , new_nonce_hash1_(new_nonce_hash1_) +{} + +const std::int32_t dh_gen_ok::ID; + +object_ptr<Set_client_DH_params_answer> dh_gen_ok::fetch(TlParser &p) { + return make_tl_object<dh_gen_ok>(p); +} + +dh_gen_ok::dh_gen_ok(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , new_nonce_hash1_(TlFetchInt128::parse(p)) +#undef FAIL +{} + +void dh_gen_ok::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_hash1_, s); +} + +void dh_gen_ok::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_hash1_, s); +} + +void dh_gen_ok::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dh_gen_ok"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("new_nonce_hash1", new_nonce_hash1_); + s.store_class_end(); + } +} + +dh_gen_retry::dh_gen_retry(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash2_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , new_nonce_hash2_(new_nonce_hash2_) +{} + +const std::int32_t dh_gen_retry::ID; + +object_ptr<Set_client_DH_params_answer> dh_gen_retry::fetch(TlParser &p) { + return make_tl_object<dh_gen_retry>(p); +} + +dh_gen_retry::dh_gen_retry(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , new_nonce_hash2_(TlFetchInt128::parse(p)) +#undef FAIL +{} + +void dh_gen_retry::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_hash2_, s); +} + +void dh_gen_retry::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_hash2_, s); +} + +void dh_gen_retry::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dh_gen_retry"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("new_nonce_hash2", new_nonce_hash2_); + s.store_class_end(); + } +} + +dh_gen_fail::dh_gen_fail(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash3_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , new_nonce_hash3_(new_nonce_hash3_) +{} + +const std::int32_t dh_gen_fail::ID; + +object_ptr<Set_client_DH_params_answer> dh_gen_fail::fetch(TlParser &p) { + return make_tl_object<dh_gen_fail>(p); +} + +dh_gen_fail::dh_gen_fail(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , new_nonce_hash3_(TlFetchInt128::parse(p)) +#undef FAIL +{} + +void dh_gen_fail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_hash3_, s); +} + +void dh_gen_fail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreBinary::store(new_nonce_hash3_, s); +} + +void dh_gen_fail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dh_gen_fail"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("new_nonce_hash3", new_nonce_hash3_); + s.store_class_end(); + } +} + +const std::int32_t destroy_auth_key::ID; + +object_ptr<destroy_auth_key> destroy_auth_key::fetch(TlParser &p) { + return make_tl_object<destroy_auth_key>(); +} + +void destroy_auth_key::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-784117408); +} + +void destroy_auth_key::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-784117408); +} + +void destroy_auth_key::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "destroy_auth_key"); + s.store_class_end(); + } +} + +destroy_auth_key::ReturnType destroy_auth_key::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<DestroyAuthKeyRes>::parse(p); +#undef FAIL +} + +get_future_salts::get_future_salts(int32 num_) + : num_(num_) +{} + +const std::int32_t get_future_salts::ID; + +object_ptr<get_future_salts> get_future_salts::fetch(TlParser &p) { + return make_tl_object<get_future_salts>(p); +} + +get_future_salts::get_future_salts(TlParser &p) +#define FAIL(error) p.set_error(error) + : num_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void get_future_salts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1188971260); + TlStoreBinary::store(num_, s); +} + +void get_future_salts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1188971260); + TlStoreBinary::store(num_, s); +} + +void get_future_salts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "get_future_salts"); + s.store_field("num", num_); + s.store_class_end(); + } +} + +get_future_salts::ReturnType get_future_salts::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<future_salts>, -1370486635>::parse(p); +#undef FAIL +} + +http_wait::http_wait(int32 max_delay_, int32 wait_after_, int32 max_wait_) + : max_delay_(max_delay_) + , wait_after_(wait_after_) + , max_wait_(max_wait_) +{} + +const std::int32_t http_wait::ID; + +object_ptr<http_wait> http_wait::fetch(TlParser &p) { + return make_tl_object<http_wait>(p); +} + +http_wait::http_wait(TlParser &p) +#define FAIL(error) p.set_error(error) + : max_delay_(TlFetchInt::parse(p)) + , wait_after_(TlFetchInt::parse(p)) + , max_wait_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void http_wait::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1835453025); + TlStoreBinary::store(max_delay_, s); + TlStoreBinary::store(wait_after_, s); + TlStoreBinary::store(max_wait_, s); +} + +void http_wait::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1835453025); + TlStoreBinary::store(max_delay_, s); + TlStoreBinary::store(wait_after_, s); + TlStoreBinary::store(max_wait_, s); +} + +void http_wait::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "http_wait"); + s.store_field("max_delay", max_delay_); + s.store_field("wait_after", wait_after_); + s.store_field("max_wait", max_wait_); + s.store_class_end(); + } +} + +http_wait::ReturnType http_wait::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<dummyHttpWait>, -919090642>::parse(p); +#undef FAIL +} + +ping_delay_disconnect::ping_delay_disconnect(int64 ping_id_, int32 disconnect_delay_) + : ping_id_(ping_id_) + , disconnect_delay_(disconnect_delay_) +{} + +const std::int32_t ping_delay_disconnect::ID; + +object_ptr<ping_delay_disconnect> ping_delay_disconnect::fetch(TlParser &p) { + return make_tl_object<ping_delay_disconnect>(p); +} + +ping_delay_disconnect::ping_delay_disconnect(TlParser &p) +#define FAIL(error) p.set_error(error) + : ping_id_(TlFetchLong::parse(p)) + , disconnect_delay_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void ping_delay_disconnect::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-213746804); + TlStoreBinary::store(ping_id_, s); + TlStoreBinary::store(disconnect_delay_, s); +} + +void ping_delay_disconnect::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-213746804); + TlStoreBinary::store(ping_id_, s); + TlStoreBinary::store(disconnect_delay_, s); +} + +void ping_delay_disconnect::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "ping_delay_disconnect"); + s.store_field("ping_id", ping_id_); + s.store_field("disconnect_delay", disconnect_delay_); + s.store_class_end(); + } +} + +ping_delay_disconnect::ReturnType ping_delay_disconnect::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<pong>, 880243653>::parse(p); +#undef FAIL +} + +req_DH_params::req_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &p_, string const &q_, int64 public_key_fingerprint_, string const &encrypted_data_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , p_(p_) + , q_(q_) + , public_key_fingerprint_(public_key_fingerprint_) + , encrypted_data_(encrypted_data_) +{} + +const std::int32_t req_DH_params::ID; + +object_ptr<req_DH_params> req_DH_params::fetch(TlParser &p) { + return make_tl_object<req_DH_params>(p); +} + +req_DH_params::req_DH_params(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , p_(TlFetchString<string>::parse(p)) + , q_(TlFetchString<string>::parse(p)) + , public_key_fingerprint_(TlFetchLong::parse(p)) + , encrypted_data_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void req_DH_params::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-686627650); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(p_, s); + TlStoreString::store(q_, s); + TlStoreBinary::store(public_key_fingerprint_, s); + TlStoreString::store(encrypted_data_, s); +} + +void req_DH_params::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-686627650); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(p_, s); + TlStoreString::store(q_, s); + TlStoreBinary::store(public_key_fingerprint_, s); + TlStoreString::store(encrypted_data_, s); +} + +void req_DH_params::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "req_DH_params"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("p", p_); + s.store_field("q", q_); + s.store_field("public_key_fingerprint", public_key_fingerprint_); + s.store_field("encrypted_data", encrypted_data_); + s.store_class_end(); + } +} + +req_DH_params::ReturnType req_DH_params::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<server_DH_params_ok>, -790100132>::parse(p); +#undef FAIL +} + +req_pq_multi::req_pq_multi(UInt128 const &nonce_) + : nonce_(nonce_) +{} + +const std::int32_t req_pq_multi::ID; + +object_ptr<req_pq_multi> req_pq_multi::fetch(TlParser &p) { + return make_tl_object<req_pq_multi>(p); +} + +req_pq_multi::req_pq_multi(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) +#undef FAIL +{} + +void req_pq_multi::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1099002127); + TlStoreBinary::store(nonce_, s); +} + +void req_pq_multi::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1099002127); + TlStoreBinary::store(nonce_, s); +} + +void req_pq_multi::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "req_pq_multi"); + s.store_field("nonce", nonce_); + s.store_class_end(); + } +} + +req_pq_multi::ReturnType req_pq_multi::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<resPQ>, 85337187>::parse(p); +#undef FAIL +} + +rpc_drop_answer::rpc_drop_answer(int64 req_msg_id_) + : req_msg_id_(req_msg_id_) +{} + +const std::int32_t rpc_drop_answer::ID; + +object_ptr<rpc_drop_answer> rpc_drop_answer::fetch(TlParser &p) { + return make_tl_object<rpc_drop_answer>(p); +} + +rpc_drop_answer::rpc_drop_answer(TlParser &p) +#define FAIL(error) p.set_error(error) + : req_msg_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void rpc_drop_answer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1491380032); + TlStoreBinary::store(req_msg_id_, s); +} + +void rpc_drop_answer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1491380032); + TlStoreBinary::store(req_msg_id_, s); +} + +void rpc_drop_answer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rpc_drop_answer"); + s.store_field("req_msg_id", req_msg_id_); + s.store_class_end(); + } +} + +rpc_drop_answer::ReturnType rpc_drop_answer::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<RpcDropAnswer>::parse(p); +#undef FAIL +} + +set_client_DH_params::set_client_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_data_) + : nonce_(nonce_) + , server_nonce_(server_nonce_) + , encrypted_data_(encrypted_data_) +{} + +const std::int32_t set_client_DH_params::ID; + +object_ptr<set_client_DH_params> set_client_DH_params::fetch(TlParser &p) { + return make_tl_object<set_client_DH_params>(p); +} + +set_client_DH_params::set_client_DH_params(TlParser &p) +#define FAIL(error) p.set_error(error) + : nonce_(TlFetchInt128::parse(p)) + , server_nonce_(TlFetchInt128::parse(p)) + , encrypted_data_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void set_client_DH_params::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-184262881); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(encrypted_data_, s); +} + +void set_client_DH_params::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-184262881); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(server_nonce_, s); + TlStoreString::store(encrypted_data_, s); +} + +void set_client_DH_params::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "set_client_DH_params"); + s.store_field("nonce", nonce_); + s.store_field("server_nonce", server_nonce_); + s.store_field("encrypted_data", encrypted_data_); + s.store_class_end(); + } +} + +set_client_DH_params::ReturnType set_client_DH_params::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Set_client_DH_params_answer>::parse(p); +#undef FAIL +} +} // namespace mtproto_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.h new file mode 100644 index 0000000000..457a9a9642 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.h @@ -0,0 +1,1138 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include "td/utils/Slice.h" +#include "td/utils/UInt.h" + +#include <cstdint> +#include <utility> +#include <vector> + +namespace td { +class TlStorerCalcLength; +class TlStorerUnsafe; +class TlStorerToString; +class TlParser; + +namespace mtproto_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = Slice; + +using bytes = Slice; + +template <class Type> +using array = std::vector<Type>; + +using BaseObject = ::td::TlObject; + +template <class Type> +using object_ptr = ::td::tl_object_ptr<Type>; + +template <class Type, class... Args> +object_ptr<Type> make_object(Args &&... args) { + return object_ptr<Type>(new Type(std::forward<Args>(args)...)); +} + +template <class ToType, class FromType> +object_ptr<ToType> move_object_as(FromType &&from) { + return object_ptr<ToType>(static_cast<ToType *>(from.release())); +} + +std::string to_string(const BaseObject &value); + +template <class T> +std::string to_string(const object_ptr<T> &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template <class T> +std::string to_string(const std::vector<object_ptr<T>> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class BadMsgNotification; + +class bind_auth_key_inner; + +class client_DH_inner_data; + +class DestroyAuthKeyRes; + +class future_salt; + +class future_salts; + +class gzip_packed; + +class dummyHttpWait; + +class MsgDetailedInfo; + +class msg_resend_req; + +class msgs_ack; + +class msgs_all_info; + +class msgs_state_info; + +class msgs_state_req; + +class new_session_created; + +class P_Q_inner_data; + +class pong; + +class rsa_public_key; + +class resPQ; + +class RpcDropAnswer; + +class rpc_error; + +class server_DH_params_ok; + +class server_DH_inner_data; + +class Set_client_DH_params_answer; + +class Object; + +class Object: public TlObject { + public: + + static object_ptr<Object> fetch(TlParser &p); +}; + +class Function: public TlObject { + public: + + static object_ptr<Function> fetch(TlParser &p); +}; + +class BadMsgNotification: public Object { + public: + + static object_ptr<BadMsgNotification> fetch(TlParser &p); +}; + +class bad_msg_notification final : public BadMsgNotification { + public: + int64 bad_msg_id_; + int32 bad_msg_seqno_; + int32 error_code_; + + bad_msg_notification(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_); + + static const std::int32_t ID = -1477445615; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BadMsgNotification> fetch(TlParser &p); + + explicit bad_msg_notification(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bad_server_salt final : public BadMsgNotification { + public: + int64 bad_msg_id_; + int32 bad_msg_seqno_; + int32 error_code_; + int64 new_server_salt_; + + bad_server_salt(int64 bad_msg_id_, int32 bad_msg_seqno_, int32 error_code_, int64 new_server_salt_); + + static const std::int32_t ID = -307542917; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BadMsgNotification> fetch(TlParser &p); + + explicit bad_server_salt(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bind_auth_key_inner final : public Object { + public: + int64 nonce_; + int64 temp_auth_key_id_; + int64 perm_auth_key_id_; + int64 temp_session_id_; + int32 expires_at_; + + bind_auth_key_inner(int64 nonce_, int64 temp_auth_key_id_, int64 perm_auth_key_id_, int64 temp_session_id_, int32 expires_at_); + + static const std::int32_t ID = 1973679973; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<bind_auth_key_inner> fetch(TlParser &p); + + explicit bind_auth_key_inner(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class client_DH_inner_data final : public Object { + public: + UInt128 nonce_; + UInt128 server_nonce_; + int64 retry_id_; + string g_b_; + + client_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int64 retry_id_, string const &g_b_); + + static const std::int32_t ID = 1715713620; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<client_DH_inner_data> fetch(TlParser &p); + + explicit client_DH_inner_data(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DestroyAuthKeyRes: public Object { + public: + + static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p); +}; + +class destroy_auth_key_ok final : public DestroyAuthKeyRes { + public: + + static const std::int32_t ID = -161422892; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class destroy_auth_key_none final : public DestroyAuthKeyRes { + public: + + static const std::int32_t ID = 178201177; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class destroy_auth_key_fail final : public DestroyAuthKeyRes { + public: + + static const std::int32_t ID = -368010477; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DestroyAuthKeyRes> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class future_salt final : public Object { + public: + int32 valid_since_; + int32 valid_until_; + int64 salt_; + + future_salt(int32 valid_since_, int32 valid_until_, int64 salt_); + + static const std::int32_t ID = 155834844; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<future_salt> fetch(TlParser &p); + + explicit future_salt(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class future_salts final : public Object { + public: + int64 req_msg_id_; + int32 now_; + array<object_ptr<future_salt>> salts_; + + future_salts(int64 req_msg_id_, int32 now_, array<object_ptr<future_salt>> &&salts_); + + static const std::int32_t ID = -1370486635; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<future_salts> fetch(TlParser &p); + + explicit future_salts(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class gzip_packed final : public Object { + public: + string packed_data_; + + explicit gzip_packed(string const &packed_data_); + + static const std::int32_t ID = 812830625; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<gzip_packed> fetch(TlParser &p); + + explicit gzip_packed(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dummyHttpWait final : public Object { + public: + + static const std::int32_t ID = -919090642; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<dummyHttpWait> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MsgDetailedInfo: public Object { + public: + + static object_ptr<MsgDetailedInfo> fetch(TlParser &p); +}; + +class msg_detailed_info final : public MsgDetailedInfo { + public: + int64 msg_id_; + int64 answer_msg_id_; + int32 bytes_; + int32 status_; + + msg_detailed_info(int64 msg_id_, int64 answer_msg_id_, int32 bytes_, int32 status_); + + static const std::int32_t ID = 661470918; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MsgDetailedInfo> fetch(TlParser &p); + + explicit msg_detailed_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msg_new_detailed_info final : public MsgDetailedInfo { + public: + int64 answer_msg_id_; + int32 bytes_; + int32 status_; + + msg_new_detailed_info(int64 answer_msg_id_, int32 bytes_, int32 status_); + + static const std::int32_t ID = -2137147681; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MsgDetailedInfo> fetch(TlParser &p); + + explicit msg_new_detailed_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msg_resend_req final : public Object { + public: + array<int64> msg_ids_; + + explicit msg_resend_req(array<int64> &&msg_ids_); + + static const std::int32_t ID = 2105940488; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<msg_resend_req> fetch(TlParser &p); + + explicit msg_resend_req(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_ack final : public Object { + public: + array<int64> msg_ids_; + + explicit msgs_ack(array<int64> &&msg_ids_); + + static const std::int32_t ID = 1658238041; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<msgs_ack> fetch(TlParser &p); + + explicit msgs_ack(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_all_info final : public Object { + public: + array<int64> msg_ids_; + string info_; + + msgs_all_info(array<int64> &&msg_ids_, string const &info_); + + static const std::int32_t ID = -1933520591; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<msgs_all_info> fetch(TlParser &p); + + explicit msgs_all_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_state_info final : public Object { + public: + int64 req_msg_id_; + string info_; + + msgs_state_info(int64 req_msg_id_, string const &info_); + + static const std::int32_t ID = 81704317; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<msgs_state_info> fetch(TlParser &p); + + explicit msgs_state_info(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class msgs_state_req final : public Object { + public: + array<int64> msg_ids_; + + explicit msgs_state_req(array<int64> &&msg_ids_); + + static const std::int32_t ID = -630588590; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<msgs_state_req> fetch(TlParser &p); + + explicit msgs_state_req(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class new_session_created final : public Object { + public: + int64 first_msg_id_; + int64 unique_id_; + int64 server_salt_; + + new_session_created(int64 first_msg_id_, int64 unique_id_, int64 server_salt_); + + static const std::int32_t ID = -1631450872; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<new_session_created> fetch(TlParser &p); + + explicit new_session_created(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class P_Q_inner_data: public Object { + public: + + static object_ptr<P_Q_inner_data> fetch(TlParser &p); +}; + +class p_q_inner_data_dc final : public P_Q_inner_data { + public: + string pq_; + string p_; + string q_; + UInt128 nonce_; + UInt128 server_nonce_; + UInt256 new_nonce_; + int32 dc_; + + p_q_inner_data_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_); + + static const std::int32_t ID = -1443537003; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<P_Q_inner_data> fetch(TlParser &p); + + explicit p_q_inner_data_dc(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class p_q_inner_data_temp_dc final : public P_Q_inner_data { + public: + string pq_; + string p_; + string q_; + UInt128 nonce_; + UInt128 server_nonce_; + UInt256 new_nonce_; + int32 dc_; + int32 expires_in_; + + p_q_inner_data_temp_dc(string const &pq_, string const &p_, string const &q_, UInt128 const &nonce_, UInt128 const &server_nonce_, UInt256 const &new_nonce_, int32 dc_, int32 expires_in_); + + static const std::int32_t ID = 1459478408; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<P_Q_inner_data> fetch(TlParser &p); + + explicit p_q_inner_data_temp_dc(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pong final : public Object { + public: + int64 msg_id_; + int64 ping_id_; + + pong(int64 msg_id_, int64 ping_id_); + + static const std::int32_t ID = 880243653; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pong> fetch(TlParser &p); + + explicit pong(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rsa_public_key final : public Object { + public: + string n_; + string e_; + + rsa_public_key(string const &n_, string const &e_); + + static const std::int32_t ID = 2048510838; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<rsa_public_key> fetch(TlParser &p); + + explicit rsa_public_key(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resPQ final : public Object { + public: + UInt128 nonce_; + UInt128 server_nonce_; + string pq_; + array<int64> server_public_key_fingerprints_; + + resPQ(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &pq_, array<int64> &&server_public_key_fingerprints_); + + static const std::int32_t ID = 85337187; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<resPQ> fetch(TlParser &p); + + explicit resPQ(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class RpcDropAnswer: public Object { + public: + + static object_ptr<RpcDropAnswer> fetch(TlParser &p); +}; + +class rpc_answer_unknown final : public RpcDropAnswer { + public: + + static const std::int32_t ID = 1579864942; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RpcDropAnswer> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rpc_answer_dropped_running final : public RpcDropAnswer { + public: + + static const std::int32_t ID = -847714938; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RpcDropAnswer> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rpc_answer_dropped final : public RpcDropAnswer { + public: + int64 msg_id_; + int32 seq_no_; + int32 bytes_; + + rpc_answer_dropped(int64 msg_id_, int32 seq_no_, int32 bytes_); + + static const std::int32_t ID = -1539647305; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RpcDropAnswer> fetch(TlParser &p); + + explicit rpc_answer_dropped(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rpc_error final : public Object { + public: + int32 error_code_; + string error_message_; + + rpc_error(int32 error_code_, string const &error_message_); + + static const std::int32_t ID = 558156313; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<rpc_error> fetch(TlParser &p); + + explicit rpc_error(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class server_DH_params_ok final : public Object { + public: + UInt128 nonce_; + UInt128 server_nonce_; + string encrypted_answer_; + + server_DH_params_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_answer_); + + static const std::int32_t ID = -790100132; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<server_DH_params_ok> fetch(TlParser &p); + + explicit server_DH_params_ok(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class server_DH_inner_data final : public Object { + public: + UInt128 nonce_; + UInt128 server_nonce_; + int32 g_; + string dh_prime_; + string g_a_; + int32 server_time_; + + server_DH_inner_data(UInt128 const &nonce_, UInt128 const &server_nonce_, int32 g_, string const &dh_prime_, string const &g_a_, int32 server_time_); + + static const std::int32_t ID = -1249309254; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<server_DH_inner_data> fetch(TlParser &p); + + explicit server_DH_inner_data(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Set_client_DH_params_answer: public Object { + public: + + static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p); +}; + +class dh_gen_ok final : public Set_client_DH_params_answer { + public: + UInt128 nonce_; + UInt128 server_nonce_; + UInt128 new_nonce_hash1_; + + dh_gen_ok(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash1_); + + static const std::int32_t ID = 1003222836; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p); + + explicit dh_gen_ok(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dh_gen_retry final : public Set_client_DH_params_answer { + public: + UInt128 nonce_; + UInt128 server_nonce_; + UInt128 new_nonce_hash2_; + + dh_gen_retry(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash2_); + + static const std::int32_t ID = 1188831161; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p); + + explicit dh_gen_retry(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dh_gen_fail final : public Set_client_DH_params_answer { + public: + UInt128 nonce_; + UInt128 server_nonce_; + UInt128 new_nonce_hash3_; + + dh_gen_fail(UInt128 const &nonce_, UInt128 const &server_nonce_, UInt128 const &new_nonce_hash3_); + + static const std::int32_t ID = -1499615742; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Set_client_DH_params_answer> fetch(TlParser &p); + + explicit dh_gen_fail(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class destroy_auth_key final : public Function { + public: + + static const std::int32_t ID = -784117408; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<DestroyAuthKeyRes>; + + static object_ptr<destroy_auth_key> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class get_future_salts final : public Function { + public: + int32 num_; + + explicit get_future_salts(int32 num_); + + static const std::int32_t ID = -1188971260; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<future_salts>; + + static object_ptr<get_future_salts> fetch(TlParser &p); + + explicit get_future_salts(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class http_wait final : public Function { + public: + int32 max_delay_; + int32 wait_after_; + int32 max_wait_; + + http_wait(int32 max_delay_, int32 wait_after_, int32 max_wait_); + + static const std::int32_t ID = -1835453025; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<dummyHttpWait>; + + static object_ptr<http_wait> fetch(TlParser &p); + + explicit http_wait(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class ping_delay_disconnect final : public Function { + public: + int64 ping_id_; + int32 disconnect_delay_; + + ping_delay_disconnect(int64 ping_id_, int32 disconnect_delay_); + + static const std::int32_t ID = -213746804; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<pong>; + + static object_ptr<ping_delay_disconnect> fetch(TlParser &p); + + explicit ping_delay_disconnect(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class req_DH_params final : public Function { + public: + UInt128 nonce_; + UInt128 server_nonce_; + string p_; + string q_; + int64 public_key_fingerprint_; + string encrypted_data_; + + req_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &p_, string const &q_, int64 public_key_fingerprint_, string const &encrypted_data_); + + static const std::int32_t ID = -686627650; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<server_DH_params_ok>; + + static object_ptr<req_DH_params> fetch(TlParser &p); + + explicit req_DH_params(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class req_pq_multi final : public Function { + public: + UInt128 nonce_; + + explicit req_pq_multi(UInt128 const &nonce_); + + static const std::int32_t ID = -1099002127; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<resPQ>; + + static object_ptr<req_pq_multi> fetch(TlParser &p); + + explicit req_pq_multi(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class rpc_drop_answer final : public Function { + public: + int64 req_msg_id_; + + explicit rpc_drop_answer(int64 req_msg_id_); + + static const std::int32_t ID = 1491380032; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<RpcDropAnswer>; + + static object_ptr<rpc_drop_answer> fetch(TlParser &p); + + explicit rpc_drop_answer(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +class set_client_DH_params final : public Function { + public: + UInt128 nonce_; + UInt128 server_nonce_; + string encrypted_data_; + + set_client_DH_params(UInt128 const &nonce_, UInt128 const &server_nonce_, string const &encrypted_data_); + + static const std::int32_t ID = -184262881; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Set_client_DH_params_answer>; + + static object_ptr<set_client_DH_params> fetch(TlParser &p); + + explicit set_client_DH_params(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +} // namespace mtproto_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.hpp new file mode 100644 index 0000000000..3cc60f32a0 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/mtproto/mtproto_api.hpp @@ -0,0 +1,294 @@ +#pragma once + +/** + * \file + * Contains downcast_call methods for calling a function object on downcasted to + * the most derived class TDLib API object. + */ +#include "mtproto_api.h" + +namespace td { +namespace mtproto_api { + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Object &obj, const T &func) { + switch (obj.get_id()) { + case bad_msg_notification::ID: + func(static_cast<bad_msg_notification &>(obj)); + return true; + case bad_server_salt::ID: + func(static_cast<bad_server_salt &>(obj)); + return true; + case bind_auth_key_inner::ID: + func(static_cast<bind_auth_key_inner &>(obj)); + return true; + case client_DH_inner_data::ID: + func(static_cast<client_DH_inner_data &>(obj)); + return true; + case destroy_auth_key_ok::ID: + func(static_cast<destroy_auth_key_ok &>(obj)); + return true; + case destroy_auth_key_none::ID: + func(static_cast<destroy_auth_key_none &>(obj)); + return true; + case destroy_auth_key_fail::ID: + func(static_cast<destroy_auth_key_fail &>(obj)); + return true; + case future_salt::ID: + func(static_cast<future_salt &>(obj)); + return true; + case future_salts::ID: + func(static_cast<future_salts &>(obj)); + return true; + case gzip_packed::ID: + func(static_cast<gzip_packed &>(obj)); + return true; + case dummyHttpWait::ID: + func(static_cast<dummyHttpWait &>(obj)); + return true; + case msg_detailed_info::ID: + func(static_cast<msg_detailed_info &>(obj)); + return true; + case msg_new_detailed_info::ID: + func(static_cast<msg_new_detailed_info &>(obj)); + return true; + case msg_resend_req::ID: + func(static_cast<msg_resend_req &>(obj)); + return true; + case msgs_ack::ID: + func(static_cast<msgs_ack &>(obj)); + return true; + case msgs_all_info::ID: + func(static_cast<msgs_all_info &>(obj)); + return true; + case msgs_state_info::ID: + func(static_cast<msgs_state_info &>(obj)); + return true; + case msgs_state_req::ID: + func(static_cast<msgs_state_req &>(obj)); + return true; + case new_session_created::ID: + func(static_cast<new_session_created &>(obj)); + return true; + case p_q_inner_data_dc::ID: + func(static_cast<p_q_inner_data_dc &>(obj)); + return true; + case p_q_inner_data_temp_dc::ID: + func(static_cast<p_q_inner_data_temp_dc &>(obj)); + return true; + case pong::ID: + func(static_cast<pong &>(obj)); + return true; + case rsa_public_key::ID: + func(static_cast<rsa_public_key &>(obj)); + return true; + case resPQ::ID: + func(static_cast<resPQ &>(obj)); + return true; + case rpc_answer_unknown::ID: + func(static_cast<rpc_answer_unknown &>(obj)); + return true; + case rpc_answer_dropped_running::ID: + func(static_cast<rpc_answer_dropped_running &>(obj)); + return true; + case rpc_answer_dropped::ID: + func(static_cast<rpc_answer_dropped &>(obj)); + return true; + case rpc_error::ID: + func(static_cast<rpc_error &>(obj)); + return true; + case server_DH_params_ok::ID: + func(static_cast<server_DH_params_ok &>(obj)); + return true; + case server_DH_inner_data::ID: + func(static_cast<server_DH_inner_data &>(obj)); + return true; + case dh_gen_ok::ID: + func(static_cast<dh_gen_ok &>(obj)); + return true; + case dh_gen_retry::ID: + func(static_cast<dh_gen_retry &>(obj)); + return true; + case dh_gen_fail::ID: + func(static_cast<dh_gen_fail &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Function &obj, const T &func) { + switch (obj.get_id()) { + case destroy_auth_key::ID: + func(static_cast<destroy_auth_key &>(obj)); + return true; + case get_future_salts::ID: + func(static_cast<get_future_salts &>(obj)); + return true; + case http_wait::ID: + func(static_cast<http_wait &>(obj)); + return true; + case ping_delay_disconnect::ID: + func(static_cast<ping_delay_disconnect &>(obj)); + return true; + case req_DH_params::ID: + func(static_cast<req_DH_params &>(obj)); + return true; + case req_pq_multi::ID: + func(static_cast<req_pq_multi &>(obj)); + return true; + case rpc_drop_answer::ID: + func(static_cast<rpc_drop_answer &>(obj)); + return true; + case set_client_DH_params::ID: + func(static_cast<set_client_DH_params &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BadMsgNotification &obj, const T &func) { + switch (obj.get_id()) { + case bad_msg_notification::ID: + func(static_cast<bad_msg_notification &>(obj)); + return true; + case bad_server_salt::ID: + func(static_cast<bad_server_salt &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DestroyAuthKeyRes &obj, const T &func) { + switch (obj.get_id()) { + case destroy_auth_key_ok::ID: + func(static_cast<destroy_auth_key_ok &>(obj)); + return true; + case destroy_auth_key_none::ID: + func(static_cast<destroy_auth_key_none &>(obj)); + return true; + case destroy_auth_key_fail::ID: + func(static_cast<destroy_auth_key_fail &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MsgDetailedInfo &obj, const T &func) { + switch (obj.get_id()) { + case msg_detailed_info::ID: + func(static_cast<msg_detailed_info &>(obj)); + return true; + case msg_new_detailed_info::ID: + func(static_cast<msg_new_detailed_info &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(P_Q_inner_data &obj, const T &func) { + switch (obj.get_id()) { + case p_q_inner_data_dc::ID: + func(static_cast<p_q_inner_data_dc &>(obj)); + return true; + case p_q_inner_data_temp_dc::ID: + func(static_cast<p_q_inner_data_temp_dc &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(RpcDropAnswer &obj, const T &func) { + switch (obj.get_id()) { + case rpc_answer_unknown::ID: + func(static_cast<rpc_answer_unknown &>(obj)); + return true; + case rpc_answer_dropped_running::ID: + func(static_cast<rpc_answer_dropped_running &>(obj)); + return true; + case rpc_answer_dropped::ID: + func(static_cast<rpc_answer_dropped &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Set_client_DH_params_answer &obj, const T &func) { + switch (obj.get_id()) { + case dh_gen_ok::ID: + func(static_cast<dh_gen_ok &>(obj)); + return true; + case dh_gen_retry::ID: + func(static_cast<dh_gen_retry &>(obj)); + return true; + case dh_gen_fail::ID: + func(static_cast<dh_gen_fail &>(obj)); + return true; + default: + return false; + } +} + +} // namespace mtproto_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.cpp new file mode 100644 index 0000000000..6dbfc94299 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.cpp @@ -0,0 +1,4072 @@ +#include "secret_api.h" + +#include "td/tl/tl_object_parse.h" +#include "td/tl/tl_object_store.h" + +#include "td/utils/common.h" +#include "td/utils/format.h" +#include "td/utils/logging.h" +#include "td/utils/SliceBuilder.h" +#include "td/utils/tl_parsers.h" +#include "td/utils/tl_storers.h" +#include "td/utils/TlStorerToString.h" + +namespace td { +namespace secret_api { + +std::string to_string(const BaseObject &value) { + TlStorerToString storer; + value.store(storer, ""); + return storer.move_as_string(); +} + +object_ptr<Object> Object::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case decryptedMessage8::ID: + return decryptedMessage8::fetch(p); + case decryptedMessageService8::ID: + return decryptedMessageService8::fetch(p); + case decryptedMessage23::ID: + return decryptedMessage23::fetch(p); + case decryptedMessageService::ID: + return decryptedMessageService::fetch(p); + case decryptedMessage46::ID: + return decryptedMessage46::fetch(p); + case decryptedMessage::ID: + return decryptedMessage::fetch(p); + case decryptedMessageActionSetMessageTTL::ID: + return decryptedMessageActionSetMessageTTL::fetch(p); + case decryptedMessageActionReadMessages::ID: + return decryptedMessageActionReadMessages::fetch(p); + case decryptedMessageActionDeleteMessages::ID: + return decryptedMessageActionDeleteMessages::fetch(p); + case decryptedMessageActionScreenshotMessages::ID: + return decryptedMessageActionScreenshotMessages::fetch(p); + case decryptedMessageActionFlushHistory::ID: + return decryptedMessageActionFlushHistory::fetch(p); + case decryptedMessageActionResend::ID: + return decryptedMessageActionResend::fetch(p); + case decryptedMessageActionNotifyLayer::ID: + return decryptedMessageActionNotifyLayer::fetch(p); + case decryptedMessageActionTyping::ID: + return decryptedMessageActionTyping::fetch(p); + case decryptedMessageActionRequestKey::ID: + return decryptedMessageActionRequestKey::fetch(p); + case decryptedMessageActionAcceptKey::ID: + return decryptedMessageActionAcceptKey::fetch(p); + case decryptedMessageActionAbortKey::ID: + return decryptedMessageActionAbortKey::fetch(p); + case decryptedMessageActionCommitKey::ID: + return decryptedMessageActionCommitKey::fetch(p); + case decryptedMessageActionNoop::ID: + return decryptedMessageActionNoop::fetch(p); + case decryptedMessageLayer::ID: + return decryptedMessageLayer::fetch(p); + case decryptedMessageMediaEmpty::ID: + return decryptedMessageMediaEmpty::fetch(p); + case decryptedMessageMediaPhoto8::ID: + return decryptedMessageMediaPhoto8::fetch(p); + case decryptedMessageMediaVideo8::ID: + return decryptedMessageMediaVideo8::fetch(p); + case decryptedMessageMediaGeoPoint::ID: + return decryptedMessageMediaGeoPoint::fetch(p); + case decryptedMessageMediaContact::ID: + return decryptedMessageMediaContact::fetch(p); + case decryptedMessageMediaDocument8::ID: + return decryptedMessageMediaDocument8::fetch(p); + case decryptedMessageMediaAudio8::ID: + return decryptedMessageMediaAudio8::fetch(p); + case decryptedMessageMediaVideo23::ID: + return decryptedMessageMediaVideo23::fetch(p); + case decryptedMessageMediaAudio::ID: + return decryptedMessageMediaAudio::fetch(p); + case decryptedMessageMediaExternalDocument::ID: + return decryptedMessageMediaExternalDocument::fetch(p); + case decryptedMessageMediaPhoto::ID: + return decryptedMessageMediaPhoto::fetch(p); + case decryptedMessageMediaVideo::ID: + return decryptedMessageMediaVideo::fetch(p); + case decryptedMessageMediaDocument46::ID: + return decryptedMessageMediaDocument46::fetch(p); + case decryptedMessageMediaVenue::ID: + return decryptedMessageMediaVenue::fetch(p); + case decryptedMessageMediaWebPage::ID: + return decryptedMessageMediaWebPage::fetch(p); + case decryptedMessageMediaDocument::ID: + return decryptedMessageMediaDocument::fetch(p); + case documentAttributeImageSize::ID: + return documentAttributeImageSize::fetch(p); + case documentAttributeAnimated::ID: + return documentAttributeAnimated::fetch(p); + case documentAttributeSticker23::ID: + return documentAttributeSticker23::fetch(p); + case documentAttributeVideo23::ID: + return documentAttributeVideo23::fetch(p); + case documentAttributeAudio23::ID: + return documentAttributeAudio23::fetch(p); + case documentAttributeFilename::ID: + return documentAttributeFilename::fetch(p); + case documentAttributeAudio45::ID: + return documentAttributeAudio45::fetch(p); + case documentAttributeSticker::ID: + return documentAttributeSticker::fetch(p); + case documentAttributeAudio::ID: + return documentAttributeAudio::fetch(p); + case documentAttributeVideo::ID: + return documentAttributeVideo::fetch(p); + case fileLocationUnavailable::ID: + return fileLocationUnavailable::fetch(p); + case fileLocation::ID: + return fileLocation::fetch(p); + case inputStickerSetShortName::ID: + return inputStickerSetShortName::fetch(p); + case inputStickerSetEmpty::ID: + return inputStickerSetEmpty::fetch(p); + case messageEntityUnknown::ID: + return messageEntityUnknown::fetch(p); + case messageEntityMention::ID: + return messageEntityMention::fetch(p); + case messageEntityHashtag::ID: + return messageEntityHashtag::fetch(p); + case messageEntityBotCommand::ID: + return messageEntityBotCommand::fetch(p); + case messageEntityUrl::ID: + return messageEntityUrl::fetch(p); + case messageEntityEmail::ID: + return messageEntityEmail::fetch(p); + case messageEntityBold::ID: + return messageEntityBold::fetch(p); + case messageEntityItalic::ID: + return messageEntityItalic::fetch(p); + case messageEntityCode::ID: + return messageEntityCode::fetch(p); + case messageEntityPre::ID: + return messageEntityPre::fetch(p); + case messageEntityTextUrl::ID: + return messageEntityTextUrl::fetch(p); + case messageEntityMentionName::ID: + return messageEntityMentionName::fetch(p); + case messageEntityPhone::ID: + return messageEntityPhone::fetch(p); + case messageEntityCashtag::ID: + return messageEntityCashtag::fetch(p); + case messageEntityBankCard::ID: + return messageEntityBankCard::fetch(p); + case messageEntityUnderline::ID: + return messageEntityUnderline::fetch(p); + case messageEntityStrike::ID: + return messageEntityStrike::fetch(p); + case messageEntityBlockquote::ID: + return messageEntityBlockquote::fetch(p); + case messageEntitySpoiler::ID: + return messageEntitySpoiler::fetch(p); + case messageEntityCustomEmoji::ID: + return messageEntityCustomEmoji::fetch(p); + case photoSizeEmpty::ID: + return photoSizeEmpty::fetch(p); + case photoSize::ID: + return photoSize::fetch(p); + case photoCachedSize::ID: + return photoCachedSize::fetch(p); + case sendMessageTypingAction::ID: + return sendMessageTypingAction::fetch(p); + case sendMessageCancelAction::ID: + return sendMessageCancelAction::fetch(p); + case sendMessageRecordVideoAction::ID: + return sendMessageRecordVideoAction::fetch(p); + case sendMessageUploadVideoAction::ID: + return sendMessageUploadVideoAction::fetch(p); + case sendMessageRecordAudioAction::ID: + return sendMessageRecordAudioAction::fetch(p); + case sendMessageUploadAudioAction::ID: + return sendMessageUploadAudioAction::fetch(p); + case sendMessageUploadPhotoAction::ID: + return sendMessageUploadPhotoAction::fetch(p); + case sendMessageUploadDocumentAction::ID: + return sendMessageUploadDocumentAction::fetch(p); + case sendMessageGeoLocationAction::ID: + return sendMessageGeoLocationAction::fetch(p); + case sendMessageChooseContactAction::ID: + return sendMessageChooseContactAction::fetch(p); + case sendMessageRecordRoundAction::ID: + return sendMessageRecordRoundAction::fetch(p); + case sendMessageUploadRoundAction::ID: + return sendMessageUploadRoundAction::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +object_ptr<Function> Function::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case test_dummyFunction::ID: + return test_dummyFunction::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +object_ptr<DecryptedMessage> DecryptedMessage::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case decryptedMessage8::ID: + return decryptedMessage8::fetch(p); + case decryptedMessageService8::ID: + return decryptedMessageService8::fetch(p); + case decryptedMessage23::ID: + return decryptedMessage23::fetch(p); + case decryptedMessageService::ID: + return decryptedMessageService::fetch(p); + case decryptedMessage46::ID: + return decryptedMessage46::fetch(p); + case decryptedMessage::ID: + return decryptedMessage::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +decryptedMessage8::decryptedMessage8(int64 random_id_, bytes &&random_bytes_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_) + : random_id_(random_id_) + , random_bytes_(std::move(random_bytes_)) + , message_(message_) + , media_(std::move(media_)) +{} + +const std::int32_t decryptedMessage8::ID; + +object_ptr<DecryptedMessage> decryptedMessage8::fetch(TlParser &p) { + return make_tl_object<decryptedMessage8>(p); +} + +decryptedMessage8::decryptedMessage8(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_id_(TlFetchLong::parse(p)) + , random_bytes_(TlFetchBytes<bytes>::parse(p)) + , message_(TlFetchString<string>::parse(p)) + , media_(TlFetchObject<DecryptedMessageMedia>::parse(p)) +#undef FAIL +{} + +void decryptedMessage8::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(random_bytes_, s); + TlStoreString::store(message_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void decryptedMessage8::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(random_bytes_, s); + TlStoreString::store(message_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void decryptedMessage8::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessage8"); + s.store_field("random_id", random_id_); + s.store_bytes_field("random_bytes", random_bytes_); + s.store_field("message", message_); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_class_end(); + } +} + +decryptedMessageService8::decryptedMessageService8(int64 random_id_, bytes &&random_bytes_, object_ptr<DecryptedMessageAction> &&action_) + : random_id_(random_id_) + , random_bytes_(std::move(random_bytes_)) + , action_(std::move(action_)) +{} + +const std::int32_t decryptedMessageService8::ID; + +object_ptr<DecryptedMessage> decryptedMessageService8::fetch(TlParser &p) { + return make_tl_object<decryptedMessageService8>(p); +} + +decryptedMessageService8::decryptedMessageService8(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_id_(TlFetchLong::parse(p)) + , random_bytes_(TlFetchBytes<bytes>::parse(p)) + , action_(TlFetchObject<DecryptedMessageAction>::parse(p)) +#undef FAIL +{} + +void decryptedMessageService8::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(random_bytes_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void decryptedMessageService8::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(random_bytes_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void decryptedMessageService8::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageService8"); + s.store_field("random_id", random_id_); + s.store_bytes_field("random_bytes", random_bytes_); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +decryptedMessage23::decryptedMessage23(int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_) + : random_id_(random_id_) + , ttl_(ttl_) + , message_(message_) + , media_(std::move(media_)) +{} + +const std::int32_t decryptedMessage23::ID; + +object_ptr<DecryptedMessage> decryptedMessage23::fetch(TlParser &p) { + return make_tl_object<decryptedMessage23>(p); +} + +decryptedMessage23::decryptedMessage23(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_id_(TlFetchLong::parse(p)) + , ttl_(TlFetchInt::parse(p)) + , message_(TlFetchString<string>::parse(p)) + , media_(TlFetchObject<DecryptedMessageMedia>::parse(p)) +#undef FAIL +{} + +void decryptedMessage23::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(ttl_, s); + TlStoreString::store(message_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void decryptedMessage23::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(ttl_, s); + TlStoreString::store(message_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void decryptedMessage23::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessage23"); + s.store_field("random_id", random_id_); + s.store_field("ttl", ttl_); + s.store_field("message", message_); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_class_end(); + } +} + +decryptedMessageService::decryptedMessageService(int64 random_id_, object_ptr<DecryptedMessageAction> &&action_) + : random_id_(random_id_) + , action_(std::move(action_)) +{} + +const std::int32_t decryptedMessageService::ID; + +object_ptr<DecryptedMessage> decryptedMessageService::fetch(TlParser &p) { + return make_tl_object<decryptedMessageService>(p); +} + +decryptedMessageService::decryptedMessageService(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_id_(TlFetchLong::parse(p)) + , action_(TlFetchObject<DecryptedMessageAction>::parse(p)) +#undef FAIL +{} + +void decryptedMessageService::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void decryptedMessageService::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(random_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void decryptedMessageService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageService"); + s.store_field("random_id", random_id_); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +decryptedMessage46::decryptedMessage46() + : flags_() + , random_id_() + , ttl_() + , message_() + , media_() + , entities_() + , via_bot_name_() + , reply_to_random_id_() +{} + +decryptedMessage46::decryptedMessage46(int32 flags_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_) + : flags_(flags_) + , random_id_(random_id_) + , ttl_(ttl_) + , message_(message_) + , media_(std::move(media_)) + , entities_(std::move(entities_)) + , via_bot_name_(via_bot_name_) + , reply_to_random_id_(reply_to_random_id_) +{} + +const std::int32_t decryptedMessage46::ID; + +object_ptr<DecryptedMessage> decryptedMessage46::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<decryptedMessage46> res = make_tl_object<decryptedMessage46>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->random_id_ = TlFetchLong::parse(p); + res->ttl_ = TlFetchInt::parse(p); + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 512) { res->media_ = TlFetchObject<DecryptedMessageMedia>::parse(p); } + if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 2048) { res->via_bot_name_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->reply_to_random_id_ = TlFetchLong::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void decryptedMessage46::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(ttl_, s); + TlStoreString::store(message_, s); + if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); } + if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); } +} + +void decryptedMessage46::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(ttl_, s); + TlStoreString::store(message_, s); + if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); } + if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); } +} + +void decryptedMessage46::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessage46"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("random_id", random_id_); + s.store_field("ttl", ttl_); + s.store_field("message", message_); + if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); } + if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 2048) { s.store_field("via_bot_name", via_bot_name_); } + if (var0 & 8) { s.store_field("reply_to_random_id", reply_to_random_id_); } + s.store_class_end(); + } +} + +decryptedMessage::decryptedMessage() + : flags_() + , silent_() + , random_id_() + , ttl_() + , message_() + , media_() + , entities_() + , via_bot_name_() + , reply_to_random_id_() + , grouped_id_() +{} + +decryptedMessage::decryptedMessage(int32 flags_, bool silent_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_, int64 grouped_id_) + : flags_(flags_) + , silent_(silent_) + , random_id_(random_id_) + , ttl_(ttl_) + , message_(message_) + , media_(std::move(media_)) + , entities_(std::move(entities_)) + , via_bot_name_(via_bot_name_) + , reply_to_random_id_(reply_to_random_id_) + , grouped_id_(grouped_id_) +{} + +const std::int32_t decryptedMessage::ID; + +object_ptr<DecryptedMessage> decryptedMessage::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<decryptedMessage> res = make_tl_object<decryptedMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 32) { res->silent_ = TlFetchTrue::parse(p); } + res->random_id_ = TlFetchLong::parse(p); + res->ttl_ = TlFetchInt::parse(p); + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 512) { res->media_ = TlFetchObject<DecryptedMessageMedia>::parse(p); } + if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 2048) { res->via_bot_name_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->reply_to_random_id_ = TlFetchLong::parse(p); } + if (var0 & 131072) { res->grouped_id_ = TlFetchLong::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void decryptedMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(ttl_, s); + TlStoreString::store(message_, s); + if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); } + if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); } + if (var0 & 131072) { TlStoreBinary::store(grouped_id_, s); } +} + +void decryptedMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(ttl_, s); + TlStoreString::store(message_, s); + if (var0 & 512) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 128) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 2048) { TlStoreString::store(via_bot_name_, s); } + if (var0 & 8) { TlStoreBinary::store(reply_to_random_id_, s); } + if (var0 & 131072) { TlStoreBinary::store(grouped_id_, s); } +} + +void decryptedMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("random_id", random_id_); + s.store_field("ttl", ttl_); + s.store_field("message", message_); + if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); } + if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 2048) { s.store_field("via_bot_name", via_bot_name_); } + if (var0 & 8) { s.store_field("reply_to_random_id", reply_to_random_id_); } + if (var0 & 131072) { s.store_field("grouped_id", grouped_id_); } + s.store_class_end(); + } +} + +object_ptr<DecryptedMessageAction> DecryptedMessageAction::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case decryptedMessageActionSetMessageTTL::ID: + return decryptedMessageActionSetMessageTTL::fetch(p); + case decryptedMessageActionReadMessages::ID: + return decryptedMessageActionReadMessages::fetch(p); + case decryptedMessageActionDeleteMessages::ID: + return decryptedMessageActionDeleteMessages::fetch(p); + case decryptedMessageActionScreenshotMessages::ID: + return decryptedMessageActionScreenshotMessages::fetch(p); + case decryptedMessageActionFlushHistory::ID: + return decryptedMessageActionFlushHistory::fetch(p); + case decryptedMessageActionResend::ID: + return decryptedMessageActionResend::fetch(p); + case decryptedMessageActionNotifyLayer::ID: + return decryptedMessageActionNotifyLayer::fetch(p); + case decryptedMessageActionTyping::ID: + return decryptedMessageActionTyping::fetch(p); + case decryptedMessageActionRequestKey::ID: + return decryptedMessageActionRequestKey::fetch(p); + case decryptedMessageActionAcceptKey::ID: + return decryptedMessageActionAcceptKey::fetch(p); + case decryptedMessageActionAbortKey::ID: + return decryptedMessageActionAbortKey::fetch(p); + case decryptedMessageActionCommitKey::ID: + return decryptedMessageActionCommitKey::fetch(p); + case decryptedMessageActionNoop::ID: + return decryptedMessageActionNoop::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +decryptedMessageActionSetMessageTTL::decryptedMessageActionSetMessageTTL(int32 ttl_seconds_) + : ttl_seconds_(ttl_seconds_) +{} + +const std::int32_t decryptedMessageActionSetMessageTTL::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionSetMessageTTL::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionSetMessageTTL>(p); +} + +decryptedMessageActionSetMessageTTL::decryptedMessageActionSetMessageTTL(TlParser &p) +#define FAIL(error) p.set_error(error) + : ttl_seconds_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionSetMessageTTL::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(ttl_seconds_, s); +} + +void decryptedMessageActionSetMessageTTL::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(ttl_seconds_, s); +} + +void decryptedMessageActionSetMessageTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionSetMessageTTL"); + s.store_field("ttl_seconds", ttl_seconds_); + s.store_class_end(); + } +} + +decryptedMessageActionReadMessages::decryptedMessageActionReadMessages(array<int64> &&random_ids_) + : random_ids_(std::move(random_ids_)) +{} + +const std::int32_t decryptedMessageActionReadMessages::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionReadMessages::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionReadMessages>(p); +} + +decryptedMessageActionReadMessages::decryptedMessageActionReadMessages(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionReadMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s); +} + +void decryptedMessageActionReadMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s); +} + +void decryptedMessageActionReadMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionReadMessages"); + { s.store_vector_begin("random_ids", random_ids_.size()); for (const auto &_value : random_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +decryptedMessageActionDeleteMessages::decryptedMessageActionDeleteMessages(array<int64> &&random_ids_) + : random_ids_(std::move(random_ids_)) +{} + +const std::int32_t decryptedMessageActionDeleteMessages::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionDeleteMessages::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionDeleteMessages>(p); +} + +decryptedMessageActionDeleteMessages::decryptedMessageActionDeleteMessages(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionDeleteMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s); +} + +void decryptedMessageActionDeleteMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s); +} + +void decryptedMessageActionDeleteMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionDeleteMessages"); + { s.store_vector_begin("random_ids", random_ids_.size()); for (const auto &_value : random_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +decryptedMessageActionScreenshotMessages::decryptedMessageActionScreenshotMessages(array<int64> &&random_ids_) + : random_ids_(std::move(random_ids_)) +{} + +const std::int32_t decryptedMessageActionScreenshotMessages::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionScreenshotMessages::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionScreenshotMessages>(p); +} + +decryptedMessageActionScreenshotMessages::decryptedMessageActionScreenshotMessages(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_ids_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionScreenshotMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s); +} + +void decryptedMessageActionScreenshotMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_ids_, s); +} + +void decryptedMessageActionScreenshotMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionScreenshotMessages"); + { s.store_vector_begin("random_ids", random_ids_.size()); for (const auto &_value : random_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t decryptedMessageActionFlushHistory::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionFlushHistory::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionFlushHistory>(); +} + +void decryptedMessageActionFlushHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void decryptedMessageActionFlushHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void decryptedMessageActionFlushHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionFlushHistory"); + s.store_class_end(); + } +} + +decryptedMessageActionResend::decryptedMessageActionResend(int32 start_seq_no_, int32 end_seq_no_) + : start_seq_no_(start_seq_no_) + , end_seq_no_(end_seq_no_) +{} + +const std::int32_t decryptedMessageActionResend::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionResend::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionResend>(p); +} + +decryptedMessageActionResend::decryptedMessageActionResend(TlParser &p) +#define FAIL(error) p.set_error(error) + : start_seq_no_(TlFetchInt::parse(p)) + , end_seq_no_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionResend::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(start_seq_no_, s); + TlStoreBinary::store(end_seq_no_, s); +} + +void decryptedMessageActionResend::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(start_seq_no_, s); + TlStoreBinary::store(end_seq_no_, s); +} + +void decryptedMessageActionResend::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionResend"); + s.store_field("start_seq_no", start_seq_no_); + s.store_field("end_seq_no", end_seq_no_); + s.store_class_end(); + } +} + +decryptedMessageActionNotifyLayer::decryptedMessageActionNotifyLayer(int32 layer_) + : layer_(layer_) +{} + +const std::int32_t decryptedMessageActionNotifyLayer::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionNotifyLayer::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionNotifyLayer>(p); +} + +decryptedMessageActionNotifyLayer::decryptedMessageActionNotifyLayer(TlParser &p) +#define FAIL(error) p.set_error(error) + : layer_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionNotifyLayer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(layer_, s); +} + +void decryptedMessageActionNotifyLayer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(layer_, s); +} + +void decryptedMessageActionNotifyLayer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionNotifyLayer"); + s.store_field("layer", layer_); + s.store_class_end(); + } +} + +decryptedMessageActionTyping::decryptedMessageActionTyping(object_ptr<SendMessageAction> &&action_) + : action_(std::move(action_)) +{} + +const std::int32_t decryptedMessageActionTyping::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionTyping::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionTyping>(p); +} + +decryptedMessageActionTyping::decryptedMessageActionTyping(TlParser &p) +#define FAIL(error) p.set_error(error) + : action_(TlFetchObject<SendMessageAction>::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionTyping::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void decryptedMessageActionTyping::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void decryptedMessageActionTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionTyping"); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +decryptedMessageActionRequestKey::decryptedMessageActionRequestKey(int64 exchange_id_, bytes &&g_a_) + : exchange_id_(exchange_id_) + , g_a_(std::move(g_a_)) +{} + +const std::int32_t decryptedMessageActionRequestKey::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionRequestKey::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionRequestKey>(p); +} + +decryptedMessageActionRequestKey::decryptedMessageActionRequestKey(TlParser &p) +#define FAIL(error) p.set_error(error) + : exchange_id_(TlFetchLong::parse(p)) + , g_a_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionRequestKey::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); + TlStoreString::store(g_a_, s); +} + +void decryptedMessageActionRequestKey::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); + TlStoreString::store(g_a_, s); +} + +void decryptedMessageActionRequestKey::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionRequestKey"); + s.store_field("exchange_id", exchange_id_); + s.store_bytes_field("g_a", g_a_); + s.store_class_end(); + } +} + +decryptedMessageActionAcceptKey::decryptedMessageActionAcceptKey(int64 exchange_id_, bytes &&g_b_, int64 key_fingerprint_) + : exchange_id_(exchange_id_) + , g_b_(std::move(g_b_)) + , key_fingerprint_(key_fingerprint_) +{} + +const std::int32_t decryptedMessageActionAcceptKey::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionAcceptKey::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionAcceptKey>(p); +} + +decryptedMessageActionAcceptKey::decryptedMessageActionAcceptKey(TlParser &p) +#define FAIL(error) p.set_error(error) + : exchange_id_(TlFetchLong::parse(p)) + , g_b_(TlFetchBytes<bytes>::parse(p)) + , key_fingerprint_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionAcceptKey::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); + TlStoreString::store(g_b_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void decryptedMessageActionAcceptKey::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); + TlStoreString::store(g_b_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void decryptedMessageActionAcceptKey::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionAcceptKey"); + s.store_field("exchange_id", exchange_id_); + s.store_bytes_field("g_b", g_b_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_class_end(); + } +} + +decryptedMessageActionAbortKey::decryptedMessageActionAbortKey(int64 exchange_id_) + : exchange_id_(exchange_id_) +{} + +const std::int32_t decryptedMessageActionAbortKey::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionAbortKey::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionAbortKey>(p); +} + +decryptedMessageActionAbortKey::decryptedMessageActionAbortKey(TlParser &p) +#define FAIL(error) p.set_error(error) + : exchange_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionAbortKey::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); +} + +void decryptedMessageActionAbortKey::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); +} + +void decryptedMessageActionAbortKey::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionAbortKey"); + s.store_field("exchange_id", exchange_id_); + s.store_class_end(); + } +} + +decryptedMessageActionCommitKey::decryptedMessageActionCommitKey(int64 exchange_id_, int64 key_fingerprint_) + : exchange_id_(exchange_id_) + , key_fingerprint_(key_fingerprint_) +{} + +const std::int32_t decryptedMessageActionCommitKey::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionCommitKey::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionCommitKey>(p); +} + +decryptedMessageActionCommitKey::decryptedMessageActionCommitKey(TlParser &p) +#define FAIL(error) p.set_error(error) + : exchange_id_(TlFetchLong::parse(p)) + , key_fingerprint_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void decryptedMessageActionCommitKey::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void decryptedMessageActionCommitKey::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(exchange_id_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void decryptedMessageActionCommitKey::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionCommitKey"); + s.store_field("exchange_id", exchange_id_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_class_end(); + } +} + +const std::int32_t decryptedMessageActionNoop::ID; + +object_ptr<DecryptedMessageAction> decryptedMessageActionNoop::fetch(TlParser &p) { + return make_tl_object<decryptedMessageActionNoop>(); +} + +void decryptedMessageActionNoop::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void decryptedMessageActionNoop::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void decryptedMessageActionNoop::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageActionNoop"); + s.store_class_end(); + } +} + +decryptedMessageLayer::decryptedMessageLayer(bytes &&random_bytes_, int32 layer_, int32 in_seq_no_, int32 out_seq_no_, object_ptr<DecryptedMessage> &&message_) + : random_bytes_(std::move(random_bytes_)) + , layer_(layer_) + , in_seq_no_(in_seq_no_) + , out_seq_no_(out_seq_no_) + , message_(std::move(message_)) +{} + +const std::int32_t decryptedMessageLayer::ID; + +object_ptr<decryptedMessageLayer> decryptedMessageLayer::fetch(TlParser &p) { + return make_tl_object<decryptedMessageLayer>(p); +} + +decryptedMessageLayer::decryptedMessageLayer(TlParser &p) +#define FAIL(error) p.set_error(error) + : random_bytes_(TlFetchBytes<bytes>::parse(p)) + , layer_(TlFetchInt::parse(p)) + , in_seq_no_(TlFetchInt::parse(p)) + , out_seq_no_(TlFetchInt::parse(p)) + , message_(TlFetchObject<DecryptedMessage>::parse(p)) +#undef FAIL +{} + +void decryptedMessageLayer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(random_bytes_, s); + TlStoreBinary::store(layer_, s); + TlStoreBinary::store(in_seq_no_, s); + TlStoreBinary::store(out_seq_no_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(message_, s); +} + +void decryptedMessageLayer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(random_bytes_, s); + TlStoreBinary::store(layer_, s); + TlStoreBinary::store(in_seq_no_, s); + TlStoreBinary::store(out_seq_no_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(message_, s); +} + +void decryptedMessageLayer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageLayer"); + s.store_bytes_field("random_bytes", random_bytes_); + s.store_field("layer", layer_); + s.store_field("in_seq_no", in_seq_no_); + s.store_field("out_seq_no", out_seq_no_); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +object_ptr<DecryptedMessageMedia> DecryptedMessageMedia::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case decryptedMessageMediaEmpty::ID: + return decryptedMessageMediaEmpty::fetch(p); + case decryptedMessageMediaPhoto8::ID: + return decryptedMessageMediaPhoto8::fetch(p); + case decryptedMessageMediaVideo8::ID: + return decryptedMessageMediaVideo8::fetch(p); + case decryptedMessageMediaGeoPoint::ID: + return decryptedMessageMediaGeoPoint::fetch(p); + case decryptedMessageMediaContact::ID: + return decryptedMessageMediaContact::fetch(p); + case decryptedMessageMediaDocument8::ID: + return decryptedMessageMediaDocument8::fetch(p); + case decryptedMessageMediaAudio8::ID: + return decryptedMessageMediaAudio8::fetch(p); + case decryptedMessageMediaVideo23::ID: + return decryptedMessageMediaVideo23::fetch(p); + case decryptedMessageMediaAudio::ID: + return decryptedMessageMediaAudio::fetch(p); + case decryptedMessageMediaExternalDocument::ID: + return decryptedMessageMediaExternalDocument::fetch(p); + case decryptedMessageMediaPhoto::ID: + return decryptedMessageMediaPhoto::fetch(p); + case decryptedMessageMediaVideo::ID: + return decryptedMessageMediaVideo::fetch(p); + case decryptedMessageMediaDocument46::ID: + return decryptedMessageMediaDocument46::fetch(p); + case decryptedMessageMediaVenue::ID: + return decryptedMessageMediaVenue::fetch(p); + case decryptedMessageMediaWebPage::ID: + return decryptedMessageMediaWebPage::fetch(p); + case decryptedMessageMediaDocument::ID: + return decryptedMessageMediaDocument::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t decryptedMessageMediaEmpty::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaEmpty::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaEmpty>(); +} + +void decryptedMessageMediaEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void decryptedMessageMediaEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void decryptedMessageMediaEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaEmpty"); + s.store_class_end(); + } +} + +decryptedMessageMediaPhoto8::decryptedMessageMediaPhoto8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , w_(w_) + , h_(h_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) +{} + +const std::int32_t decryptedMessageMediaPhoto8::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaPhoto8::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaPhoto8>(p); +} + +decryptedMessageMediaPhoto8::decryptedMessageMediaPhoto8(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaPhoto8::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaPhoto8::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaPhoto8::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaPhoto8"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_class_end(); + } +} + +decryptedMessageMediaVideo8::decryptedMessageMediaVideo8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , duration_(duration_) + , w_(w_) + , h_(h_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) +{} + +const std::int32_t decryptedMessageMediaVideo8::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaVideo8::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaVideo8>(p); +} + +decryptedMessageMediaVideo8::decryptedMessageMediaVideo8(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , duration_(TlFetchInt::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaVideo8::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaVideo8::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaVideo8::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaVideo8"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("duration", duration_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_class_end(); + } +} + +decryptedMessageMediaGeoPoint::decryptedMessageMediaGeoPoint(double lat_, double long_) + : lat_(lat_) + , long_(long_) +{} + +const std::int32_t decryptedMessageMediaGeoPoint::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaGeoPoint::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaGeoPoint>(p); +} + +decryptedMessageMediaGeoPoint::decryptedMessageMediaGeoPoint(TlParser &p) +#define FAIL(error) p.set_error(error) + : lat_(TlFetchDouble::parse(p)) + , long_(TlFetchDouble::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaGeoPoint::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(lat_, s); + TlStoreBinary::store(long_, s); +} + +void decryptedMessageMediaGeoPoint::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(lat_, s); + TlStoreBinary::store(long_, s); +} + +void decryptedMessageMediaGeoPoint::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaGeoPoint"); + s.store_field("lat", lat_); + s.store_field("long", long_); + s.store_class_end(); + } +} + +decryptedMessageMediaContact::decryptedMessageMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, int32 user_id_) + : phone_number_(phone_number_) + , first_name_(first_name_) + , last_name_(last_name_) + , user_id_(user_id_) +{} + +const std::int32_t decryptedMessageMediaContact::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaContact::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaContact>(p); +} + +decryptedMessageMediaContact::decryptedMessageMediaContact(TlParser &p) +#define FAIL(error) p.set_error(error) + : phone_number_(TlFetchString<string>::parse(p)) + , first_name_(TlFetchString<string>::parse(p)) + , last_name_(TlFetchString<string>::parse(p)) + , user_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaContact::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreBinary::store(user_id_, s); +} + +void decryptedMessageMediaContact::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreBinary::store(user_id_, s); +} + +void decryptedMessageMediaContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaContact"); + s.store_field("phone_number", phone_number_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +decryptedMessageMediaDocument8::decryptedMessageMediaDocument8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &file_name_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , file_name_(file_name_) + , mime_type_(mime_type_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) +{} + +const std::int32_t decryptedMessageMediaDocument8::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaDocument8::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaDocument8>(p); +} + +decryptedMessageMediaDocument8::decryptedMessageMediaDocument8(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , file_name_(TlFetchString<string>::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaDocument8::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreString::store(file_name_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaDocument8::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreString::store(file_name_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaDocument8::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaDocument8"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("file_name", file_name_); + s.store_field("mime_type", mime_type_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_class_end(); + } +} + +decryptedMessageMediaAudio8::decryptedMessageMediaAudio8(int32 duration_, int32 size_, bytes &&key_, bytes &&iv_) + : duration_(duration_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) +{} + +const std::int32_t decryptedMessageMediaAudio8::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaAudio8::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaAudio8>(p); +} + +decryptedMessageMediaAudio8::decryptedMessageMediaAudio8(TlParser &p) +#define FAIL(error) p.set_error(error) + : duration_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaAudio8::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaAudio8::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaAudio8::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaAudio8"); + s.store_field("duration", duration_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_class_end(); + } +} + +decryptedMessageMediaVideo23::decryptedMessageMediaVideo23(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , duration_(duration_) + , mime_type_(mime_type_) + , w_(w_) + , h_(h_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) +{} + +const std::int32_t decryptedMessageMediaVideo23::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaVideo23::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaVideo23>(p); +} + +decryptedMessageMediaVideo23::decryptedMessageMediaVideo23(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , duration_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaVideo23::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaVideo23::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaVideo23::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaVideo23"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("duration", duration_); + s.store_field("mime_type", mime_type_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_class_end(); + } +} + +decryptedMessageMediaAudio::decryptedMessageMediaAudio(int32 duration_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_) + : duration_(duration_) + , mime_type_(mime_type_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) +{} + +const std::int32_t decryptedMessageMediaAudio::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaAudio::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaAudio>(p); +} + +decryptedMessageMediaAudio::decryptedMessageMediaAudio(TlParser &p) +#define FAIL(error) p.set_error(error) + : duration_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaAudio::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaAudio::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); +} + +void decryptedMessageMediaAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaAudio"); + s.store_field("duration", duration_); + s.store_field("mime_type", mime_type_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_class_end(); + } +} + +decryptedMessageMediaExternalDocument::decryptedMessageMediaExternalDocument(int64 id_, int64 access_hash_, int32 date_, string const &mime_type_, int32 size_, object_ptr<PhotoSize> &&thumb_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_) + : id_(id_) + , access_hash_(access_hash_) + , date_(date_) + , mime_type_(mime_type_) + , size_(size_) + , thumb_(std::move(thumb_)) + , dc_id_(dc_id_) + , attributes_(std::move(attributes_)) +{} + +const std::int32_t decryptedMessageMediaExternalDocument::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaExternalDocument::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaExternalDocument>(p); +} + +decryptedMessageMediaExternalDocument::decryptedMessageMediaExternalDocument(TlParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , size_(TlFetchInt::parse(p)) + , thumb_(TlFetchObject<PhotoSize>::parse(p)) + , dc_id_(TlFetchInt::parse(p)) + , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaExternalDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreBinary::store(date_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); + TlStoreBinary::store(dc_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); +} + +void decryptedMessageMediaExternalDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreBinary::store(date_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); + TlStoreBinary::store(dc_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); +} + +void decryptedMessageMediaExternalDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaExternalDocument"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("mime_type", mime_type_); + s.store_field("size", size_); + s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); + s.store_field("dc_id", dc_id_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +decryptedMessageMediaPhoto::decryptedMessageMediaPhoto(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , w_(w_) + , h_(h_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) + , caption_(caption_) +{} + +const std::int32_t decryptedMessageMediaPhoto::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaPhoto::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaPhoto>(p); +} + +decryptedMessageMediaPhoto::decryptedMessageMediaPhoto(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) + , caption_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaPhoto"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_field("caption", caption_); + s.store_class_end(); + } +} + +decryptedMessageMediaVideo::decryptedMessageMediaVideo(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , duration_(duration_) + , mime_type_(mime_type_) + , w_(w_) + , h_(h_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) + , caption_(caption_) +{} + +const std::int32_t decryptedMessageMediaVideo::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaVideo::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaVideo>(p); +} + +decryptedMessageMediaVideo::decryptedMessageMediaVideo(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , duration_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) + , caption_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaVideo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaVideo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaVideo"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("duration", duration_); + s.store_field("mime_type", mime_type_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + s.store_field("caption", caption_); + s.store_class_end(); + } +} + +decryptedMessageMediaDocument46::decryptedMessageMediaDocument46(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , mime_type_(mime_type_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) + , attributes_(std::move(attributes_)) + , caption_(caption_) +{} + +const std::int32_t decryptedMessageMediaDocument46::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaDocument46::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaDocument46>(p); +} + +decryptedMessageMediaDocument46::decryptedMessageMediaDocument46(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , size_(TlFetchInt::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) + , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p)) + , caption_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaDocument46::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaDocument46::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaDocument46::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaDocument46"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("mime_type", mime_type_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("caption", caption_); + s.store_class_end(); + } +} + +decryptedMessageMediaVenue::decryptedMessageMediaVenue(double lat_, double long_, string const &title_, string const &address_, string const &provider_, string const &venue_id_) + : lat_(lat_) + , long_(long_) + , title_(title_) + , address_(address_) + , provider_(provider_) + , venue_id_(venue_id_) +{} + +const std::int32_t decryptedMessageMediaVenue::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaVenue::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaVenue>(p); +} + +decryptedMessageMediaVenue::decryptedMessageMediaVenue(TlParser &p) +#define FAIL(error) p.set_error(error) + : lat_(TlFetchDouble::parse(p)) + , long_(TlFetchDouble::parse(p)) + , title_(TlFetchString<string>::parse(p)) + , address_(TlFetchString<string>::parse(p)) + , provider_(TlFetchString<string>::parse(p)) + , venue_id_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaVenue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(lat_, s); + TlStoreBinary::store(long_, s); + TlStoreString::store(title_, s); + TlStoreString::store(address_, s); + TlStoreString::store(provider_, s); + TlStoreString::store(venue_id_, s); +} + +void decryptedMessageMediaVenue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(lat_, s); + TlStoreBinary::store(long_, s); + TlStoreString::store(title_, s); + TlStoreString::store(address_, s); + TlStoreString::store(provider_, s); + TlStoreString::store(venue_id_, s); +} + +void decryptedMessageMediaVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaVenue"); + s.store_field("lat", lat_); + s.store_field("long", long_); + s.store_field("title", title_); + s.store_field("address", address_); + s.store_field("provider", provider_); + s.store_field("venue_id", venue_id_); + s.store_class_end(); + } +} + +decryptedMessageMediaWebPage::decryptedMessageMediaWebPage(string const &url_) + : url_(url_) +{} + +const std::int32_t decryptedMessageMediaWebPage::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaWebPage::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaWebPage>(p); +} + +decryptedMessageMediaWebPage::decryptedMessageMediaWebPage(TlParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaWebPage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(url_, s); +} + +void decryptedMessageMediaWebPage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(url_, s); +} + +void decryptedMessageMediaWebPage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaWebPage"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +decryptedMessageMediaDocument::decryptedMessageMediaDocument(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int64 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_) + : thumb_(std::move(thumb_)) + , thumb_w_(thumb_w_) + , thumb_h_(thumb_h_) + , mime_type_(mime_type_) + , size_(size_) + , key_(std::move(key_)) + , iv_(std::move(iv_)) + , attributes_(std::move(attributes_)) + , caption_(caption_) +{} + +const std::int32_t decryptedMessageMediaDocument::ID; + +object_ptr<DecryptedMessageMedia> decryptedMessageMediaDocument::fetch(TlParser &p) { + return make_tl_object<decryptedMessageMediaDocument>(p); +} + +decryptedMessageMediaDocument::decryptedMessageMediaDocument(TlParser &p) +#define FAIL(error) p.set_error(error) + : thumb_(TlFetchBytes<bytes>::parse(p)) + , thumb_w_(TlFetchInt::parse(p)) + , thumb_h_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , size_(TlFetchLong::parse(p)) + , key_(TlFetchBytes<bytes>::parse(p)) + , iv_(TlFetchBytes<bytes>::parse(p)) + , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p)) + , caption_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void decryptedMessageMediaDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(thumb_, s); + TlStoreBinary::store(thumb_w_, s); + TlStoreBinary::store(thumb_h_, s); + TlStoreString::store(mime_type_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(key_, s); + TlStoreString::store(iv_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); + TlStoreString::store(caption_, s); +} + +void decryptedMessageMediaDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "decryptedMessageMediaDocument"); + s.store_bytes_field("thumb", thumb_); + s.store_field("thumb_w", thumb_w_); + s.store_field("thumb_h", thumb_h_); + s.store_field("mime_type", mime_type_); + s.store_field("size", size_); + s.store_bytes_field("key", key_); + s.store_bytes_field("iv", iv_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("caption", caption_); + s.store_class_end(); + } +} + +object_ptr<DocumentAttribute> DocumentAttribute::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case documentAttributeImageSize::ID: + return documentAttributeImageSize::fetch(p); + case documentAttributeAnimated::ID: + return documentAttributeAnimated::fetch(p); + case documentAttributeSticker23::ID: + return documentAttributeSticker23::fetch(p); + case documentAttributeVideo23::ID: + return documentAttributeVideo23::fetch(p); + case documentAttributeAudio23::ID: + return documentAttributeAudio23::fetch(p); + case documentAttributeFilename::ID: + return documentAttributeFilename::fetch(p); + case documentAttributeAudio45::ID: + return documentAttributeAudio45::fetch(p); + case documentAttributeSticker::ID: + return documentAttributeSticker::fetch(p); + case documentAttributeAudio::ID: + return documentAttributeAudio::fetch(p); + case documentAttributeVideo::ID: + return documentAttributeVideo::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +documentAttributeImageSize::documentAttributeImageSize(int32 w_, int32 h_) + : w_(w_) + , h_(h_) +{} + +const std::int32_t documentAttributeImageSize::ID; + +object_ptr<DocumentAttribute> documentAttributeImageSize::fetch(TlParser &p) { + return make_tl_object<documentAttributeImageSize>(p); +} + +documentAttributeImageSize::documentAttributeImageSize(TlParser &p) +#define FAIL(error) p.set_error(error) + : w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void documentAttributeImageSize::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeImageSize::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeImageSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeImageSize"); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_class_end(); + } +} + +const std::int32_t documentAttributeAnimated::ID; + +object_ptr<DocumentAttribute> documentAttributeAnimated::fetch(TlParser &p) { + return make_tl_object<documentAttributeAnimated>(); +} + +void documentAttributeAnimated::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void documentAttributeAnimated::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void documentAttributeAnimated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeAnimated"); + s.store_class_end(); + } +} + +const std::int32_t documentAttributeSticker23::ID; + +object_ptr<DocumentAttribute> documentAttributeSticker23::fetch(TlParser &p) { + return make_tl_object<documentAttributeSticker23>(); +} + +void documentAttributeSticker23::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void documentAttributeSticker23::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void documentAttributeSticker23::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeSticker23"); + s.store_class_end(); + } +} + +documentAttributeVideo23::documentAttributeVideo23(int32 duration_, int32 w_, int32 h_) + : duration_(duration_) + , w_(w_) + , h_(h_) +{} + +const std::int32_t documentAttributeVideo23::ID; + +object_ptr<DocumentAttribute> documentAttributeVideo23::fetch(TlParser &p) { + return make_tl_object<documentAttributeVideo23>(p); +} + +documentAttributeVideo23::documentAttributeVideo23(TlParser &p) +#define FAIL(error) p.set_error(error) + : duration_(TlFetchInt::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void documentAttributeVideo23::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeVideo23::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeVideo23::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeVideo23"); + s.store_field("duration", duration_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_class_end(); + } +} + +documentAttributeAudio23::documentAttributeAudio23(int32 duration_) + : duration_(duration_) +{} + +const std::int32_t documentAttributeAudio23::ID; + +object_ptr<DocumentAttribute> documentAttributeAudio23::fetch(TlParser &p) { + return make_tl_object<documentAttributeAudio23>(p); +} + +documentAttributeAudio23::documentAttributeAudio23(TlParser &p) +#define FAIL(error) p.set_error(error) + : duration_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void documentAttributeAudio23::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); +} + +void documentAttributeAudio23::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); +} + +void documentAttributeAudio23::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeAudio23"); + s.store_field("duration", duration_); + s.store_class_end(); + } +} + +documentAttributeFilename::documentAttributeFilename(string const &file_name_) + : file_name_(file_name_) +{} + +const std::int32_t documentAttributeFilename::ID; + +object_ptr<DocumentAttribute> documentAttributeFilename::fetch(TlParser &p) { + return make_tl_object<documentAttributeFilename>(p); +} + +documentAttributeFilename::documentAttributeFilename(TlParser &p) +#define FAIL(error) p.set_error(error) + : file_name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void documentAttributeFilename::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(file_name_, s); +} + +void documentAttributeFilename::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(file_name_, s); +} + +void documentAttributeFilename::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeFilename"); + s.store_field("file_name", file_name_); + s.store_class_end(); + } +} + +documentAttributeAudio45::documentAttributeAudio45(int32 duration_, string const &title_, string const &performer_) + : duration_(duration_) + , title_(title_) + , performer_(performer_) +{} + +const std::int32_t documentAttributeAudio45::ID; + +object_ptr<DocumentAttribute> documentAttributeAudio45::fetch(TlParser &p) { + return make_tl_object<documentAttributeAudio45>(p); +} + +documentAttributeAudio45::documentAttributeAudio45(TlParser &p) +#define FAIL(error) p.set_error(error) + : duration_(TlFetchInt::parse(p)) + , title_(TlFetchString<string>::parse(p)) + , performer_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void documentAttributeAudio45::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(title_, s); + TlStoreString::store(performer_, s); +} + +void documentAttributeAudio45::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(duration_, s); + TlStoreString::store(title_, s); + TlStoreString::store(performer_, s); +} + +void documentAttributeAudio45::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeAudio45"); + s.store_field("duration", duration_); + s.store_field("title", title_); + s.store_field("performer", performer_); + s.store_class_end(); + } +} + +documentAttributeSticker::documentAttributeSticker(string const &alt_, object_ptr<InputStickerSet> &&stickerset_) + : alt_(alt_) + , stickerset_(std::move(stickerset_)) +{} + +const std::int32_t documentAttributeSticker::ID; + +object_ptr<DocumentAttribute> documentAttributeSticker::fetch(TlParser &p) { + return make_tl_object<documentAttributeSticker>(p); +} + +documentAttributeSticker::documentAttributeSticker(TlParser &p) +#define FAIL(error) p.set_error(error) + : alt_(TlFetchString<string>::parse(p)) + , stickerset_(TlFetchObject<InputStickerSet>::parse(p)) +#undef FAIL +{} + +void documentAttributeSticker::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(alt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void documentAttributeSticker::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(alt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void documentAttributeSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeSticker"); + s.store_field("alt", alt_); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_class_end(); + } +} + +documentAttributeAudio::documentAttributeAudio() + : flags_() + , voice_() + , duration_() + , title_() + , performer_() + , waveform_() +{} + +documentAttributeAudio::documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_) + : flags_(flags_) + , voice_(voice_) + , duration_(duration_) + , title_(title_) + , performer_(performer_) + , waveform_(std::move(waveform_)) +{} + +const std::int32_t documentAttributeAudio::ID; + +object_ptr<DocumentAttribute> documentAttributeAudio::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<documentAttributeAudio> res = make_tl_object<documentAttributeAudio>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1024) { res->voice_ = TlFetchTrue::parse(p); } + res->duration_ = TlFetchInt::parse(p); + if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->performer_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->waveform_ = TlFetchBytes<bytes>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void documentAttributeAudio::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreString::store(performer_, s); } + if (var0 & 4) { TlStoreString::store(waveform_, s); } +} + +void documentAttributeAudio::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreString::store(performer_, s); } + if (var0 & 4) { TlStoreString::store(waveform_, s); } +} + +void documentAttributeAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeAudio"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("duration", duration_); + if (var0 & 1) { s.store_field("title", title_); } + if (var0 & 2) { s.store_field("performer", performer_); } + if (var0 & 4) { s.store_bytes_field("waveform", waveform_); } + s.store_class_end(); + } +} + +documentAttributeVideo::documentAttributeVideo() + : flags_() + , round_message_() + , duration_() + , w_() + , h_() +{} + +documentAttributeVideo::documentAttributeVideo(int32 flags_, bool round_message_, int32 duration_, int32 w_, int32 h_) + : flags_(flags_) + , round_message_(round_message_) + , duration_(duration_) + , w_(w_) + , h_(h_) +{} + +const std::int32_t documentAttributeVideo::ID; + +object_ptr<DocumentAttribute> documentAttributeVideo::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<documentAttributeVideo> res = make_tl_object<documentAttributeVideo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->round_message_ = TlFetchTrue::parse(p); } + res->duration_ = TlFetchInt::parse(p); + res->w_ = TlFetchInt::parse(p); + res->h_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void documentAttributeVideo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeVideo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeVideo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("duration", duration_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_class_end(); + } +} + +object_ptr<FileLocation> FileLocation::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case fileLocationUnavailable::ID: + return fileLocationUnavailable::fetch(p); + case fileLocation::ID: + return fileLocation::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +fileLocationUnavailable::fileLocationUnavailable(int64 volume_id_, int32 local_id_, int64 secret_) + : volume_id_(volume_id_) + , local_id_(local_id_) + , secret_(secret_) +{} + +const std::int32_t fileLocationUnavailable::ID; + +object_ptr<FileLocation> fileLocationUnavailable::fetch(TlParser &p) { + return make_tl_object<fileLocationUnavailable>(p); +} + +fileLocationUnavailable::fileLocationUnavailable(TlParser &p) +#define FAIL(error) p.set_error(error) + : volume_id_(TlFetchLong::parse(p)) + , local_id_(TlFetchInt::parse(p)) + , secret_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void fileLocationUnavailable::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); +} + +void fileLocationUnavailable::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); +} + +void fileLocationUnavailable::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileLocationUnavailable"); + s.store_field("volume_id", volume_id_); + s.store_field("local_id", local_id_); + s.store_field("secret", secret_); + s.store_class_end(); + } +} + +fileLocation::fileLocation(int32 dc_id_, int64 volume_id_, int32 local_id_, int64 secret_) + : dc_id_(dc_id_) + , volume_id_(volume_id_) + , local_id_(local_id_) + , secret_(secret_) +{} + +const std::int32_t fileLocation::ID; + +object_ptr<FileLocation> fileLocation::fetch(TlParser &p) { + return make_tl_object<fileLocation>(p); +} + +fileLocation::fileLocation(TlParser &p) +#define FAIL(error) p.set_error(error) + : dc_id_(TlFetchInt::parse(p)) + , volume_id_(TlFetchLong::parse(p)) + , local_id_(TlFetchInt::parse(p)) + , secret_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void fileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(dc_id_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); +} + +void fileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(dc_id_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); +} + +void fileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileLocation"); + s.store_field("dc_id", dc_id_); + s.store_field("volume_id", volume_id_); + s.store_field("local_id", local_id_); + s.store_field("secret", secret_); + s.store_class_end(); + } +} + +object_ptr<InputStickerSet> InputStickerSet::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inputStickerSetShortName::ID: + return inputStickerSetShortName::fetch(p); + case inputStickerSetEmpty::ID: + return inputStickerSetEmpty::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +inputStickerSetShortName::inputStickerSetShortName(string const &short_name_) + : short_name_(short_name_) +{} + +const std::int32_t inputStickerSetShortName::ID; + +object_ptr<InputStickerSet> inputStickerSetShortName::fetch(TlParser &p) { + return make_tl_object<inputStickerSetShortName>(p); +} + +inputStickerSetShortName::inputStickerSetShortName(TlParser &p) +#define FAIL(error) p.set_error(error) + : short_name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void inputStickerSetShortName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(short_name_, s); +} + +void inputStickerSetShortName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(short_name_, s); +} + +void inputStickerSetShortName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetShortName"); + s.store_field("short_name", short_name_); + s.store_class_end(); + } +} + +const std::int32_t inputStickerSetEmpty::ID; + +object_ptr<InputStickerSet> inputStickerSetEmpty::fetch(TlParser &p) { + return make_tl_object<inputStickerSetEmpty>(); +} + +void inputStickerSetEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetEmpty"); + s.store_class_end(); + } +} + +object_ptr<MessageEntity> MessageEntity::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messageEntityUnknown::ID: + return messageEntityUnknown::fetch(p); + case messageEntityMention::ID: + return messageEntityMention::fetch(p); + case messageEntityHashtag::ID: + return messageEntityHashtag::fetch(p); + case messageEntityBotCommand::ID: + return messageEntityBotCommand::fetch(p); + case messageEntityUrl::ID: + return messageEntityUrl::fetch(p); + case messageEntityEmail::ID: + return messageEntityEmail::fetch(p); + case messageEntityBold::ID: + return messageEntityBold::fetch(p); + case messageEntityItalic::ID: + return messageEntityItalic::fetch(p); + case messageEntityCode::ID: + return messageEntityCode::fetch(p); + case messageEntityPre::ID: + return messageEntityPre::fetch(p); + case messageEntityTextUrl::ID: + return messageEntityTextUrl::fetch(p); + case messageEntityMentionName::ID: + return messageEntityMentionName::fetch(p); + case messageEntityPhone::ID: + return messageEntityPhone::fetch(p); + case messageEntityCashtag::ID: + return messageEntityCashtag::fetch(p); + case messageEntityBankCard::ID: + return messageEntityBankCard::fetch(p); + case messageEntityUnderline::ID: + return messageEntityUnderline::fetch(p); + case messageEntityStrike::ID: + return messageEntityStrike::fetch(p); + case messageEntityBlockquote::ID: + return messageEntityBlockquote::fetch(p); + case messageEntitySpoiler::ID: + return messageEntitySpoiler::fetch(p); + case messageEntityCustomEmoji::ID: + return messageEntityCustomEmoji::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +messageEntityUnknown::messageEntityUnknown(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityUnknown::ID; + +object_ptr<MessageEntity> messageEntityUnknown::fetch(TlParser &p) { + return make_tl_object<messageEntityUnknown>(p); +} + +messageEntityUnknown::messageEntityUnknown(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityUnknown::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnknown::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityUnknown"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityMention::messageEntityMention(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityMention::ID; + +object_ptr<MessageEntity> messageEntityMention::fetch(TlParser &p) { + return make_tl_object<messageEntityMention>(p); +} + +messageEntityMention::messageEntityMention(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityMention::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityMention::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityMention::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityMention"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityHashtag::messageEntityHashtag(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityHashtag::ID; + +object_ptr<MessageEntity> messageEntityHashtag::fetch(TlParser &p) { + return make_tl_object<messageEntityHashtag>(p); +} + +messageEntityHashtag::messageEntityHashtag(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityHashtag::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityHashtag::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityHashtag::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityHashtag"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBotCommand::messageEntityBotCommand(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBotCommand::ID; + +object_ptr<MessageEntity> messageEntityBotCommand::fetch(TlParser &p) { + return make_tl_object<messageEntityBotCommand>(p); +} + +messageEntityBotCommand::messageEntityBotCommand(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBotCommand::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBotCommand::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBotCommand::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBotCommand"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityUrl::messageEntityUrl(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityUrl::ID; + +object_ptr<MessageEntity> messageEntityUrl::fetch(TlParser &p) { + return make_tl_object<messageEntityUrl>(p); +} + +messageEntityUrl::messageEntityUrl(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityUrl::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUrl::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityUrl"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityEmail::messageEntityEmail(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityEmail::ID; + +object_ptr<MessageEntity> messageEntityEmail::fetch(TlParser &p) { + return make_tl_object<messageEntityEmail>(p); +} + +messageEntityEmail::messageEntityEmail(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityEmail"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBold::messageEntityBold(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBold::ID; + +object_ptr<MessageEntity> messageEntityBold::fetch(TlParser &p) { + return make_tl_object<messageEntityBold>(p); +} + +messageEntityBold::messageEntityBold(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBold::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBold::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBold::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBold"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityItalic::messageEntityItalic(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityItalic::ID; + +object_ptr<MessageEntity> messageEntityItalic::fetch(TlParser &p) { + return make_tl_object<messageEntityItalic>(p); +} + +messageEntityItalic::messageEntityItalic(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityItalic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityItalic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityItalic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityItalic"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityCode::messageEntityCode(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityCode::ID; + +object_ptr<MessageEntity> messageEntityCode::fetch(TlParser &p) { + return make_tl_object<messageEntityCode>(p); +} + +messageEntityCode::messageEntityCode(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityCode"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityPre::messageEntityPre(int32 offset_, int32 length_, string const &language_) + : offset_(offset_) + , length_(length_) + , language_(language_) +{} + +const std::int32_t messageEntityPre::ID; + +object_ptr<MessageEntity> messageEntityPre::fetch(TlParser &p) { + return make_tl_object<messageEntityPre>(p); +} + +messageEntityPre::messageEntityPre(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , language_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageEntityPre::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(language_, s); +} + +void messageEntityPre::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(language_, s); +} + +void messageEntityPre::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityPre"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("language", language_); + s.store_class_end(); + } +} + +messageEntityTextUrl::messageEntityTextUrl(int32 offset_, int32 length_, string const &url_) + : offset_(offset_) + , length_(length_) + , url_(url_) +{} + +const std::int32_t messageEntityTextUrl::ID; + +object_ptr<MessageEntity> messageEntityTextUrl::fetch(TlParser &p) { + return make_tl_object<messageEntityTextUrl>(p); +} + +messageEntityTextUrl::messageEntityTextUrl(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageEntityTextUrl::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(url_, s); +} + +void messageEntityTextUrl::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(url_, s); +} + +void messageEntityTextUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityTextUrl"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +messageEntityMentionName::messageEntityMentionName(int32 offset_, int32 length_, int32 user_id_) + : offset_(offset_) + , length_(length_) + , user_id_(user_id_) +{} + +const std::int32_t messageEntityMentionName::ID; + +object_ptr<MessageEntity> messageEntityMentionName::fetch(TlParser &p) { + return make_tl_object<messageEntityMentionName>(p); +} + +messageEntityMentionName::messageEntityMentionName(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , user_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityMentionName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(user_id_, s); +} + +void messageEntityMentionName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(user_id_, s); +} + +void messageEntityMentionName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityMentionName"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +messageEntityPhone::messageEntityPhone(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityPhone::ID; + +object_ptr<MessageEntity> messageEntityPhone::fetch(TlParser &p) { + return make_tl_object<messageEntityPhone>(p); +} + +messageEntityPhone::messageEntityPhone(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityPhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityPhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityPhone"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityCashtag::messageEntityCashtag(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityCashtag::ID; + +object_ptr<MessageEntity> messageEntityCashtag::fetch(TlParser &p) { + return make_tl_object<messageEntityCashtag>(p); +} + +messageEntityCashtag::messageEntityCashtag(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityCashtag::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCashtag::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCashtag::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityCashtag"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBankCard::messageEntityBankCard(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBankCard::ID; + +object_ptr<MessageEntity> messageEntityBankCard::fetch(TlParser &p) { + return make_tl_object<messageEntityBankCard>(p); +} + +messageEntityBankCard::messageEntityBankCard(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBankCard::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBankCard::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBankCard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBankCard"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityUnderline::messageEntityUnderline(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityUnderline::ID; + +object_ptr<MessageEntity> messageEntityUnderline::fetch(TlParser &p) { + return make_tl_object<messageEntityUnderline>(p); +} + +messageEntityUnderline::messageEntityUnderline(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityUnderline::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnderline::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnderline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityUnderline"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityStrike::messageEntityStrike(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityStrike::ID; + +object_ptr<MessageEntity> messageEntityStrike::fetch(TlParser &p) { + return make_tl_object<messageEntityStrike>(p); +} + +messageEntityStrike::messageEntityStrike(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityStrike::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityStrike::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityStrike::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityStrike"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBlockquote::messageEntityBlockquote(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBlockquote::ID; + +object_ptr<MessageEntity> messageEntityBlockquote::fetch(TlParser &p) { + return make_tl_object<messageEntityBlockquote>(p); +} + +messageEntityBlockquote::messageEntityBlockquote(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBlockquote::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBlockquote::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBlockquote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBlockquote"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntitySpoiler::messageEntitySpoiler(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntitySpoiler::ID; + +object_ptr<MessageEntity> messageEntitySpoiler::fetch(TlParser &p) { + return make_tl_object<messageEntitySpoiler>(p); +} + +messageEntitySpoiler::messageEntitySpoiler(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntitySpoiler::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntitySpoiler::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntitySpoiler::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntitySpoiler"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityCustomEmoji::messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_) + : offset_(offset_) + , length_(length_) + , document_id_(document_id_) +{} + +const std::int32_t messageEntityCustomEmoji::ID; + +object_ptr<MessageEntity> messageEntityCustomEmoji::fetch(TlParser &p) { + return make_tl_object<messageEntityCustomEmoji>(p); +} + +messageEntityCustomEmoji::messageEntityCustomEmoji(TlParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , document_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageEntityCustomEmoji::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(document_id_, s); +} + +void messageEntityCustomEmoji::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(document_id_, s); +} + +void messageEntityCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityCustomEmoji"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("document_id", document_id_); + s.store_class_end(); + } +} + +object_ptr<PhotoSize> PhotoSize::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case photoSizeEmpty::ID: + return photoSizeEmpty::fetch(p); + case photoSize::ID: + return photoSize::fetch(p); + case photoCachedSize::ID: + return photoCachedSize::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +photoSizeEmpty::photoSizeEmpty(string const &type_) + : type_(type_) +{} + +const std::int32_t photoSizeEmpty::ID; + +object_ptr<PhotoSize> photoSizeEmpty::fetch(TlParser &p) { + return make_tl_object<photoSizeEmpty>(p); +} + +photoSizeEmpty::photoSizeEmpty(TlParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void photoSizeEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(type_, s); +} + +void photoSizeEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(type_, s); +} + +void photoSizeEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoSizeEmpty"); + s.store_field("type", type_); + s.store_class_end(); + } +} + +photoSize::photoSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, int32 size_) + : type_(type_) + , location_(std::move(location_)) + , w_(w_) + , h_(h_) + , size_(size_) +{} + +const std::int32_t photoSize::ID; + +object_ptr<PhotoSize> photoSize::fetch(TlParser &p) { + return make_tl_object<photoSize>(p); +} + +photoSize::photoSize(TlParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) + , location_(TlFetchObject<FileLocation>::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void photoSize::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(type_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); +} + +void photoSize::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(type_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(size_, s); +} + +void photoSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoSize"); + s.store_field("type", type_); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + s.store_class_end(); + } +} + +photoCachedSize::photoCachedSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, bytes &&bytes_) + : type_(type_) + , location_(std::move(location_)) + , w_(w_) + , h_(h_) + , bytes_(std::move(bytes_)) +{} + +const std::int32_t photoCachedSize::ID; + +object_ptr<PhotoSize> photoCachedSize::fetch(TlParser &p) { + return make_tl_object<photoCachedSize>(p); +} + +photoCachedSize::photoCachedSize(TlParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) + , location_(TlFetchObject<FileLocation>::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void photoCachedSize::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(type_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreString::store(bytes_, s); +} + +void photoCachedSize::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(type_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreString::store(bytes_, s); +} + +void photoCachedSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoCachedSize"); + s.store_field("type", type_); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +object_ptr<SendMessageAction> SendMessageAction::fetch(TlParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case sendMessageTypingAction::ID: + return sendMessageTypingAction::fetch(p); + case sendMessageCancelAction::ID: + return sendMessageCancelAction::fetch(p); + case sendMessageRecordVideoAction::ID: + return sendMessageRecordVideoAction::fetch(p); + case sendMessageUploadVideoAction::ID: + return sendMessageUploadVideoAction::fetch(p); + case sendMessageRecordAudioAction::ID: + return sendMessageRecordAudioAction::fetch(p); + case sendMessageUploadAudioAction::ID: + return sendMessageUploadAudioAction::fetch(p); + case sendMessageUploadPhotoAction::ID: + return sendMessageUploadPhotoAction::fetch(p); + case sendMessageUploadDocumentAction::ID: + return sendMessageUploadDocumentAction::fetch(p); + case sendMessageGeoLocationAction::ID: + return sendMessageGeoLocationAction::fetch(p); + case sendMessageChooseContactAction::ID: + return sendMessageChooseContactAction::fetch(p); + case sendMessageRecordRoundAction::ID: + return sendMessageRecordRoundAction::fetch(p); + case sendMessageUploadRoundAction::ID: + return sendMessageUploadRoundAction::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t sendMessageTypingAction::ID; + +object_ptr<SendMessageAction> sendMessageTypingAction::fetch(TlParser &p) { + return make_tl_object<sendMessageTypingAction>(); +} + +void sendMessageTypingAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageTypingAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageTypingAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageTypingAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageCancelAction::ID; + +object_ptr<SendMessageAction> sendMessageCancelAction::fetch(TlParser &p) { + return make_tl_object<sendMessageCancelAction>(); +} + +void sendMessageCancelAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageCancelAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageCancelAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageCancelAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageRecordVideoAction::ID; + +object_ptr<SendMessageAction> sendMessageRecordVideoAction::fetch(TlParser &p) { + return make_tl_object<sendMessageRecordVideoAction>(); +} + +void sendMessageRecordVideoAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageRecordVideoAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageRecordVideoAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageRecordVideoAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageUploadVideoAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadVideoAction::fetch(TlParser &p) { + return make_tl_object<sendMessageUploadVideoAction>(); +} + +void sendMessageUploadVideoAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageUploadVideoAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageUploadVideoAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadVideoAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageRecordAudioAction::ID; + +object_ptr<SendMessageAction> sendMessageRecordAudioAction::fetch(TlParser &p) { + return make_tl_object<sendMessageRecordAudioAction>(); +} + +void sendMessageRecordAudioAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageRecordAudioAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageRecordAudioAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageRecordAudioAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageUploadAudioAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadAudioAction::fetch(TlParser &p) { + return make_tl_object<sendMessageUploadAudioAction>(); +} + +void sendMessageUploadAudioAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageUploadAudioAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageUploadAudioAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadAudioAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageUploadPhotoAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadPhotoAction::fetch(TlParser &p) { + return make_tl_object<sendMessageUploadPhotoAction>(); +} + +void sendMessageUploadPhotoAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageUploadPhotoAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageUploadPhotoAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadPhotoAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageUploadDocumentAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadDocumentAction::fetch(TlParser &p) { + return make_tl_object<sendMessageUploadDocumentAction>(); +} + +void sendMessageUploadDocumentAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageUploadDocumentAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageUploadDocumentAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadDocumentAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageGeoLocationAction::ID; + +object_ptr<SendMessageAction> sendMessageGeoLocationAction::fetch(TlParser &p) { + return make_tl_object<sendMessageGeoLocationAction>(); +} + +void sendMessageGeoLocationAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageGeoLocationAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageGeoLocationAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageGeoLocationAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageChooseContactAction::ID; + +object_ptr<SendMessageAction> sendMessageChooseContactAction::fetch(TlParser &p) { + return make_tl_object<sendMessageChooseContactAction>(); +} + +void sendMessageChooseContactAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageChooseContactAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageChooseContactAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageChooseContactAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageRecordRoundAction::ID; + +object_ptr<SendMessageAction> sendMessageRecordRoundAction::fetch(TlParser &p) { + return make_tl_object<sendMessageRecordRoundAction>(); +} + +void sendMessageRecordRoundAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageRecordRoundAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageRecordRoundAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageRecordRoundAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageUploadRoundAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadRoundAction::fetch(TlParser &p) { + return make_tl_object<sendMessageUploadRoundAction>(); +} + +void sendMessageUploadRoundAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageUploadRoundAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageUploadRoundAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadRoundAction"); + s.store_class_end(); + } +} + +const std::int32_t test_dummyFunction::ID; + +object_ptr<test_dummyFunction> test_dummyFunction::fetch(TlParser &p) { + return make_tl_object<test_dummyFunction>(); +} + +void test_dummyFunction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-936020215); +} + +void test_dummyFunction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-936020215); +} + +void test_dummyFunction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "test.dummyFunction"); + s.store_class_end(); + } +} + +test_dummyFunction::ReturnType test_dummyFunction::fetch_result(TlParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} +} // namespace secret_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.h new file mode 100644 index 0000000000..e6da9e2ef2 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.h @@ -0,0 +1,2138 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include "td/utils/buffer.h" + +#include <cstdint> +#include <utility> +#include <vector> + +namespace td { +class TlStorerCalcLength; +class TlStorerUnsafe; +class TlStorerToString; +class TlParser; + +namespace secret_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = std::string; + +using bytes = BufferSlice; + +template <class Type> +using array = std::vector<Type>; + +using BaseObject = ::td::TlObject; + +template <class Type> +using object_ptr = ::td::tl_object_ptr<Type>; + +template <class Type, class... Args> +object_ptr<Type> make_object(Args &&... args) { + return object_ptr<Type>(new Type(std::forward<Args>(args)...)); +} + +template <class ToType, class FromType> +object_ptr<ToType> move_object_as(FromType &&from) { + return object_ptr<ToType>(static_cast<ToType *>(from.release())); +} + +std::string to_string(const BaseObject &value); + +template <class T> +std::string to_string(const object_ptr<T> &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template <class T> +std::string to_string(const std::vector<object_ptr<T>> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class DecryptedMessage; + +class DecryptedMessageAction; + +class decryptedMessageLayer; + +class DecryptedMessageMedia; + +class DocumentAttribute; + +class FileLocation; + +class InputStickerSet; + +class MessageEntity; + +class PhotoSize; + +class SendMessageAction; + +class Object; + +class Object: public TlObject { + public: + + static object_ptr<Object> fetch(TlParser &p); +}; + +class Function: public TlObject { + public: + + static object_ptr<Function> fetch(TlParser &p); +}; + +class DecryptedMessage: public Object { + public: + + static object_ptr<DecryptedMessage> fetch(TlParser &p); +}; + +class decryptedMessage8 final : public DecryptedMessage { + public: + int64 random_id_; + bytes random_bytes_; + string message_; + object_ptr<DecryptedMessageMedia> media_; + + decryptedMessage8(int64 random_id_, bytes &&random_bytes_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_); + + static const std::int32_t ID = 528568095; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessage> fetch(TlParser &p); + + explicit decryptedMessage8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageService8 final : public DecryptedMessage { + public: + int64 random_id_; + bytes random_bytes_; + object_ptr<DecryptedMessageAction> action_; + + decryptedMessageService8(int64 random_id_, bytes &&random_bytes_, object_ptr<DecryptedMessageAction> &&action_); + + static const std::int32_t ID = -1438109059; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessage> fetch(TlParser &p); + + explicit decryptedMessageService8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessage23 final : public DecryptedMessage { + public: + int64 random_id_; + int32 ttl_; + string message_; + object_ptr<DecryptedMessageMedia> media_; + + decryptedMessage23(int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_); + + static const std::int32_t ID = 541931640; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessage> fetch(TlParser &p); + + explicit decryptedMessage23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageService final : public DecryptedMessage { + public: + int64 random_id_; + object_ptr<DecryptedMessageAction> action_; + + decryptedMessageService(int64 random_id_, object_ptr<DecryptedMessageAction> &&action_); + + static const std::int32_t ID = 1930838368; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessage> fetch(TlParser &p); + + explicit decryptedMessageService(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessage46 final : public DecryptedMessage { + public: + int32 flags_; + int64 random_id_; + int32 ttl_; + string message_; + object_ptr<DecryptedMessageMedia> media_; + array<object_ptr<MessageEntity>> entities_; + string via_bot_name_; + int64 reply_to_random_id_; + enum Flags : std::int32_t { MEDIA_MASK = 512, ENTITIES_MASK = 128, VIA_BOT_NAME_MASK = 2048, REPLY_TO_RANDOM_ID_MASK = 8 }; + + decryptedMessage46(); + + decryptedMessage46(int32 flags_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_); + + static const std::int32_t ID = 917541342; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessage> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessage final : public DecryptedMessage { + public: + int32 flags_; + bool silent_; + int64 random_id_; + int32 ttl_; + string message_; + object_ptr<DecryptedMessageMedia> media_; + array<object_ptr<MessageEntity>> entities_; + string via_bot_name_; + int64 reply_to_random_id_; + int64 grouped_id_; + enum Flags : std::int32_t { SILENT_MASK = 32, MEDIA_MASK = 512, ENTITIES_MASK = 128, VIA_BOT_NAME_MASK = 2048, REPLY_TO_RANDOM_ID_MASK = 8, GROUPED_ID_MASK = 131072 }; + + decryptedMessage(); + + decryptedMessage(int32 flags_, bool silent_, int64 random_id_, int32 ttl_, string const &message_, object_ptr<DecryptedMessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_, string const &via_bot_name_, int64 reply_to_random_id_, int64 grouped_id_); + + static const std::int32_t ID = -1848883596; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessage> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DecryptedMessageAction: public Object { + public: + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); +}; + +class decryptedMessageActionSetMessageTTL final : public DecryptedMessageAction { + public: + int32 ttl_seconds_; + + explicit decryptedMessageActionSetMessageTTL(int32 ttl_seconds_); + + static const std::int32_t ID = -1586283796; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionSetMessageTTL(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionReadMessages final : public DecryptedMessageAction { + public: + array<int64> random_ids_; + + explicit decryptedMessageActionReadMessages(array<int64> &&random_ids_); + + static const std::int32_t ID = 206520510; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionReadMessages(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionDeleteMessages final : public DecryptedMessageAction { + public: + array<int64> random_ids_; + + explicit decryptedMessageActionDeleteMessages(array<int64> &&random_ids_); + + static const std::int32_t ID = 1700872964; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionDeleteMessages(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionScreenshotMessages final : public DecryptedMessageAction { + public: + array<int64> random_ids_; + + explicit decryptedMessageActionScreenshotMessages(array<int64> &&random_ids_); + + static const std::int32_t ID = -1967000459; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionScreenshotMessages(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionFlushHistory final : public DecryptedMessageAction { + public: + + static const std::int32_t ID = 1729750108; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionResend final : public DecryptedMessageAction { + public: + int32 start_seq_no_; + int32 end_seq_no_; + + decryptedMessageActionResend(int32 start_seq_no_, int32 end_seq_no_); + + static const std::int32_t ID = 1360072880; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionResend(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionNotifyLayer final : public DecryptedMessageAction { + public: + int32 layer_; + + explicit decryptedMessageActionNotifyLayer(int32 layer_); + + static const std::int32_t ID = -217806717; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionNotifyLayer(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionTyping final : public DecryptedMessageAction { + public: + object_ptr<SendMessageAction> action_; + + explicit decryptedMessageActionTyping(object_ptr<SendMessageAction> &&action_); + + static const std::int32_t ID = -860719551; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionTyping(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionRequestKey final : public DecryptedMessageAction { + public: + int64 exchange_id_; + bytes g_a_; + + decryptedMessageActionRequestKey(int64 exchange_id_, bytes &&g_a_); + + static const std::int32_t ID = -204906213; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionRequestKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionAcceptKey final : public DecryptedMessageAction { + public: + int64 exchange_id_; + bytes g_b_; + int64 key_fingerprint_; + + decryptedMessageActionAcceptKey(int64 exchange_id_, bytes &&g_b_, int64 key_fingerprint_); + + static const std::int32_t ID = 1877046107; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionAcceptKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionAbortKey final : public DecryptedMessageAction { + public: + int64 exchange_id_; + + explicit decryptedMessageActionAbortKey(int64 exchange_id_); + + static const std::int32_t ID = -586814357; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionAbortKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionCommitKey final : public DecryptedMessageAction { + public: + int64 exchange_id_; + int64 key_fingerprint_; + + decryptedMessageActionCommitKey(int64 exchange_id_, int64 key_fingerprint_); + + static const std::int32_t ID = -332526693; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + explicit decryptedMessageActionCommitKey(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageActionNoop final : public DecryptedMessageAction { + public: + + static const std::int32_t ID = -1473258141; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageLayer final : public Object { + public: + bytes random_bytes_; + int32 layer_; + int32 in_seq_no_; + int32 out_seq_no_; + object_ptr<DecryptedMessage> message_; + + decryptedMessageLayer(bytes &&random_bytes_, int32 layer_, int32 in_seq_no_, int32 out_seq_no_, object_ptr<DecryptedMessage> &&message_); + + static const std::int32_t ID = 467867529; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<decryptedMessageLayer> fetch(TlParser &p); + + explicit decryptedMessageLayer(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DecryptedMessageMedia: public Object { + public: + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); +}; + +class decryptedMessageMediaEmpty final : public DecryptedMessageMedia { + public: + + static const std::int32_t ID = 144661578; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaPhoto8 final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaPhoto8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 846826124; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaPhoto8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVideo8 final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 duration_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaVideo8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1290694387; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaVideo8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaGeoPoint final : public DecryptedMessageMedia { + public: + double lat_; + double long_; + + decryptedMessageMediaGeoPoint(double lat_, double long_); + + static const std::int32_t ID = 893913689; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaGeoPoint(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaContact final : public DecryptedMessageMedia { + public: + string phone_number_; + string first_name_; + string last_name_; + int32 user_id_; + + decryptedMessageMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, int32 user_id_); + + static const std::int32_t ID = 1485441687; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaContact(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaDocument8 final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + string file_name_; + string mime_type_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaDocument8(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &file_name_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = -1332395189; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaDocument8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaAudio8 final : public DecryptedMessageMedia { + public: + int32 duration_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaAudio8(int32 duration_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1619031439; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaAudio8(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVideo23 final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 duration_; + string mime_type_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaVideo23(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1380598109; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaVideo23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaAudio final : public DecryptedMessageMedia { + public: + int32 duration_; + string mime_type_; + int32 size_; + bytes key_; + bytes iv_; + + decryptedMessageMediaAudio(int32 duration_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_); + + static const std::int32_t ID = 1474341323; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaAudio(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaExternalDocument final : public DecryptedMessageMedia { + public: + int64 id_; + int64 access_hash_; + int32 date_; + string mime_type_; + int32 size_; + object_ptr<PhotoSize> thumb_; + int32 dc_id_; + array<object_ptr<DocumentAttribute>> attributes_; + + decryptedMessageMediaExternalDocument(int64 id_, int64 access_hash_, int32 date_, string const &mime_type_, int32 size_, object_ptr<PhotoSize> &&thumb_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_); + + static const std::int32_t ID = -90853155; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaExternalDocument(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaPhoto final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + string caption_; + + decryptedMessageMediaPhoto(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_); + + static const std::int32_t ID = -235238024; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaPhoto(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVideo final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + int32 duration_; + string mime_type_; + int32 w_; + int32 h_; + int32 size_; + bytes key_; + bytes iv_; + string caption_; + + decryptedMessageMediaVideo(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, int32 duration_, string const &mime_type_, int32 w_, int32 h_, int32 size_, bytes &&key_, bytes &&iv_, string const &caption_); + + static const std::int32_t ID = -1760785394; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaVideo(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaDocument46 final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + string mime_type_; + int32 size_; + bytes key_; + bytes iv_; + array<object_ptr<DocumentAttribute>> attributes_; + string caption_; + + decryptedMessageMediaDocument46(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int32 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_); + + static const std::int32_t ID = 2063502050; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaDocument46(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaVenue final : public DecryptedMessageMedia { + public: + double lat_; + double long_; + string title_; + string address_; + string provider_; + string venue_id_; + + decryptedMessageMediaVenue(double lat_, double long_, string const &title_, string const &address_, string const &provider_, string const &venue_id_); + + static const std::int32_t ID = -1978796689; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaVenue(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaWebPage final : public DecryptedMessageMedia { + public: + string url_; + + explicit decryptedMessageMediaWebPage(string const &url_); + + static const std::int32_t ID = -452652584; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaWebPage(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class decryptedMessageMediaDocument final : public DecryptedMessageMedia { + public: + bytes thumb_; + int32 thumb_w_; + int32 thumb_h_; + string mime_type_; + int64 size_; + bytes key_; + bytes iv_; + array<object_ptr<DocumentAttribute>> attributes_; + string caption_; + + decryptedMessageMediaDocument(bytes &&thumb_, int32 thumb_w_, int32 thumb_h_, string const &mime_type_, int64 size_, bytes &&key_, bytes &&iv_, array<object_ptr<DocumentAttribute>> &&attributes_, string const &caption_); + + static const std::int32_t ID = 1790809986; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DecryptedMessageMedia> fetch(TlParser &p); + + explicit decryptedMessageMediaDocument(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DocumentAttribute: public Object { + public: + + static object_ptr<DocumentAttribute> fetch(TlParser &p); +}; + +class documentAttributeImageSize final : public DocumentAttribute { + public: + int32 w_; + int32 h_; + + documentAttributeImageSize(int32 w_, int32 h_); + + static const std::int32_t ID = 1815593308; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + explicit documentAttributeImageSize(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAnimated final : public DocumentAttribute { + public: + + static const std::int32_t ID = 297109817; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeSticker23 final : public DocumentAttribute { + public: + + static const std::int32_t ID = -83208409; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeVideo23 final : public DocumentAttribute { + public: + int32 duration_; + int32 w_; + int32 h_; + + documentAttributeVideo23(int32 duration_, int32 w_, int32 h_); + + static const std::int32_t ID = 1494273227; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + explicit documentAttributeVideo23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAudio23 final : public DocumentAttribute { + public: + int32 duration_; + + explicit documentAttributeAudio23(int32 duration_); + + static const std::int32_t ID = 85215461; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + explicit documentAttributeAudio23(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeFilename final : public DocumentAttribute { + public: + string file_name_; + + explicit documentAttributeFilename(string const &file_name_); + + static const std::int32_t ID = 358154344; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + explicit documentAttributeFilename(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAudio45 final : public DocumentAttribute { + public: + int32 duration_; + string title_; + string performer_; + + documentAttributeAudio45(int32 duration_, string const &title_, string const &performer_); + + static const std::int32_t ID = -556656416; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + explicit documentAttributeAudio45(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeSticker final : public DocumentAttribute { + public: + string alt_; + object_ptr<InputStickerSet> stickerset_; + + documentAttributeSticker(string const &alt_, object_ptr<InputStickerSet> &&stickerset_); + + static const std::int32_t ID = 978674434; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + explicit documentAttributeSticker(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAudio final : public DocumentAttribute { + public: + int32 flags_; + bool voice_; + int32 duration_; + string title_; + string performer_; + bytes waveform_; + enum Flags : std::int32_t { VOICE_MASK = 1024, TITLE_MASK = 1, PERFORMER_MASK = 2, WAVEFORM_MASK = 4 }; + + documentAttributeAudio(); + + documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_); + + static const std::int32_t ID = -1739392570; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeVideo final : public DocumentAttribute { + public: + int32 flags_; + bool round_message_; + int32 duration_; + int32 w_; + int32 h_; + enum Flags : std::int32_t { ROUND_MESSAGE_MASK = 1 }; + + documentAttributeVideo(); + + documentAttributeVideo(int32 flags_, bool round_message_, int32 duration_, int32 w_, int32 h_); + + static const std::int32_t ID = 250621158; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FileLocation: public Object { + public: + + static object_ptr<FileLocation> fetch(TlParser &p); +}; + +class fileLocationUnavailable final : public FileLocation { + public: + int64 volume_id_; + int32 local_id_; + int64 secret_; + + fileLocationUnavailable(int64 volume_id_, int32 local_id_, int64 secret_); + + static const std::int32_t ID = 2086234950; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<FileLocation> fetch(TlParser &p); + + explicit fileLocationUnavailable(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileLocation final : public FileLocation { + public: + int32 dc_id_; + int64 volume_id_; + int32 local_id_; + int64 secret_; + + fileLocation(int32 dc_id_, int64 volume_id_, int32 local_id_, int64 secret_); + + static const std::int32_t ID = 1406570614; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<FileLocation> fetch(TlParser &p); + + explicit fileLocation(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputStickerSet: public Object { + public: + + static object_ptr<InputStickerSet> fetch(TlParser &p); +}; + +class inputStickerSetShortName final : public InputStickerSet { + public: + string short_name_; + + explicit inputStickerSetShortName(string const &short_name_); + + static const std::int32_t ID = -2044933984; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlParser &p); + + explicit inputStickerSetShortName(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetEmpty final : public InputStickerSet { + public: + + static const std::int32_t ID = -4838507; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageEntity: public Object { + public: + + static object_ptr<MessageEntity> fetch(TlParser &p); +}; + +class messageEntityUnknown final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityUnknown(int32 offset_, int32 length_); + + static const std::int32_t ID = -1148011883; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityUnknown(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityMention final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityMention(int32 offset_, int32 length_); + + static const std::int32_t ID = -100378723; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityMention(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityHashtag final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityHashtag(int32 offset_, int32 length_); + + static const std::int32_t ID = 1868782349; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityHashtag(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBotCommand final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBotCommand(int32 offset_, int32 length_); + + static const std::int32_t ID = 1827637959; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityBotCommand(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityUrl final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityUrl(int32 offset_, int32 length_); + + static const std::int32_t ID = 1859134776; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityUrl(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityEmail final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityEmail(int32 offset_, int32 length_); + + static const std::int32_t ID = 1692693954; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityEmail(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBold final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBold(int32 offset_, int32 length_); + + static const std::int32_t ID = -1117713463; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityBold(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityItalic final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityItalic(int32 offset_, int32 length_); + + static const std::int32_t ID = -2106619040; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityItalic(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCode final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityCode(int32 offset_, int32 length_); + + static const std::int32_t ID = 681706865; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityCode(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityPre final : public MessageEntity { + public: + int32 offset_; + int32 length_; + string language_; + + messageEntityPre(int32 offset_, int32 length_, string const &language_); + + static const std::int32_t ID = 1938967520; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityPre(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityTextUrl final : public MessageEntity { + public: + int32 offset_; + int32 length_; + string url_; + + messageEntityTextUrl(int32 offset_, int32 length_, string const &url_); + + static const std::int32_t ID = 1990644519; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityTextUrl(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityMentionName final : public MessageEntity { + public: + int32 offset_; + int32 length_; + int32 user_id_; + + messageEntityMentionName(int32 offset_, int32 length_, int32 user_id_); + + static const std::int32_t ID = 892193368; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityMentionName(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityPhone final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityPhone(int32 offset_, int32 length_); + + static const std::int32_t ID = -1687559349; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityPhone(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCashtag final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityCashtag(int32 offset_, int32 length_); + + static const std::int32_t ID = 1280209983; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityCashtag(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBankCard final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBankCard(int32 offset_, int32 length_); + + static const std::int32_t ID = 1981704948; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityBankCard(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityUnderline final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityUnderline(int32 offset_, int32 length_); + + static const std::int32_t ID = -1672577397; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityUnderline(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityStrike final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityStrike(int32 offset_, int32 length_); + + static const std::int32_t ID = -1090087980; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityStrike(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBlockquote final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBlockquote(int32 offset_, int32 length_); + + static const std::int32_t ID = 34469328; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityBlockquote(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntitySpoiler final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntitySpoiler(int32 offset_, int32 length_); + + static const std::int32_t ID = 852137487; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntitySpoiler(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCustomEmoji final : public MessageEntity { + public: + int32 offset_; + int32 length_; + int64 document_id_; + + messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_); + + static const std::int32_t ID = -925956616; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlParser &p); + + explicit messageEntityCustomEmoji(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PhotoSize: public Object { + public: + + static object_ptr<PhotoSize> fetch(TlParser &p); +}; + +class photoSizeEmpty final : public PhotoSize { + public: + string type_; + + explicit photoSizeEmpty(string const &type_); + + static const std::int32_t ID = 236446268; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlParser &p); + + explicit photoSizeEmpty(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoSize final : public PhotoSize { + public: + string type_; + object_ptr<FileLocation> location_; + int32 w_; + int32 h_; + int32 size_; + + photoSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, int32 size_); + + static const std::int32_t ID = 2009052699; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlParser &p); + + explicit photoSize(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoCachedSize final : public PhotoSize { + public: + string type_; + object_ptr<FileLocation> location_; + int32 w_; + int32 h_; + bytes bytes_; + + photoCachedSize(string const &type_, object_ptr<FileLocation> &&location_, int32 w_, int32 h_, bytes &&bytes_); + + static const std::int32_t ID = -374917894; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlParser &p); + + explicit photoCachedSize(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SendMessageAction: public Object { + public: + + static object_ptr<SendMessageAction> fetch(TlParser &p); +}; + +class sendMessageTypingAction final : public SendMessageAction { + public: + + static const std::int32_t ID = 381645902; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageCancelAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -44119819; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordVideoAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1584933265; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadVideoAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1845219337; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordAudioAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -718310409; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadAudioAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -424899985; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadPhotoAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1727382502; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadDocumentAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1884362354; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageGeoLocationAction final : public SendMessageAction { + public: + + static const std::int32_t ID = 393186209; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageChooseContactAction final : public SendMessageAction { + public: + + static const std::int32_t ID = 1653390447; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordRoundAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1997373508; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadRoundAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1150187996; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class test_dummyFunction final : public Function { + public: + + static const std::int32_t ID = -936020215; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + static object_ptr<test_dummyFunction> fetch(TlParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlParser &p); +}; + +} // namespace secret_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.hpp new file mode 100644 index 0000000000..43795cf6f1 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/secret_api.hpp @@ -0,0 +1,678 @@ +#pragma once + +/** + * \file + * Contains downcast_call methods for calling a function object on downcasted to + * the most derived class TDLib API object. + */ +#include "secret_api.h" + +namespace td { +namespace secret_api { + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Object &obj, const T &func) { + switch (obj.get_id()) { + case decryptedMessage8::ID: + func(static_cast<decryptedMessage8 &>(obj)); + return true; + case decryptedMessageService8::ID: + func(static_cast<decryptedMessageService8 &>(obj)); + return true; + case decryptedMessage23::ID: + func(static_cast<decryptedMessage23 &>(obj)); + return true; + case decryptedMessageService::ID: + func(static_cast<decryptedMessageService &>(obj)); + return true; + case decryptedMessage46::ID: + func(static_cast<decryptedMessage46 &>(obj)); + return true; + case decryptedMessage::ID: + func(static_cast<decryptedMessage &>(obj)); + return true; + case decryptedMessageActionSetMessageTTL::ID: + func(static_cast<decryptedMessageActionSetMessageTTL &>(obj)); + return true; + case decryptedMessageActionReadMessages::ID: + func(static_cast<decryptedMessageActionReadMessages &>(obj)); + return true; + case decryptedMessageActionDeleteMessages::ID: + func(static_cast<decryptedMessageActionDeleteMessages &>(obj)); + return true; + case decryptedMessageActionScreenshotMessages::ID: + func(static_cast<decryptedMessageActionScreenshotMessages &>(obj)); + return true; + case decryptedMessageActionFlushHistory::ID: + func(static_cast<decryptedMessageActionFlushHistory &>(obj)); + return true; + case decryptedMessageActionResend::ID: + func(static_cast<decryptedMessageActionResend &>(obj)); + return true; + case decryptedMessageActionNotifyLayer::ID: + func(static_cast<decryptedMessageActionNotifyLayer &>(obj)); + return true; + case decryptedMessageActionTyping::ID: + func(static_cast<decryptedMessageActionTyping &>(obj)); + return true; + case decryptedMessageActionRequestKey::ID: + func(static_cast<decryptedMessageActionRequestKey &>(obj)); + return true; + case decryptedMessageActionAcceptKey::ID: + func(static_cast<decryptedMessageActionAcceptKey &>(obj)); + return true; + case decryptedMessageActionAbortKey::ID: + func(static_cast<decryptedMessageActionAbortKey &>(obj)); + return true; + case decryptedMessageActionCommitKey::ID: + func(static_cast<decryptedMessageActionCommitKey &>(obj)); + return true; + case decryptedMessageActionNoop::ID: + func(static_cast<decryptedMessageActionNoop &>(obj)); + return true; + case decryptedMessageLayer::ID: + func(static_cast<decryptedMessageLayer &>(obj)); + return true; + case decryptedMessageMediaEmpty::ID: + func(static_cast<decryptedMessageMediaEmpty &>(obj)); + return true; + case decryptedMessageMediaPhoto8::ID: + func(static_cast<decryptedMessageMediaPhoto8 &>(obj)); + return true; + case decryptedMessageMediaVideo8::ID: + func(static_cast<decryptedMessageMediaVideo8 &>(obj)); + return true; + case decryptedMessageMediaGeoPoint::ID: + func(static_cast<decryptedMessageMediaGeoPoint &>(obj)); + return true; + case decryptedMessageMediaContact::ID: + func(static_cast<decryptedMessageMediaContact &>(obj)); + return true; + case decryptedMessageMediaDocument8::ID: + func(static_cast<decryptedMessageMediaDocument8 &>(obj)); + return true; + case decryptedMessageMediaAudio8::ID: + func(static_cast<decryptedMessageMediaAudio8 &>(obj)); + return true; + case decryptedMessageMediaVideo23::ID: + func(static_cast<decryptedMessageMediaVideo23 &>(obj)); + return true; + case decryptedMessageMediaAudio::ID: + func(static_cast<decryptedMessageMediaAudio &>(obj)); + return true; + case decryptedMessageMediaExternalDocument::ID: + func(static_cast<decryptedMessageMediaExternalDocument &>(obj)); + return true; + case decryptedMessageMediaPhoto::ID: + func(static_cast<decryptedMessageMediaPhoto &>(obj)); + return true; + case decryptedMessageMediaVideo::ID: + func(static_cast<decryptedMessageMediaVideo &>(obj)); + return true; + case decryptedMessageMediaDocument46::ID: + func(static_cast<decryptedMessageMediaDocument46 &>(obj)); + return true; + case decryptedMessageMediaVenue::ID: + func(static_cast<decryptedMessageMediaVenue &>(obj)); + return true; + case decryptedMessageMediaWebPage::ID: + func(static_cast<decryptedMessageMediaWebPage &>(obj)); + return true; + case decryptedMessageMediaDocument::ID: + func(static_cast<decryptedMessageMediaDocument &>(obj)); + return true; + case documentAttributeImageSize::ID: + func(static_cast<documentAttributeImageSize &>(obj)); + return true; + case documentAttributeAnimated::ID: + func(static_cast<documentAttributeAnimated &>(obj)); + return true; + case documentAttributeSticker23::ID: + func(static_cast<documentAttributeSticker23 &>(obj)); + return true; + case documentAttributeVideo23::ID: + func(static_cast<documentAttributeVideo23 &>(obj)); + return true; + case documentAttributeAudio23::ID: + func(static_cast<documentAttributeAudio23 &>(obj)); + return true; + case documentAttributeFilename::ID: + func(static_cast<documentAttributeFilename &>(obj)); + return true; + case documentAttributeAudio45::ID: + func(static_cast<documentAttributeAudio45 &>(obj)); + return true; + case documentAttributeSticker::ID: + func(static_cast<documentAttributeSticker &>(obj)); + return true; + case documentAttributeAudio::ID: + func(static_cast<documentAttributeAudio &>(obj)); + return true; + case documentAttributeVideo::ID: + func(static_cast<documentAttributeVideo &>(obj)); + return true; + case fileLocationUnavailable::ID: + func(static_cast<fileLocationUnavailable &>(obj)); + return true; + case fileLocation::ID: + func(static_cast<fileLocation &>(obj)); + return true; + case inputStickerSetShortName::ID: + func(static_cast<inputStickerSetShortName &>(obj)); + return true; + case inputStickerSetEmpty::ID: + func(static_cast<inputStickerSetEmpty &>(obj)); + return true; + case messageEntityUnknown::ID: + func(static_cast<messageEntityUnknown &>(obj)); + return true; + case messageEntityMention::ID: + func(static_cast<messageEntityMention &>(obj)); + return true; + case messageEntityHashtag::ID: + func(static_cast<messageEntityHashtag &>(obj)); + return true; + case messageEntityBotCommand::ID: + func(static_cast<messageEntityBotCommand &>(obj)); + return true; + case messageEntityUrl::ID: + func(static_cast<messageEntityUrl &>(obj)); + return true; + case messageEntityEmail::ID: + func(static_cast<messageEntityEmail &>(obj)); + return true; + case messageEntityBold::ID: + func(static_cast<messageEntityBold &>(obj)); + return true; + case messageEntityItalic::ID: + func(static_cast<messageEntityItalic &>(obj)); + return true; + case messageEntityCode::ID: + func(static_cast<messageEntityCode &>(obj)); + return true; + case messageEntityPre::ID: + func(static_cast<messageEntityPre &>(obj)); + return true; + case messageEntityTextUrl::ID: + func(static_cast<messageEntityTextUrl &>(obj)); + return true; + case messageEntityMentionName::ID: + func(static_cast<messageEntityMentionName &>(obj)); + return true; + case messageEntityPhone::ID: + func(static_cast<messageEntityPhone &>(obj)); + return true; + case messageEntityCashtag::ID: + func(static_cast<messageEntityCashtag &>(obj)); + return true; + case messageEntityBankCard::ID: + func(static_cast<messageEntityBankCard &>(obj)); + return true; + case messageEntityUnderline::ID: + func(static_cast<messageEntityUnderline &>(obj)); + return true; + case messageEntityStrike::ID: + func(static_cast<messageEntityStrike &>(obj)); + return true; + case messageEntityBlockquote::ID: + func(static_cast<messageEntityBlockquote &>(obj)); + return true; + case messageEntitySpoiler::ID: + func(static_cast<messageEntitySpoiler &>(obj)); + return true; + case messageEntityCustomEmoji::ID: + func(static_cast<messageEntityCustomEmoji &>(obj)); + return true; + case photoSizeEmpty::ID: + func(static_cast<photoSizeEmpty &>(obj)); + return true; + case photoSize::ID: + func(static_cast<photoSize &>(obj)); + return true; + case photoCachedSize::ID: + func(static_cast<photoCachedSize &>(obj)); + return true; + case sendMessageTypingAction::ID: + func(static_cast<sendMessageTypingAction &>(obj)); + return true; + case sendMessageCancelAction::ID: + func(static_cast<sendMessageCancelAction &>(obj)); + return true; + case sendMessageRecordVideoAction::ID: + func(static_cast<sendMessageRecordVideoAction &>(obj)); + return true; + case sendMessageUploadVideoAction::ID: + func(static_cast<sendMessageUploadVideoAction &>(obj)); + return true; + case sendMessageRecordAudioAction::ID: + func(static_cast<sendMessageRecordAudioAction &>(obj)); + return true; + case sendMessageUploadAudioAction::ID: + func(static_cast<sendMessageUploadAudioAction &>(obj)); + return true; + case sendMessageUploadPhotoAction::ID: + func(static_cast<sendMessageUploadPhotoAction &>(obj)); + return true; + case sendMessageUploadDocumentAction::ID: + func(static_cast<sendMessageUploadDocumentAction &>(obj)); + return true; + case sendMessageGeoLocationAction::ID: + func(static_cast<sendMessageGeoLocationAction &>(obj)); + return true; + case sendMessageChooseContactAction::ID: + func(static_cast<sendMessageChooseContactAction &>(obj)); + return true; + case sendMessageRecordRoundAction::ID: + func(static_cast<sendMessageRecordRoundAction &>(obj)); + return true; + case sendMessageUploadRoundAction::ID: + func(static_cast<sendMessageUploadRoundAction &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Function &obj, const T &func) { + switch (obj.get_id()) { + case test_dummyFunction::ID: + func(static_cast<test_dummyFunction &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DecryptedMessage &obj, const T &func) { + switch (obj.get_id()) { + case decryptedMessage8::ID: + func(static_cast<decryptedMessage8 &>(obj)); + return true; + case decryptedMessageService8::ID: + func(static_cast<decryptedMessageService8 &>(obj)); + return true; + case decryptedMessage23::ID: + func(static_cast<decryptedMessage23 &>(obj)); + return true; + case decryptedMessageService::ID: + func(static_cast<decryptedMessageService &>(obj)); + return true; + case decryptedMessage46::ID: + func(static_cast<decryptedMessage46 &>(obj)); + return true; + case decryptedMessage::ID: + func(static_cast<decryptedMessage &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DecryptedMessageAction &obj, const T &func) { + switch (obj.get_id()) { + case decryptedMessageActionSetMessageTTL::ID: + func(static_cast<decryptedMessageActionSetMessageTTL &>(obj)); + return true; + case decryptedMessageActionReadMessages::ID: + func(static_cast<decryptedMessageActionReadMessages &>(obj)); + return true; + case decryptedMessageActionDeleteMessages::ID: + func(static_cast<decryptedMessageActionDeleteMessages &>(obj)); + return true; + case decryptedMessageActionScreenshotMessages::ID: + func(static_cast<decryptedMessageActionScreenshotMessages &>(obj)); + return true; + case decryptedMessageActionFlushHistory::ID: + func(static_cast<decryptedMessageActionFlushHistory &>(obj)); + return true; + case decryptedMessageActionResend::ID: + func(static_cast<decryptedMessageActionResend &>(obj)); + return true; + case decryptedMessageActionNotifyLayer::ID: + func(static_cast<decryptedMessageActionNotifyLayer &>(obj)); + return true; + case decryptedMessageActionTyping::ID: + func(static_cast<decryptedMessageActionTyping &>(obj)); + return true; + case decryptedMessageActionRequestKey::ID: + func(static_cast<decryptedMessageActionRequestKey &>(obj)); + return true; + case decryptedMessageActionAcceptKey::ID: + func(static_cast<decryptedMessageActionAcceptKey &>(obj)); + return true; + case decryptedMessageActionAbortKey::ID: + func(static_cast<decryptedMessageActionAbortKey &>(obj)); + return true; + case decryptedMessageActionCommitKey::ID: + func(static_cast<decryptedMessageActionCommitKey &>(obj)); + return true; + case decryptedMessageActionNoop::ID: + func(static_cast<decryptedMessageActionNoop &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DecryptedMessageMedia &obj, const T &func) { + switch (obj.get_id()) { + case decryptedMessageMediaEmpty::ID: + func(static_cast<decryptedMessageMediaEmpty &>(obj)); + return true; + case decryptedMessageMediaPhoto8::ID: + func(static_cast<decryptedMessageMediaPhoto8 &>(obj)); + return true; + case decryptedMessageMediaVideo8::ID: + func(static_cast<decryptedMessageMediaVideo8 &>(obj)); + return true; + case decryptedMessageMediaGeoPoint::ID: + func(static_cast<decryptedMessageMediaGeoPoint &>(obj)); + return true; + case decryptedMessageMediaContact::ID: + func(static_cast<decryptedMessageMediaContact &>(obj)); + return true; + case decryptedMessageMediaDocument8::ID: + func(static_cast<decryptedMessageMediaDocument8 &>(obj)); + return true; + case decryptedMessageMediaAudio8::ID: + func(static_cast<decryptedMessageMediaAudio8 &>(obj)); + return true; + case decryptedMessageMediaVideo23::ID: + func(static_cast<decryptedMessageMediaVideo23 &>(obj)); + return true; + case decryptedMessageMediaAudio::ID: + func(static_cast<decryptedMessageMediaAudio &>(obj)); + return true; + case decryptedMessageMediaExternalDocument::ID: + func(static_cast<decryptedMessageMediaExternalDocument &>(obj)); + return true; + case decryptedMessageMediaPhoto::ID: + func(static_cast<decryptedMessageMediaPhoto &>(obj)); + return true; + case decryptedMessageMediaVideo::ID: + func(static_cast<decryptedMessageMediaVideo &>(obj)); + return true; + case decryptedMessageMediaDocument46::ID: + func(static_cast<decryptedMessageMediaDocument46 &>(obj)); + return true; + case decryptedMessageMediaVenue::ID: + func(static_cast<decryptedMessageMediaVenue &>(obj)); + return true; + case decryptedMessageMediaWebPage::ID: + func(static_cast<decryptedMessageMediaWebPage &>(obj)); + return true; + case decryptedMessageMediaDocument::ID: + func(static_cast<decryptedMessageMediaDocument &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DocumentAttribute &obj, const T &func) { + switch (obj.get_id()) { + case documentAttributeImageSize::ID: + func(static_cast<documentAttributeImageSize &>(obj)); + return true; + case documentAttributeAnimated::ID: + func(static_cast<documentAttributeAnimated &>(obj)); + return true; + case documentAttributeSticker23::ID: + func(static_cast<documentAttributeSticker23 &>(obj)); + return true; + case documentAttributeVideo23::ID: + func(static_cast<documentAttributeVideo23 &>(obj)); + return true; + case documentAttributeAudio23::ID: + func(static_cast<documentAttributeAudio23 &>(obj)); + return true; + case documentAttributeFilename::ID: + func(static_cast<documentAttributeFilename &>(obj)); + return true; + case documentAttributeAudio45::ID: + func(static_cast<documentAttributeAudio45 &>(obj)); + return true; + case documentAttributeSticker::ID: + func(static_cast<documentAttributeSticker &>(obj)); + return true; + case documentAttributeAudio::ID: + func(static_cast<documentAttributeAudio &>(obj)); + return true; + case documentAttributeVideo::ID: + func(static_cast<documentAttributeVideo &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(FileLocation &obj, const T &func) { + switch (obj.get_id()) { + case fileLocationUnavailable::ID: + func(static_cast<fileLocationUnavailable &>(obj)); + return true; + case fileLocation::ID: + func(static_cast<fileLocation &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputStickerSet &obj, const T &func) { + switch (obj.get_id()) { + case inputStickerSetShortName::ID: + func(static_cast<inputStickerSetShortName &>(obj)); + return true; + case inputStickerSetEmpty::ID: + func(static_cast<inputStickerSetEmpty &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageEntity &obj, const T &func) { + switch (obj.get_id()) { + case messageEntityUnknown::ID: + func(static_cast<messageEntityUnknown &>(obj)); + return true; + case messageEntityMention::ID: + func(static_cast<messageEntityMention &>(obj)); + return true; + case messageEntityHashtag::ID: + func(static_cast<messageEntityHashtag &>(obj)); + return true; + case messageEntityBotCommand::ID: + func(static_cast<messageEntityBotCommand &>(obj)); + return true; + case messageEntityUrl::ID: + func(static_cast<messageEntityUrl &>(obj)); + return true; + case messageEntityEmail::ID: + func(static_cast<messageEntityEmail &>(obj)); + return true; + case messageEntityBold::ID: + func(static_cast<messageEntityBold &>(obj)); + return true; + case messageEntityItalic::ID: + func(static_cast<messageEntityItalic &>(obj)); + return true; + case messageEntityCode::ID: + func(static_cast<messageEntityCode &>(obj)); + return true; + case messageEntityPre::ID: + func(static_cast<messageEntityPre &>(obj)); + return true; + case messageEntityTextUrl::ID: + func(static_cast<messageEntityTextUrl &>(obj)); + return true; + case messageEntityMentionName::ID: + func(static_cast<messageEntityMentionName &>(obj)); + return true; + case messageEntityPhone::ID: + func(static_cast<messageEntityPhone &>(obj)); + return true; + case messageEntityCashtag::ID: + func(static_cast<messageEntityCashtag &>(obj)); + return true; + case messageEntityBankCard::ID: + func(static_cast<messageEntityBankCard &>(obj)); + return true; + case messageEntityUnderline::ID: + func(static_cast<messageEntityUnderline &>(obj)); + return true; + case messageEntityStrike::ID: + func(static_cast<messageEntityStrike &>(obj)); + return true; + case messageEntityBlockquote::ID: + func(static_cast<messageEntityBlockquote &>(obj)); + return true; + case messageEntitySpoiler::ID: + func(static_cast<messageEntitySpoiler &>(obj)); + return true; + case messageEntityCustomEmoji::ID: + func(static_cast<messageEntityCustomEmoji &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PhotoSize &obj, const T &func) { + switch (obj.get_id()) { + case photoSizeEmpty::ID: + func(static_cast<photoSizeEmpty &>(obj)); + return true; + case photoSize::ID: + func(static_cast<photoSize &>(obj)); + return true; + case photoCachedSize::ID: + func(static_cast<photoCachedSize &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SendMessageAction &obj, const T &func) { + switch (obj.get_id()) { + case sendMessageTypingAction::ID: + func(static_cast<sendMessageTypingAction &>(obj)); + return true; + case sendMessageCancelAction::ID: + func(static_cast<sendMessageCancelAction &>(obj)); + return true; + case sendMessageRecordVideoAction::ID: + func(static_cast<sendMessageRecordVideoAction &>(obj)); + return true; + case sendMessageUploadVideoAction::ID: + func(static_cast<sendMessageUploadVideoAction &>(obj)); + return true; + case sendMessageRecordAudioAction::ID: + func(static_cast<sendMessageRecordAudioAction &>(obj)); + return true; + case sendMessageUploadAudioAction::ID: + func(static_cast<sendMessageUploadAudioAction &>(obj)); + return true; + case sendMessageUploadPhotoAction::ID: + func(static_cast<sendMessageUploadPhotoAction &>(obj)); + return true; + case sendMessageUploadDocumentAction::ID: + func(static_cast<sendMessageUploadDocumentAction &>(obj)); + return true; + case sendMessageGeoLocationAction::ID: + func(static_cast<sendMessageGeoLocationAction &>(obj)); + return true; + case sendMessageChooseContactAction::ID: + func(static_cast<sendMessageChooseContactAction &>(obj)); + return true; + case sendMessageRecordRoundAction::ID: + func(static_cast<sendMessageRecordRoundAction &>(obj)); + return true; + case sendMessageUploadRoundAction::ID: + func(static_cast<sendMessageUploadRoundAction &>(obj)); + return true; + default: + return false; + } +} + +} // namespace secret_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.cpp new file mode 100644 index 0000000000..5942d45622 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.cpp @@ -0,0 +1,33908 @@ +#include "td_api.h" + +#include "td/utils/common.h" +#include "td/utils/format.h" +#include "td/utils/logging.h" +#include "td/utils/SliceBuilder.h" +#include "td/utils/tl_parsers.h" +#include "td/utils/tl_storers.h" +#include "td/utils/TlStorerToString.h" + +namespace td { +namespace td_api { + +std::string to_string(const BaseObject &value) { + TlStorerToString storer; + value.store(storer, ""); + return storer.move_as_string(); +} + +accountTtl::accountTtl() + : days_() +{} + +accountTtl::accountTtl(int32 days_) + : days_(days_) +{} + +const std::int32_t accountTtl::ID; + +void accountTtl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "accountTtl"); + s.store_field("days", days_); + s.store_class_end(); + } +} + +addedReaction::addedReaction() + : type_() + , sender_id_() +{} + +addedReaction::addedReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_) + : type_(std::move(type_)) + , sender_id_(std::move(sender_id_)) +{} + +const std::int32_t addedReaction::ID; + +void addedReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addedReaction"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_class_end(); + } +} + +addedReactions::addedReactions() + : total_count_() + , reactions_() + , next_offset_() +{} + +addedReactions::addedReactions(int32 total_count_, array<object_ptr<addedReaction>> &&reactions_, string const &next_offset_) + : total_count_(total_count_) + , reactions_(std::move(reactions_)) + , next_offset_(next_offset_) +{} + +const std::int32_t addedReactions::ID; + +void addedReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addedReactions"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("next_offset", next_offset_); + s.store_class_end(); + } +} + +address::address() + : country_code_() + , state_() + , city_() + , street_line1_() + , street_line2_() + , postal_code_() +{} + +address::address(string const &country_code_, string const &state_, string const &city_, string const &street_line1_, string const &street_line2_, string const &postal_code_) + : country_code_(country_code_) + , state_(state_) + , city_(city_) + , street_line1_(street_line1_) + , street_line2_(street_line2_) + , postal_code_(postal_code_) +{} + +const std::int32_t address::ID; + +void address::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "address"); + s.store_field("country_code", country_code_); + s.store_field("state", state_); + s.store_field("city", city_); + s.store_field("street_line1", street_line1_); + s.store_field("street_line2", street_line2_); + s.store_field("postal_code", postal_code_); + s.store_class_end(); + } +} + +animatedChatPhoto::animatedChatPhoto() + : length_() + , file_() + , main_frame_timestamp_() +{} + +animatedChatPhoto::animatedChatPhoto(int32 length_, object_ptr<file> &&file_, double main_frame_timestamp_) + : length_(length_) + , file_(std::move(file_)) + , main_frame_timestamp_(main_frame_timestamp_) +{} + +const std::int32_t animatedChatPhoto::ID; + +void animatedChatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "animatedChatPhoto"); + s.store_field("length", length_); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_field("main_frame_timestamp", main_frame_timestamp_); + s.store_class_end(); + } +} + +animatedEmoji::animatedEmoji() + : sticker_() + , sticker_width_() + , sticker_height_() + , fitzpatrick_type_() + , sound_() +{} + +animatedEmoji::animatedEmoji(object_ptr<sticker> &&sticker_, int32 sticker_width_, int32 sticker_height_, int32 fitzpatrick_type_, object_ptr<file> &&sound_) + : sticker_(std::move(sticker_)) + , sticker_width_(sticker_width_) + , sticker_height_(sticker_height_) + , fitzpatrick_type_(fitzpatrick_type_) + , sound_(std::move(sound_)) +{} + +const std::int32_t animatedEmoji::ID; + +void animatedEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "animatedEmoji"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_field("sticker_width", sticker_width_); + s.store_field("sticker_height", sticker_height_); + s.store_field("fitzpatrick_type", fitzpatrick_type_); + s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get())); + s.store_class_end(); + } +} + +animation::animation() + : duration_() + , width_() + , height_() + , file_name_() + , mime_type_() + , has_stickers_() + , minithumbnail_() + , thumbnail_() + , animation_() +{} + +animation::animation(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&animation_) + : duration_(duration_) + , width_(width_) + , height_(height_) + , file_name_(file_name_) + , mime_type_(mime_type_) + , has_stickers_(has_stickers_) + , minithumbnail_(std::move(minithumbnail_)) + , thumbnail_(std::move(thumbnail_)) + , animation_(std::move(animation_)) +{} + +const std::int32_t animation::ID; + +void animation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "animation"); + s.store_field("duration", duration_); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_field("file_name", file_name_); + s.store_field("mime_type", mime_type_); + s.store_field("has_stickers", has_stickers_); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_class_end(); + } +} + +animations::animations() + : animations_() +{} + +animations::animations(array<object_ptr<animation>> &&animations_) + : animations_(std::move(animations_)) +{} + +const std::int32_t animations::ID; + +void animations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "animations"); + { s.store_vector_begin("animations", animations_.size()); for (const auto &_value : animations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +attachmentMenuBot::attachmentMenuBot() + : bot_user_id_() + , supports_self_chat_() + , supports_user_chats_() + , supports_bot_chats_() + , supports_group_chats_() + , supports_channel_chats_() + , supports_settings_() + , name_() + , name_color_() + , default_icon_() + , ios_static_icon_() + , ios_animated_icon_() + , android_icon_() + , macos_icon_() + , icon_color_() + , web_app_placeholder_() +{} + +attachmentMenuBot::attachmentMenuBot(int53 bot_user_id_, bool supports_self_chat_, bool supports_user_chats_, bool supports_bot_chats_, bool supports_group_chats_, bool supports_channel_chats_, bool supports_settings_, string const &name_, object_ptr<attachmentMenuBotColor> &&name_color_, object_ptr<file> &&default_icon_, object_ptr<file> &&ios_static_icon_, object_ptr<file> &&ios_animated_icon_, object_ptr<file> &&android_icon_, object_ptr<file> &&macos_icon_, object_ptr<attachmentMenuBotColor> &&icon_color_, object_ptr<file> &&web_app_placeholder_) + : bot_user_id_(bot_user_id_) + , supports_self_chat_(supports_self_chat_) + , supports_user_chats_(supports_user_chats_) + , supports_bot_chats_(supports_bot_chats_) + , supports_group_chats_(supports_group_chats_) + , supports_channel_chats_(supports_channel_chats_) + , supports_settings_(supports_settings_) + , name_(name_) + , name_color_(std::move(name_color_)) + , default_icon_(std::move(default_icon_)) + , ios_static_icon_(std::move(ios_static_icon_)) + , ios_animated_icon_(std::move(ios_animated_icon_)) + , android_icon_(std::move(android_icon_)) + , macos_icon_(std::move(macos_icon_)) + , icon_color_(std::move(icon_color_)) + , web_app_placeholder_(std::move(web_app_placeholder_)) +{} + +const std::int32_t attachmentMenuBot::ID; + +void attachmentMenuBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachmentMenuBot"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("supports_self_chat", supports_self_chat_); + s.store_field("supports_user_chats", supports_user_chats_); + s.store_field("supports_bot_chats", supports_bot_chats_); + s.store_field("supports_group_chats", supports_group_chats_); + s.store_field("supports_channel_chats", supports_channel_chats_); + s.store_field("supports_settings", supports_settings_); + s.store_field("name", name_); + s.store_object_field("name_color", static_cast<const BaseObject *>(name_color_.get())); + s.store_object_field("default_icon", static_cast<const BaseObject *>(default_icon_.get())); + s.store_object_field("ios_static_icon", static_cast<const BaseObject *>(ios_static_icon_.get())); + s.store_object_field("ios_animated_icon", static_cast<const BaseObject *>(ios_animated_icon_.get())); + s.store_object_field("android_icon", static_cast<const BaseObject *>(android_icon_.get())); + s.store_object_field("macos_icon", static_cast<const BaseObject *>(macos_icon_.get())); + s.store_object_field("icon_color", static_cast<const BaseObject *>(icon_color_.get())); + s.store_object_field("web_app_placeholder", static_cast<const BaseObject *>(web_app_placeholder_.get())); + s.store_class_end(); + } +} + +attachmentMenuBotColor::attachmentMenuBotColor() + : light_color_() + , dark_color_() +{} + +attachmentMenuBotColor::attachmentMenuBotColor(int32 light_color_, int32 dark_color_) + : light_color_(light_color_) + , dark_color_(dark_color_) +{} + +const std::int32_t attachmentMenuBotColor::ID; + +void attachmentMenuBotColor::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachmentMenuBotColor"); + s.store_field("light_color", light_color_); + s.store_field("dark_color", dark_color_); + s.store_class_end(); + } +} + +audio::audio() + : duration_() + , title_() + , performer_() + , file_name_() + , mime_type_() + , album_cover_minithumbnail_() + , album_cover_thumbnail_() + , external_album_covers_() + , audio_() +{} + +audio::audio(int32 duration_, string const &title_, string const &performer_, string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&album_cover_minithumbnail_, object_ptr<thumbnail> &&album_cover_thumbnail_, array<object_ptr<thumbnail>> &&external_album_covers_, object_ptr<file> &&audio_) + : duration_(duration_) + , title_(title_) + , performer_(performer_) + , file_name_(file_name_) + , mime_type_(mime_type_) + , album_cover_minithumbnail_(std::move(album_cover_minithumbnail_)) + , album_cover_thumbnail_(std::move(album_cover_thumbnail_)) + , external_album_covers_(std::move(external_album_covers_)) + , audio_(std::move(audio_)) +{} + +const std::int32_t audio::ID; + +void audio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "audio"); + s.store_field("duration", duration_); + s.store_field("title", title_); + s.store_field("performer", performer_); + s.store_field("file_name", file_name_); + s.store_field("mime_type", mime_type_); + s.store_object_field("album_cover_minithumbnail", static_cast<const BaseObject *>(album_cover_minithumbnail_.get())); + s.store_object_field("album_cover_thumbnail", static_cast<const BaseObject *>(album_cover_thumbnail_.get())); + { s.store_vector_begin("external_album_covers", external_album_covers_.size()); for (const auto &_value : external_album_covers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get())); + s.store_class_end(); + } +} + +authenticationCodeInfo::authenticationCodeInfo() + : phone_number_() + , type_() + , next_type_() + , timeout_() +{} + +authenticationCodeInfo::authenticationCodeInfo(string const &phone_number_, object_ptr<AuthenticationCodeType> &&type_, object_ptr<AuthenticationCodeType> &&next_type_, int32 timeout_) + : phone_number_(phone_number_) + , type_(std::move(type_)) + , next_type_(std::move(next_type_)) + , timeout_(timeout_) +{} + +const std::int32_t authenticationCodeInfo::ID; + +void authenticationCodeInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authenticationCodeInfo"); + s.store_field("phone_number", phone_number_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_object_field("next_type", static_cast<const BaseObject *>(next_type_.get())); + s.store_field("timeout", timeout_); + s.store_class_end(); + } +} + +authenticationCodeTypeTelegramMessage::authenticationCodeTypeTelegramMessage() + : length_() +{} + +authenticationCodeTypeTelegramMessage::authenticationCodeTypeTelegramMessage(int32 length_) + : length_(length_) +{} + +const std::int32_t authenticationCodeTypeTelegramMessage::ID; + +void authenticationCodeTypeTelegramMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authenticationCodeTypeTelegramMessage"); + s.store_field("length", length_); + s.store_class_end(); + } +} + +authenticationCodeTypeSms::authenticationCodeTypeSms() + : length_() +{} + +authenticationCodeTypeSms::authenticationCodeTypeSms(int32 length_) + : length_(length_) +{} + +const std::int32_t authenticationCodeTypeSms::ID; + +void authenticationCodeTypeSms::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authenticationCodeTypeSms"); + s.store_field("length", length_); + s.store_class_end(); + } +} + +authenticationCodeTypeCall::authenticationCodeTypeCall() + : length_() +{} + +authenticationCodeTypeCall::authenticationCodeTypeCall(int32 length_) + : length_(length_) +{} + +const std::int32_t authenticationCodeTypeCall::ID; + +void authenticationCodeTypeCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authenticationCodeTypeCall"); + s.store_field("length", length_); + s.store_class_end(); + } +} + +authenticationCodeTypeFlashCall::authenticationCodeTypeFlashCall() + : pattern_() +{} + +authenticationCodeTypeFlashCall::authenticationCodeTypeFlashCall(string const &pattern_) + : pattern_(pattern_) +{} + +const std::int32_t authenticationCodeTypeFlashCall::ID; + +void authenticationCodeTypeFlashCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authenticationCodeTypeFlashCall"); + s.store_field("pattern", pattern_); + s.store_class_end(); + } +} + +authenticationCodeTypeMissedCall::authenticationCodeTypeMissedCall() + : phone_number_prefix_() + , length_() +{} + +authenticationCodeTypeMissedCall::authenticationCodeTypeMissedCall(string const &phone_number_prefix_, int32 length_) + : phone_number_prefix_(phone_number_prefix_) + , length_(length_) +{} + +const std::int32_t authenticationCodeTypeMissedCall::ID; + +void authenticationCodeTypeMissedCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authenticationCodeTypeMissedCall"); + s.store_field("phone_number_prefix", phone_number_prefix_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +authorizationStateWaitTdlibParameters::authorizationStateWaitTdlibParameters() { +} + +const std::int32_t authorizationStateWaitTdlibParameters::ID; + +void authorizationStateWaitTdlibParameters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitTdlibParameters"); + s.store_class_end(); + } +} + +authorizationStateWaitPhoneNumber::authorizationStateWaitPhoneNumber() { +} + +const std::int32_t authorizationStateWaitPhoneNumber::ID; + +void authorizationStateWaitPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitPhoneNumber"); + s.store_class_end(); + } +} + +authorizationStateWaitEmailAddress::authorizationStateWaitEmailAddress() + : allow_apple_id_() + , allow_google_id_() +{} + +authorizationStateWaitEmailAddress::authorizationStateWaitEmailAddress(bool allow_apple_id_, bool allow_google_id_) + : allow_apple_id_(allow_apple_id_) + , allow_google_id_(allow_google_id_) +{} + +const std::int32_t authorizationStateWaitEmailAddress::ID; + +void authorizationStateWaitEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitEmailAddress"); + s.store_field("allow_apple_id", allow_apple_id_); + s.store_field("allow_google_id", allow_google_id_); + s.store_class_end(); + } +} + +authorizationStateWaitEmailCode::authorizationStateWaitEmailCode() + : allow_apple_id_() + , allow_google_id_() + , code_info_() + , next_phone_number_authorization_date_() +{} + +authorizationStateWaitEmailCode::authorizationStateWaitEmailCode(bool allow_apple_id_, bool allow_google_id_, object_ptr<emailAddressAuthenticationCodeInfo> &&code_info_, int32 next_phone_number_authorization_date_) + : allow_apple_id_(allow_apple_id_) + , allow_google_id_(allow_google_id_) + , code_info_(std::move(code_info_)) + , next_phone_number_authorization_date_(next_phone_number_authorization_date_) +{} + +const std::int32_t authorizationStateWaitEmailCode::ID; + +void authorizationStateWaitEmailCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitEmailCode"); + s.store_field("allow_apple_id", allow_apple_id_); + s.store_field("allow_google_id", allow_google_id_); + s.store_object_field("code_info", static_cast<const BaseObject *>(code_info_.get())); + s.store_field("next_phone_number_authorization_date", next_phone_number_authorization_date_); + s.store_class_end(); + } +} + +authorizationStateWaitCode::authorizationStateWaitCode() + : code_info_() +{} + +authorizationStateWaitCode::authorizationStateWaitCode(object_ptr<authenticationCodeInfo> &&code_info_) + : code_info_(std::move(code_info_)) +{} + +const std::int32_t authorizationStateWaitCode::ID; + +void authorizationStateWaitCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitCode"); + s.store_object_field("code_info", static_cast<const BaseObject *>(code_info_.get())); + s.store_class_end(); + } +} + +authorizationStateWaitOtherDeviceConfirmation::authorizationStateWaitOtherDeviceConfirmation() + : link_() +{} + +authorizationStateWaitOtherDeviceConfirmation::authorizationStateWaitOtherDeviceConfirmation(string const &link_) + : link_(link_) +{} + +const std::int32_t authorizationStateWaitOtherDeviceConfirmation::ID; + +void authorizationStateWaitOtherDeviceConfirmation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitOtherDeviceConfirmation"); + s.store_field("link", link_); + s.store_class_end(); + } +} + +authorizationStateWaitRegistration::authorizationStateWaitRegistration() + : terms_of_service_() +{} + +authorizationStateWaitRegistration::authorizationStateWaitRegistration(object_ptr<termsOfService> &&terms_of_service_) + : terms_of_service_(std::move(terms_of_service_)) +{} + +const std::int32_t authorizationStateWaitRegistration::ID; + +void authorizationStateWaitRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitRegistration"); + s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get())); + s.store_class_end(); + } +} + +authorizationStateWaitPassword::authorizationStateWaitPassword() + : password_hint_() + , has_recovery_email_address_() + , recovery_email_address_pattern_() +{} + +authorizationStateWaitPassword::authorizationStateWaitPassword(string const &password_hint_, bool has_recovery_email_address_, string const &recovery_email_address_pattern_) + : password_hint_(password_hint_) + , has_recovery_email_address_(has_recovery_email_address_) + , recovery_email_address_pattern_(recovery_email_address_pattern_) +{} + +const std::int32_t authorizationStateWaitPassword::ID; + +void authorizationStateWaitPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateWaitPassword"); + s.store_field("password_hint", password_hint_); + s.store_field("has_recovery_email_address", has_recovery_email_address_); + s.store_field("recovery_email_address_pattern", recovery_email_address_pattern_); + s.store_class_end(); + } +} + +authorizationStateReady::authorizationStateReady() { +} + +const std::int32_t authorizationStateReady::ID; + +void authorizationStateReady::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateReady"); + s.store_class_end(); + } +} + +authorizationStateLoggingOut::authorizationStateLoggingOut() { +} + +const std::int32_t authorizationStateLoggingOut::ID; + +void authorizationStateLoggingOut::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateLoggingOut"); + s.store_class_end(); + } +} + +authorizationStateClosing::authorizationStateClosing() { +} + +const std::int32_t authorizationStateClosing::ID; + +void authorizationStateClosing::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateClosing"); + s.store_class_end(); + } +} + +authorizationStateClosed::authorizationStateClosed() { +} + +const std::int32_t authorizationStateClosed::ID; + +void authorizationStateClosed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorizationStateClosed"); + s.store_class_end(); + } +} + +autoDownloadSettings::autoDownloadSettings() + : is_auto_download_enabled_() + , max_photo_file_size_() + , max_video_file_size_() + , max_other_file_size_() + , video_upload_bitrate_() + , preload_large_videos_() + , preload_next_audio_() + , use_less_data_for_calls_() +{} + +autoDownloadSettings::autoDownloadSettings(bool is_auto_download_enabled_, int32 max_photo_file_size_, int53 max_video_file_size_, int53 max_other_file_size_, int32 video_upload_bitrate_, bool preload_large_videos_, bool preload_next_audio_, bool use_less_data_for_calls_) + : is_auto_download_enabled_(is_auto_download_enabled_) + , max_photo_file_size_(max_photo_file_size_) + , max_video_file_size_(max_video_file_size_) + , max_other_file_size_(max_other_file_size_) + , video_upload_bitrate_(video_upload_bitrate_) + , preload_large_videos_(preload_large_videos_) + , preload_next_audio_(preload_next_audio_) + , use_less_data_for_calls_(use_less_data_for_calls_) +{} + +const std::int32_t autoDownloadSettings::ID; + +void autoDownloadSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "autoDownloadSettings"); + s.store_field("is_auto_download_enabled", is_auto_download_enabled_); + s.store_field("max_photo_file_size", max_photo_file_size_); + s.store_field("max_video_file_size", max_video_file_size_); + s.store_field("max_other_file_size", max_other_file_size_); + s.store_field("video_upload_bitrate", video_upload_bitrate_); + s.store_field("preload_large_videos", preload_large_videos_); + s.store_field("preload_next_audio", preload_next_audio_); + s.store_field("use_less_data_for_calls", use_less_data_for_calls_); + s.store_class_end(); + } +} + +autoDownloadSettingsPresets::autoDownloadSettingsPresets() + : low_() + , medium_() + , high_() +{} + +autoDownloadSettingsPresets::autoDownloadSettingsPresets(object_ptr<autoDownloadSettings> &&low_, object_ptr<autoDownloadSettings> &&medium_, object_ptr<autoDownloadSettings> &&high_) + : low_(std::move(low_)) + , medium_(std::move(medium_)) + , high_(std::move(high_)) +{} + +const std::int32_t autoDownloadSettingsPresets::ID; + +void autoDownloadSettingsPresets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "autoDownloadSettingsPresets"); + s.store_object_field("low", static_cast<const BaseObject *>(low_.get())); + s.store_object_field("medium", static_cast<const BaseObject *>(medium_.get())); + s.store_object_field("high", static_cast<const BaseObject *>(high_.get())); + s.store_class_end(); + } +} + +availableReaction::availableReaction() + : type_() + , needs_premium_() +{} + +availableReaction::availableReaction(object_ptr<ReactionType> &&type_, bool needs_premium_) + : type_(std::move(type_)) + , needs_premium_(needs_premium_) +{} + +const std::int32_t availableReaction::ID; + +void availableReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "availableReaction"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("needs_premium", needs_premium_); + s.store_class_end(); + } +} + +availableReactions::availableReactions() + : top_reactions_() + , recent_reactions_() + , popular_reactions_() + , allow_custom_emoji_() +{} + +availableReactions::availableReactions(array<object_ptr<availableReaction>> &&top_reactions_, array<object_ptr<availableReaction>> &&recent_reactions_, array<object_ptr<availableReaction>> &&popular_reactions_, bool allow_custom_emoji_) + : top_reactions_(std::move(top_reactions_)) + , recent_reactions_(std::move(recent_reactions_)) + , popular_reactions_(std::move(popular_reactions_)) + , allow_custom_emoji_(allow_custom_emoji_) +{} + +const std::int32_t availableReactions::ID; + +void availableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "availableReactions"); + { s.store_vector_begin("top_reactions", top_reactions_.size()); for (const auto &_value : top_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("recent_reactions", recent_reactions_.size()); for (const auto &_value : recent_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("popular_reactions", popular_reactions_.size()); for (const auto &_value : popular_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("allow_custom_emoji", allow_custom_emoji_); + s.store_class_end(); + } +} + +background::background() + : id_() + , is_default_() + , is_dark_() + , name_() + , document_() + , type_() +{} + +background::background(int64 id_, bool is_default_, bool is_dark_, string const &name_, object_ptr<document> &&document_, object_ptr<BackgroundType> &&type_) + : id_(id_) + , is_default_(is_default_) + , is_dark_(is_dark_) + , name_(name_) + , document_(std::move(document_)) + , type_(std::move(type_)) +{} + +const std::int32_t background::ID; + +void background::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "background"); + s.store_field("id", id_); + s.store_field("is_default", is_default_); + s.store_field("is_dark", is_dark_); + s.store_field("name", name_); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +backgroundFillSolid::backgroundFillSolid() + : color_() +{} + +backgroundFillSolid::backgroundFillSolid(int32 color_) + : color_(color_) +{} + +const std::int32_t backgroundFillSolid::ID; + +void backgroundFillSolid::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "backgroundFillSolid"); + s.store_field("color", color_); + s.store_class_end(); + } +} + +backgroundFillGradient::backgroundFillGradient() + : top_color_() + , bottom_color_() + , rotation_angle_() +{} + +backgroundFillGradient::backgroundFillGradient(int32 top_color_, int32 bottom_color_, int32 rotation_angle_) + : top_color_(top_color_) + , bottom_color_(bottom_color_) + , rotation_angle_(rotation_angle_) +{} + +const std::int32_t backgroundFillGradient::ID; + +void backgroundFillGradient::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "backgroundFillGradient"); + s.store_field("top_color", top_color_); + s.store_field("bottom_color", bottom_color_); + s.store_field("rotation_angle", rotation_angle_); + s.store_class_end(); + } +} + +backgroundFillFreeformGradient::backgroundFillFreeformGradient() + : colors_() +{} + +backgroundFillFreeformGradient::backgroundFillFreeformGradient(array<int32> &&colors_) + : colors_(std::move(colors_)) +{} + +const std::int32_t backgroundFillFreeformGradient::ID; + +void backgroundFillFreeformGradient::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "backgroundFillFreeformGradient"); + { s.store_vector_begin("colors", colors_.size()); for (const auto &_value : colors_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +backgroundTypeWallpaper::backgroundTypeWallpaper() + : is_blurred_() + , is_moving_() +{} + +backgroundTypeWallpaper::backgroundTypeWallpaper(bool is_blurred_, bool is_moving_) + : is_blurred_(is_blurred_) + , is_moving_(is_moving_) +{} + +const std::int32_t backgroundTypeWallpaper::ID; + +void backgroundTypeWallpaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "backgroundTypeWallpaper"); + s.store_field("is_blurred", is_blurred_); + s.store_field("is_moving", is_moving_); + s.store_class_end(); + } +} + +backgroundTypePattern::backgroundTypePattern() + : fill_() + , intensity_() + , is_inverted_() + , is_moving_() +{} + +backgroundTypePattern::backgroundTypePattern(object_ptr<BackgroundFill> &&fill_, int32 intensity_, bool is_inverted_, bool is_moving_) + : fill_(std::move(fill_)) + , intensity_(intensity_) + , is_inverted_(is_inverted_) + , is_moving_(is_moving_) +{} + +const std::int32_t backgroundTypePattern::ID; + +void backgroundTypePattern::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "backgroundTypePattern"); + s.store_object_field("fill", static_cast<const BaseObject *>(fill_.get())); + s.store_field("intensity", intensity_); + s.store_field("is_inverted", is_inverted_); + s.store_field("is_moving", is_moving_); + s.store_class_end(); + } +} + +backgroundTypeFill::backgroundTypeFill() + : fill_() +{} + +backgroundTypeFill::backgroundTypeFill(object_ptr<BackgroundFill> &&fill_) + : fill_(std::move(fill_)) +{} + +const std::int32_t backgroundTypeFill::ID; + +void backgroundTypeFill::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "backgroundTypeFill"); + s.store_object_field("fill", static_cast<const BaseObject *>(fill_.get())); + s.store_class_end(); + } +} + +backgrounds::backgrounds() + : backgrounds_() +{} + +backgrounds::backgrounds(array<object_ptr<background>> &&backgrounds_) + : backgrounds_(std::move(backgrounds_)) +{} + +const std::int32_t backgrounds::ID; + +void backgrounds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "backgrounds"); + { s.store_vector_begin("backgrounds", backgrounds_.size()); for (const auto &_value : backgrounds_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +bankCardActionOpenUrl::bankCardActionOpenUrl() + : text_() + , url_() +{} + +bankCardActionOpenUrl::bankCardActionOpenUrl(string const &text_, string const &url_) + : text_(text_) + , url_(url_) +{} + +const std::int32_t bankCardActionOpenUrl::ID; + +void bankCardActionOpenUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bankCardActionOpenUrl"); + s.store_field("text", text_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +bankCardInfo::bankCardInfo() + : title_() + , actions_() +{} + +bankCardInfo::bankCardInfo(string const &title_, array<object_ptr<bankCardActionOpenUrl>> &&actions_) + : title_(title_) + , actions_(std::move(actions_)) +{} + +const std::int32_t bankCardInfo::ID; + +void bankCardInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bankCardInfo"); + s.store_field("title", title_); + { s.store_vector_begin("actions", actions_.size()); for (const auto &_value : actions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +basicGroup::basicGroup() + : id_() + , member_count_() + , status_() + , is_active_() + , upgraded_to_supergroup_id_() +{} + +basicGroup::basicGroup(int53 id_, int32 member_count_, object_ptr<ChatMemberStatus> &&status_, bool is_active_, int53 upgraded_to_supergroup_id_) + : id_(id_) + , member_count_(member_count_) + , status_(std::move(status_)) + , is_active_(is_active_) + , upgraded_to_supergroup_id_(upgraded_to_supergroup_id_) +{} + +const std::int32_t basicGroup::ID; + +void basicGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "basicGroup"); + s.store_field("id", id_); + s.store_field("member_count", member_count_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_field("is_active", is_active_); + s.store_field("upgraded_to_supergroup_id", upgraded_to_supergroup_id_); + s.store_class_end(); + } +} + +basicGroupFullInfo::basicGroupFullInfo() + : photo_() + , description_() + , creator_user_id_() + , members_() + , invite_link_() + , bot_commands_() +{} + +basicGroupFullInfo::basicGroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int53 creator_user_id_, array<object_ptr<chatMember>> &&members_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_) + : photo_(std::move(photo_)) + , description_(description_) + , creator_user_id_(creator_user_id_) + , members_(std::move(members_)) + , invite_link_(std::move(invite_link_)) + , bot_commands_(std::move(bot_commands_)) +{} + +const std::int32_t basicGroupFullInfo::ID; + +void basicGroupFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "basicGroupFullInfo"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("description", description_); + s.store_field("creator_user_id", creator_user_id_); + { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + { s.store_vector_begin("bot_commands", bot_commands_.size()); for (const auto &_value : bot_commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +botCommand::botCommand() + : command_() + , description_() +{} + +botCommand::botCommand(string const &command_, string const &description_) + : command_(command_) + , description_(description_) +{} + +const std::int32_t botCommand::ID; + +void botCommand::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommand"); + s.store_field("command", command_); + s.store_field("description", description_); + s.store_class_end(); + } +} + +botCommandScopeDefault::botCommandScopeDefault() { +} + +const std::int32_t botCommandScopeDefault::ID; + +void botCommandScopeDefault::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeDefault"); + s.store_class_end(); + } +} + +botCommandScopeAllPrivateChats::botCommandScopeAllPrivateChats() { +} + +const std::int32_t botCommandScopeAllPrivateChats::ID; + +void botCommandScopeAllPrivateChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeAllPrivateChats"); + s.store_class_end(); + } +} + +botCommandScopeAllGroupChats::botCommandScopeAllGroupChats() { +} + +const std::int32_t botCommandScopeAllGroupChats::ID; + +void botCommandScopeAllGroupChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeAllGroupChats"); + s.store_class_end(); + } +} + +botCommandScopeAllChatAdministrators::botCommandScopeAllChatAdministrators() { +} + +const std::int32_t botCommandScopeAllChatAdministrators::ID; + +void botCommandScopeAllChatAdministrators::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeAllChatAdministrators"); + s.store_class_end(); + } +} + +botCommandScopeChat::botCommandScopeChat() + : chat_id_() +{} + +botCommandScopeChat::botCommandScopeChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t botCommandScopeChat::ID; + +void botCommandScopeChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +botCommandScopeChatAdministrators::botCommandScopeChatAdministrators() + : chat_id_() +{} + +botCommandScopeChatAdministrators::botCommandScopeChatAdministrators(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t botCommandScopeChatAdministrators::ID; + +void botCommandScopeChatAdministrators::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeChatAdministrators"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +botCommandScopeChatMember::botCommandScopeChatMember() + : chat_id_() + , user_id_() +{} + +botCommandScopeChatMember::botCommandScopeChatMember(int53 chat_id_, int53 user_id_) + : chat_id_(chat_id_) + , user_id_(user_id_) +{} + +const std::int32_t botCommandScopeChatMember::ID; + +void botCommandScopeChatMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeChatMember"); + s.store_field("chat_id", chat_id_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +botCommands::botCommands() + : bot_user_id_() + , commands_() +{} + +botCommands::botCommands(int53 bot_user_id_, array<object_ptr<botCommand>> &&commands_) + : bot_user_id_(bot_user_id_) + , commands_(std::move(commands_)) +{} + +const std::int32_t botCommands::ID; + +void botCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommands"); + s.store_field("bot_user_id", bot_user_id_); + { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +botInfo::botInfo() + : share_text_() + , description_() + , photo_() + , animation_() + , menu_button_() + , commands_() + , default_group_administrator_rights_() + , default_channel_administrator_rights_() +{} + +botInfo::botInfo(string const &share_text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_, object_ptr<botMenuButton> &&menu_button_, array<object_ptr<botCommand>> &&commands_, object_ptr<chatAdministratorRights> &&default_group_administrator_rights_, object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_) + : share_text_(share_text_) + , description_(description_) + , photo_(std::move(photo_)) + , animation_(std::move(animation_)) + , menu_button_(std::move(menu_button_)) + , commands_(std::move(commands_)) + , default_group_administrator_rights_(std::move(default_group_administrator_rights_)) + , default_channel_administrator_rights_(std::move(default_channel_administrator_rights_)) +{} + +const std::int32_t botInfo::ID; + +void botInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInfo"); + s.store_field("share_text", share_text_); + s.store_field("description", description_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_object_field("menu_button", static_cast<const BaseObject *>(menu_button_.get())); + { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("default_group_administrator_rights", static_cast<const BaseObject *>(default_group_administrator_rights_.get())); + s.store_object_field("default_channel_administrator_rights", static_cast<const BaseObject *>(default_channel_administrator_rights_.get())); + s.store_class_end(); + } +} + +botMenuButton::botMenuButton() + : text_() + , url_() +{} + +botMenuButton::botMenuButton(string const &text_, string const &url_) + : text_(text_) + , url_(url_) +{} + +const std::int32_t botMenuButton::ID; + +void botMenuButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botMenuButton"); + s.store_field("text", text_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +call::call() + : id_() + , user_id_() + , is_outgoing_() + , is_video_() + , state_() +{} + +call::call(int32 id_, int53 user_id_, bool is_outgoing_, bool is_video_, object_ptr<CallState> &&state_) + : id_(id_) + , user_id_(user_id_) + , is_outgoing_(is_outgoing_) + , is_video_(is_video_) + , state_(std::move(state_)) +{} + +const std::int32_t call::ID; + +void call::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "call"); + s.store_field("id", id_); + s.store_field("user_id", user_id_); + s.store_field("is_outgoing", is_outgoing_); + s.store_field("is_video", is_video_); + s.store_object_field("state", static_cast<const BaseObject *>(state_.get())); + s.store_class_end(); + } +} + +callDiscardReasonEmpty::callDiscardReasonEmpty() { +} + +const std::int32_t callDiscardReasonEmpty::ID; + +void callDiscardReasonEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callDiscardReasonEmpty"); + s.store_class_end(); + } +} + +callDiscardReasonMissed::callDiscardReasonMissed() { +} + +const std::int32_t callDiscardReasonMissed::ID; + +void callDiscardReasonMissed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callDiscardReasonMissed"); + s.store_class_end(); + } +} + +callDiscardReasonDeclined::callDiscardReasonDeclined() { +} + +const std::int32_t callDiscardReasonDeclined::ID; + +void callDiscardReasonDeclined::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callDiscardReasonDeclined"); + s.store_class_end(); + } +} + +callDiscardReasonDisconnected::callDiscardReasonDisconnected() { +} + +const std::int32_t callDiscardReasonDisconnected::ID; + +void callDiscardReasonDisconnected::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callDiscardReasonDisconnected"); + s.store_class_end(); + } +} + +callDiscardReasonHungUp::callDiscardReasonHungUp() { +} + +const std::int32_t callDiscardReasonHungUp::ID; + +void callDiscardReasonHungUp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callDiscardReasonHungUp"); + s.store_class_end(); + } +} + +callId::callId() + : id_() +{} + +callId::callId(int32 id_) + : id_(id_) +{} + +const std::int32_t callId::ID; + +void callId::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callId"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +callProblemEcho::callProblemEcho() { +} + +const std::int32_t callProblemEcho::ID; + +void callProblemEcho::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemEcho"); + s.store_class_end(); + } +} + +callProblemNoise::callProblemNoise() { +} + +const std::int32_t callProblemNoise::ID; + +void callProblemNoise::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemNoise"); + s.store_class_end(); + } +} + +callProblemInterruptions::callProblemInterruptions() { +} + +const std::int32_t callProblemInterruptions::ID; + +void callProblemInterruptions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemInterruptions"); + s.store_class_end(); + } +} + +callProblemDistortedSpeech::callProblemDistortedSpeech() { +} + +const std::int32_t callProblemDistortedSpeech::ID; + +void callProblemDistortedSpeech::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemDistortedSpeech"); + s.store_class_end(); + } +} + +callProblemSilentLocal::callProblemSilentLocal() { +} + +const std::int32_t callProblemSilentLocal::ID; + +void callProblemSilentLocal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemSilentLocal"); + s.store_class_end(); + } +} + +callProblemSilentRemote::callProblemSilentRemote() { +} + +const std::int32_t callProblemSilentRemote::ID; + +void callProblemSilentRemote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemSilentRemote"); + s.store_class_end(); + } +} + +callProblemDropped::callProblemDropped() { +} + +const std::int32_t callProblemDropped::ID; + +void callProblemDropped::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemDropped"); + s.store_class_end(); + } +} + +callProblemDistortedVideo::callProblemDistortedVideo() { +} + +const std::int32_t callProblemDistortedVideo::ID; + +void callProblemDistortedVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemDistortedVideo"); + s.store_class_end(); + } +} + +callProblemPixelatedVideo::callProblemPixelatedVideo() { +} + +const std::int32_t callProblemPixelatedVideo::ID; + +void callProblemPixelatedVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProblemPixelatedVideo"); + s.store_class_end(); + } +} + +callProtocol::callProtocol() + : udp_p2p_() + , udp_reflector_() + , min_layer_() + , max_layer_() + , library_versions_() +{} + +callProtocol::callProtocol(bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_) + : udp_p2p_(udp_p2p_) + , udp_reflector_(udp_reflector_) + , min_layer_(min_layer_) + , max_layer_(max_layer_) + , library_versions_(std::move(library_versions_)) +{} + +const std::int32_t callProtocol::ID; + +void callProtocol::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callProtocol"); + s.store_field("udp_p2p", udp_p2p_); + s.store_field("udp_reflector", udp_reflector_); + s.store_field("min_layer", min_layer_); + s.store_field("max_layer", max_layer_); + { s.store_vector_begin("library_versions", library_versions_.size()); for (const auto &_value : library_versions_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +callServer::callServer() + : id_() + , ip_address_() + , ipv6_address_() + , port_() + , type_() +{} + +callServer::callServer(int64 id_, string const &ip_address_, string const &ipv6_address_, int32 port_, object_ptr<CallServerType> &&type_) + : id_(id_) + , ip_address_(ip_address_) + , ipv6_address_(ipv6_address_) + , port_(port_) + , type_(std::move(type_)) +{} + +const std::int32_t callServer::ID; + +void callServer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callServer"); + s.store_field("id", id_); + s.store_field("ip_address", ip_address_); + s.store_field("ipv6_address", ipv6_address_); + s.store_field("port", port_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +callServerTypeTelegramReflector::callServerTypeTelegramReflector() + : peer_tag_() + , is_tcp_() +{} + +callServerTypeTelegramReflector::callServerTypeTelegramReflector(bytes const &peer_tag_, bool is_tcp_) + : peer_tag_(std::move(peer_tag_)) + , is_tcp_(is_tcp_) +{} + +const std::int32_t callServerTypeTelegramReflector::ID; + +void callServerTypeTelegramReflector::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callServerTypeTelegramReflector"); + s.store_bytes_field("peer_tag", peer_tag_); + s.store_field("is_tcp", is_tcp_); + s.store_class_end(); + } +} + +callServerTypeWebrtc::callServerTypeWebrtc() + : username_() + , password_() + , supports_turn_() + , supports_stun_() +{} + +callServerTypeWebrtc::callServerTypeWebrtc(string const &username_, string const &password_, bool supports_turn_, bool supports_stun_) + : username_(username_) + , password_(password_) + , supports_turn_(supports_turn_) + , supports_stun_(supports_stun_) +{} + +const std::int32_t callServerTypeWebrtc::ID; + +void callServerTypeWebrtc::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callServerTypeWebrtc"); + s.store_field("username", username_); + s.store_field("password", password_); + s.store_field("supports_turn", supports_turn_); + s.store_field("supports_stun", supports_stun_); + s.store_class_end(); + } +} + +callStatePending::callStatePending() + : is_created_() + , is_received_() +{} + +callStatePending::callStatePending(bool is_created_, bool is_received_) + : is_created_(is_created_) + , is_received_(is_received_) +{} + +const std::int32_t callStatePending::ID; + +void callStatePending::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callStatePending"); + s.store_field("is_created", is_created_); + s.store_field("is_received", is_received_); + s.store_class_end(); + } +} + +callStateExchangingKeys::callStateExchangingKeys() { +} + +const std::int32_t callStateExchangingKeys::ID; + +void callStateExchangingKeys::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callStateExchangingKeys"); + s.store_class_end(); + } +} + +callStateReady::callStateReady() + : protocol_() + , servers_() + , config_() + , encryption_key_() + , emojis_() + , allow_p2p_() +{} + +callStateReady::callStateReady(object_ptr<callProtocol> &&protocol_, array<object_ptr<callServer>> &&servers_, string const &config_, bytes const &encryption_key_, array<string> &&emojis_, bool allow_p2p_) + : protocol_(std::move(protocol_)) + , servers_(std::move(servers_)) + , config_(config_) + , encryption_key_(std::move(encryption_key_)) + , emojis_(std::move(emojis_)) + , allow_p2p_(allow_p2p_) +{} + +const std::int32_t callStateReady::ID; + +void callStateReady::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callStateReady"); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + { s.store_vector_begin("servers", servers_.size()); for (const auto &_value : servers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("config", config_); + s.store_bytes_field("encryption_key", encryption_key_); + { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("allow_p2p", allow_p2p_); + s.store_class_end(); + } +} + +callStateHangingUp::callStateHangingUp() { +} + +const std::int32_t callStateHangingUp::ID; + +void callStateHangingUp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callStateHangingUp"); + s.store_class_end(); + } +} + +callStateDiscarded::callStateDiscarded() + : reason_() + , need_rating_() + , need_debug_information_() + , need_log_() +{} + +callStateDiscarded::callStateDiscarded(object_ptr<CallDiscardReason> &&reason_, bool need_rating_, bool need_debug_information_, bool need_log_) + : reason_(std::move(reason_)) + , need_rating_(need_rating_) + , need_debug_information_(need_debug_information_) + , need_log_(need_log_) +{} + +const std::int32_t callStateDiscarded::ID; + +void callStateDiscarded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callStateDiscarded"); + s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); + s.store_field("need_rating", need_rating_); + s.store_field("need_debug_information", need_debug_information_); + s.store_field("need_log", need_log_); + s.store_class_end(); + } +} + +callStateError::callStateError() + : error_() +{} + +callStateError::callStateError(object_ptr<error> &&error_) + : error_(std::move(error_)) +{} + +const std::int32_t callStateError::ID; + +void callStateError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callStateError"); + s.store_object_field("error", static_cast<const BaseObject *>(error_.get())); + s.store_class_end(); + } +} + +callbackQueryAnswer::callbackQueryAnswer() + : text_() + , show_alert_() + , url_() +{} + +callbackQueryAnswer::callbackQueryAnswer(string const &text_, bool show_alert_, string const &url_) + : text_(text_) + , show_alert_(show_alert_) + , url_(url_) +{} + +const std::int32_t callbackQueryAnswer::ID; + +void callbackQueryAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callbackQueryAnswer"); + s.store_field("text", text_); + s.store_field("show_alert", show_alert_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +callbackQueryPayloadData::callbackQueryPayloadData() + : data_() +{} + +callbackQueryPayloadData::callbackQueryPayloadData(bytes const &data_) + : data_(std::move(data_)) +{} + +const std::int32_t callbackQueryPayloadData::ID; + +void callbackQueryPayloadData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callbackQueryPayloadData"); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +callbackQueryPayloadDataWithPassword::callbackQueryPayloadDataWithPassword() + : password_() + , data_() +{} + +callbackQueryPayloadDataWithPassword::callbackQueryPayloadDataWithPassword(string const &password_, bytes const &data_) + : password_(password_) + , data_(std::move(data_)) +{} + +const std::int32_t callbackQueryPayloadDataWithPassword::ID; + +void callbackQueryPayloadDataWithPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callbackQueryPayloadDataWithPassword"); + s.store_field("password", password_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +callbackQueryPayloadGame::callbackQueryPayloadGame() + : game_short_name_() +{} + +callbackQueryPayloadGame::callbackQueryPayloadGame(string const &game_short_name_) + : game_short_name_(game_short_name_) +{} + +const std::int32_t callbackQueryPayloadGame::ID; + +void callbackQueryPayloadGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "callbackQueryPayloadGame"); + s.store_field("game_short_name", game_short_name_); + s.store_class_end(); + } +} + +canTransferOwnershipResultOk::canTransferOwnershipResultOk() { +} + +const std::int32_t canTransferOwnershipResultOk::ID; + +void canTransferOwnershipResultOk::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "canTransferOwnershipResultOk"); + s.store_class_end(); + } +} + +canTransferOwnershipResultPasswordNeeded::canTransferOwnershipResultPasswordNeeded() { +} + +const std::int32_t canTransferOwnershipResultPasswordNeeded::ID; + +void canTransferOwnershipResultPasswordNeeded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "canTransferOwnershipResultPasswordNeeded"); + s.store_class_end(); + } +} + +canTransferOwnershipResultPasswordTooFresh::canTransferOwnershipResultPasswordTooFresh() + : retry_after_() +{} + +canTransferOwnershipResultPasswordTooFresh::canTransferOwnershipResultPasswordTooFresh(int32 retry_after_) + : retry_after_(retry_after_) +{} + +const std::int32_t canTransferOwnershipResultPasswordTooFresh::ID; + +void canTransferOwnershipResultPasswordTooFresh::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "canTransferOwnershipResultPasswordTooFresh"); + s.store_field("retry_after", retry_after_); + s.store_class_end(); + } +} + +canTransferOwnershipResultSessionTooFresh::canTransferOwnershipResultSessionTooFresh() + : retry_after_() +{} + +canTransferOwnershipResultSessionTooFresh::canTransferOwnershipResultSessionTooFresh(int32 retry_after_) + : retry_after_(retry_after_) +{} + +const std::int32_t canTransferOwnershipResultSessionTooFresh::ID; + +void canTransferOwnershipResultSessionTooFresh::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "canTransferOwnershipResultSessionTooFresh"); + s.store_field("retry_after", retry_after_); + s.store_class_end(); + } +} + +chat::chat() + : id_() + , type_() + , title_() + , photo_() + , permissions_() + , last_message_() + , positions_() + , message_sender_id_() + , has_protected_content_() + , is_marked_as_unread_() + , is_blocked_() + , has_scheduled_messages_() + , can_be_deleted_only_for_self_() + , can_be_deleted_for_all_users_() + , can_be_reported_() + , default_disable_notification_() + , unread_count_() + , last_read_inbox_message_id_() + , last_read_outbox_message_id_() + , unread_mention_count_() + , unread_reaction_count_() + , notification_settings_() + , available_reactions_() + , message_ttl_() + , theme_name_() + , action_bar_() + , video_chat_() + , pending_join_requests_() + , reply_markup_message_id_() + , draft_message_() + , client_data_() +{} + +chat::chat(int53 id_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, object_ptr<chatPermissions> &&permissions_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_, object_ptr<MessageSender> &&message_sender_id_, bool has_protected_content_, bool is_marked_as_unread_, bool is_blocked_, bool has_scheduled_messages_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_be_reported_, bool default_disable_notification_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &¬ification_settings_, object_ptr<ChatAvailableReactions> &&available_reactions_, int32 message_ttl_, string const &theme_name_, object_ptr<ChatActionBar> &&action_bar_, object_ptr<videoChat> &&video_chat_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_, int53 reply_markup_message_id_, object_ptr<draftMessage> &&draft_message_, string const &client_data_) + : id_(id_) + , type_(std::move(type_)) + , title_(title_) + , photo_(std::move(photo_)) + , permissions_(std::move(permissions_)) + , last_message_(std::move(last_message_)) + , positions_(std::move(positions_)) + , message_sender_id_(std::move(message_sender_id_)) + , has_protected_content_(has_protected_content_) + , is_marked_as_unread_(is_marked_as_unread_) + , is_blocked_(is_blocked_) + , has_scheduled_messages_(has_scheduled_messages_) + , can_be_deleted_only_for_self_(can_be_deleted_only_for_self_) + , can_be_deleted_for_all_users_(can_be_deleted_for_all_users_) + , can_be_reported_(can_be_reported_) + , default_disable_notification_(default_disable_notification_) + , unread_count_(unread_count_) + , last_read_inbox_message_id_(last_read_inbox_message_id_) + , last_read_outbox_message_id_(last_read_outbox_message_id_) + , unread_mention_count_(unread_mention_count_) + , unread_reaction_count_(unread_reaction_count_) + , notification_settings_(std::move(notification_settings_)) + , available_reactions_(std::move(available_reactions_)) + , message_ttl_(message_ttl_) + , theme_name_(theme_name_) + , action_bar_(std::move(action_bar_)) + , video_chat_(std::move(video_chat_)) + , pending_join_requests_(std::move(pending_join_requests_)) + , reply_markup_message_id_(reply_markup_message_id_) + , draft_message_(std::move(draft_message_)) + , client_data_(client_data_) +{} + +const std::int32_t chat::ID; + +void chat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chat"); + s.store_field("id", id_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("title", title_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get())); + s.store_object_field("last_message", static_cast<const BaseObject *>(last_message_.get())); + { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("message_sender_id", static_cast<const BaseObject *>(message_sender_id_.get())); + s.store_field("has_protected_content", has_protected_content_); + s.store_field("is_marked_as_unread", is_marked_as_unread_); + s.store_field("is_blocked", is_blocked_); + s.store_field("has_scheduled_messages", has_scheduled_messages_); + s.store_field("can_be_deleted_only_for_self", can_be_deleted_only_for_self_); + s.store_field("can_be_deleted_for_all_users", can_be_deleted_for_all_users_); + s.store_field("can_be_reported", can_be_reported_); + s.store_field("default_disable_notification", default_disable_notification_); + s.store_field("unread_count", unread_count_); + s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_); + s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_); + s.store_field("unread_mention_count", unread_mention_count_); + s.store_field("unread_reaction_count", unread_reaction_count_); + s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get())); + s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); + s.store_field("message_ttl", message_ttl_); + s.store_field("theme_name", theme_name_); + s.store_object_field("action_bar", static_cast<const BaseObject *>(action_bar_.get())); + s.store_object_field("video_chat", static_cast<const BaseObject *>(video_chat_.get())); + s.store_object_field("pending_join_requests", static_cast<const BaseObject *>(pending_join_requests_.get())); + s.store_field("reply_markup_message_id", reply_markup_message_id_); + s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get())); + s.store_field("client_data", client_data_); + s.store_class_end(); + } +} + +chatActionTyping::chatActionTyping() { +} + +const std::int32_t chatActionTyping::ID; + +void chatActionTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionTyping"); + s.store_class_end(); + } +} + +chatActionRecordingVideo::chatActionRecordingVideo() { +} + +const std::int32_t chatActionRecordingVideo::ID; + +void chatActionRecordingVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionRecordingVideo"); + s.store_class_end(); + } +} + +chatActionUploadingVideo::chatActionUploadingVideo() + : progress_() +{} + +chatActionUploadingVideo::chatActionUploadingVideo(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t chatActionUploadingVideo::ID; + +void chatActionUploadingVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionUploadingVideo"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +chatActionRecordingVoiceNote::chatActionRecordingVoiceNote() { +} + +const std::int32_t chatActionRecordingVoiceNote::ID; + +void chatActionRecordingVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionRecordingVoiceNote"); + s.store_class_end(); + } +} + +chatActionUploadingVoiceNote::chatActionUploadingVoiceNote() + : progress_() +{} + +chatActionUploadingVoiceNote::chatActionUploadingVoiceNote(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t chatActionUploadingVoiceNote::ID; + +void chatActionUploadingVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionUploadingVoiceNote"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +chatActionUploadingPhoto::chatActionUploadingPhoto() + : progress_() +{} + +chatActionUploadingPhoto::chatActionUploadingPhoto(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t chatActionUploadingPhoto::ID; + +void chatActionUploadingPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionUploadingPhoto"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +chatActionUploadingDocument::chatActionUploadingDocument() + : progress_() +{} + +chatActionUploadingDocument::chatActionUploadingDocument(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t chatActionUploadingDocument::ID; + +void chatActionUploadingDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionUploadingDocument"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +chatActionChoosingSticker::chatActionChoosingSticker() { +} + +const std::int32_t chatActionChoosingSticker::ID; + +void chatActionChoosingSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionChoosingSticker"); + s.store_class_end(); + } +} + +chatActionChoosingLocation::chatActionChoosingLocation() { +} + +const std::int32_t chatActionChoosingLocation::ID; + +void chatActionChoosingLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionChoosingLocation"); + s.store_class_end(); + } +} + +chatActionChoosingContact::chatActionChoosingContact() { +} + +const std::int32_t chatActionChoosingContact::ID; + +void chatActionChoosingContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionChoosingContact"); + s.store_class_end(); + } +} + +chatActionStartPlayingGame::chatActionStartPlayingGame() { +} + +const std::int32_t chatActionStartPlayingGame::ID; + +void chatActionStartPlayingGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionStartPlayingGame"); + s.store_class_end(); + } +} + +chatActionRecordingVideoNote::chatActionRecordingVideoNote() { +} + +const std::int32_t chatActionRecordingVideoNote::ID; + +void chatActionRecordingVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionRecordingVideoNote"); + s.store_class_end(); + } +} + +chatActionUploadingVideoNote::chatActionUploadingVideoNote() + : progress_() +{} + +chatActionUploadingVideoNote::chatActionUploadingVideoNote(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t chatActionUploadingVideoNote::ID; + +void chatActionUploadingVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionUploadingVideoNote"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +chatActionWatchingAnimations::chatActionWatchingAnimations() + : emoji_() +{} + +chatActionWatchingAnimations::chatActionWatchingAnimations(string const &emoji_) + : emoji_(emoji_) +{} + +const std::int32_t chatActionWatchingAnimations::ID; + +void chatActionWatchingAnimations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionWatchingAnimations"); + s.store_field("emoji", emoji_); + s.store_class_end(); + } +} + +chatActionCancel::chatActionCancel() { +} + +const std::int32_t chatActionCancel::ID; + +void chatActionCancel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionCancel"); + s.store_class_end(); + } +} + +chatActionBarReportSpam::chatActionBarReportSpam() + : can_unarchive_() +{} + +chatActionBarReportSpam::chatActionBarReportSpam(bool can_unarchive_) + : can_unarchive_(can_unarchive_) +{} + +const std::int32_t chatActionBarReportSpam::ID; + +void chatActionBarReportSpam::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionBarReportSpam"); + s.store_field("can_unarchive", can_unarchive_); + s.store_class_end(); + } +} + +chatActionBarReportUnrelatedLocation::chatActionBarReportUnrelatedLocation() { +} + +const std::int32_t chatActionBarReportUnrelatedLocation::ID; + +void chatActionBarReportUnrelatedLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionBarReportUnrelatedLocation"); + s.store_class_end(); + } +} + +chatActionBarInviteMembers::chatActionBarInviteMembers() { +} + +const std::int32_t chatActionBarInviteMembers::ID; + +void chatActionBarInviteMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionBarInviteMembers"); + s.store_class_end(); + } +} + +chatActionBarReportAddBlock::chatActionBarReportAddBlock() + : can_unarchive_() + , distance_() +{} + +chatActionBarReportAddBlock::chatActionBarReportAddBlock(bool can_unarchive_, int32 distance_) + : can_unarchive_(can_unarchive_) + , distance_(distance_) +{} + +const std::int32_t chatActionBarReportAddBlock::ID; + +void chatActionBarReportAddBlock::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionBarReportAddBlock"); + s.store_field("can_unarchive", can_unarchive_); + s.store_field("distance", distance_); + s.store_class_end(); + } +} + +chatActionBarAddContact::chatActionBarAddContact() { +} + +const std::int32_t chatActionBarAddContact::ID; + +void chatActionBarAddContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionBarAddContact"); + s.store_class_end(); + } +} + +chatActionBarSharePhoneNumber::chatActionBarSharePhoneNumber() { +} + +const std::int32_t chatActionBarSharePhoneNumber::ID; + +void chatActionBarSharePhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionBarSharePhoneNumber"); + s.store_class_end(); + } +} + +chatActionBarJoinRequest::chatActionBarJoinRequest() + : title_() + , is_channel_() + , request_date_() +{} + +chatActionBarJoinRequest::chatActionBarJoinRequest(string const &title_, bool is_channel_, int32 request_date_) + : title_(title_) + , is_channel_(is_channel_) + , request_date_(request_date_) +{} + +const std::int32_t chatActionBarJoinRequest::ID; + +void chatActionBarJoinRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatActionBarJoinRequest"); + s.store_field("title", title_); + s.store_field("is_channel", is_channel_); + s.store_field("request_date", request_date_); + s.store_class_end(); + } +} + +chatAdministrator::chatAdministrator() + : user_id_() + , custom_title_() + , is_owner_() +{} + +chatAdministrator::chatAdministrator(int53 user_id_, string const &custom_title_, bool is_owner_) + : user_id_(user_id_) + , custom_title_(custom_title_) + , is_owner_(is_owner_) +{} + +const std::int32_t chatAdministrator::ID; + +void chatAdministrator::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatAdministrator"); + s.store_field("user_id", user_id_); + s.store_field("custom_title", custom_title_); + s.store_field("is_owner", is_owner_); + s.store_class_end(); + } +} + +chatAdministratorRights::chatAdministratorRights() + : can_manage_chat_() + , can_change_info_() + , can_post_messages_() + , can_edit_messages_() + , can_delete_messages_() + , can_invite_users_() + , can_restrict_members_() + , can_pin_messages_() + , can_manage_topics_() + , can_promote_members_() + , can_manage_video_chats_() + , is_anonymous_() +{} + +chatAdministratorRights::chatAdministratorRights(bool can_manage_chat_, bool can_change_info_, bool can_post_messages_, bool can_edit_messages_, bool can_delete_messages_, bool can_invite_users_, bool can_restrict_members_, bool can_pin_messages_, bool can_manage_topics_, bool can_promote_members_, bool can_manage_video_chats_, bool is_anonymous_) + : can_manage_chat_(can_manage_chat_) + , can_change_info_(can_change_info_) + , can_post_messages_(can_post_messages_) + , can_edit_messages_(can_edit_messages_) + , can_delete_messages_(can_delete_messages_) + , can_invite_users_(can_invite_users_) + , can_restrict_members_(can_restrict_members_) + , can_pin_messages_(can_pin_messages_) + , can_manage_topics_(can_manage_topics_) + , can_promote_members_(can_promote_members_) + , can_manage_video_chats_(can_manage_video_chats_) + , is_anonymous_(is_anonymous_) +{} + +const std::int32_t chatAdministratorRights::ID; + +void chatAdministratorRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatAdministratorRights"); + s.store_field("can_manage_chat", can_manage_chat_); + s.store_field("can_change_info", can_change_info_); + s.store_field("can_post_messages", can_post_messages_); + s.store_field("can_edit_messages", can_edit_messages_); + s.store_field("can_delete_messages", can_delete_messages_); + s.store_field("can_invite_users", can_invite_users_); + s.store_field("can_restrict_members", can_restrict_members_); + s.store_field("can_pin_messages", can_pin_messages_); + s.store_field("can_manage_topics", can_manage_topics_); + s.store_field("can_promote_members", can_promote_members_); + s.store_field("can_manage_video_chats", can_manage_video_chats_); + s.store_field("is_anonymous", is_anonymous_); + s.store_class_end(); + } +} + +chatAdministrators::chatAdministrators() + : administrators_() +{} + +chatAdministrators::chatAdministrators(array<object_ptr<chatAdministrator>> &&administrators_) + : administrators_(std::move(administrators_)) +{} + +const std::int32_t chatAdministrators::ID; + +void chatAdministrators::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatAdministrators"); + { s.store_vector_begin("administrators", administrators_.size()); for (const auto &_value : administrators_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatAvailableReactionsAll::chatAvailableReactionsAll() { +} + +const std::int32_t chatAvailableReactionsAll::ID; + +void chatAvailableReactionsAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatAvailableReactionsAll"); + s.store_class_end(); + } +} + +chatAvailableReactionsSome::chatAvailableReactionsSome() + : reactions_() +{} + +chatAvailableReactionsSome::chatAvailableReactionsSome(array<object_ptr<ReactionType>> &&reactions_) + : reactions_(std::move(reactions_)) +{} + +const std::int32_t chatAvailableReactionsSome::ID; + +void chatAvailableReactionsSome::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatAvailableReactionsSome"); + { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatEvent::chatEvent() + : id_() + , date_() + , member_id_() + , action_() +{} + +chatEvent::chatEvent(int64 id_, int32 date_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatEventAction> &&action_) + : id_(id_) + , date_(date_) + , member_id_(std::move(member_id_)) + , action_(std::move(action_)) +{} + +const std::int32_t chatEvent::ID; + +void chatEvent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEvent"); + s.store_field("id", id_); + s.store_field("date", date_); + s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get())); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +chatEventMessageEdited::chatEventMessageEdited() + : old_message_() + , new_message_() +{} + +chatEventMessageEdited::chatEventMessageEdited(object_ptr<message> &&old_message_, object_ptr<message> &&new_message_) + : old_message_(std::move(old_message_)) + , new_message_(std::move(new_message_)) +{} + +const std::int32_t chatEventMessageEdited::ID; + +void chatEventMessageEdited::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMessageEdited"); + s.store_object_field("old_message", static_cast<const BaseObject *>(old_message_.get())); + s.store_object_field("new_message", static_cast<const BaseObject *>(new_message_.get())); + s.store_class_end(); + } +} + +chatEventMessageDeleted::chatEventMessageDeleted() + : message_() +{} + +chatEventMessageDeleted::chatEventMessageDeleted(object_ptr<message> &&message_) + : message_(std::move(message_)) +{} + +const std::int32_t chatEventMessageDeleted::ID; + +void chatEventMessageDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMessageDeleted"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +chatEventMessagePinned::chatEventMessagePinned() + : message_() +{} + +chatEventMessagePinned::chatEventMessagePinned(object_ptr<message> &&message_) + : message_(std::move(message_)) +{} + +const std::int32_t chatEventMessagePinned::ID; + +void chatEventMessagePinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMessagePinned"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +chatEventMessageUnpinned::chatEventMessageUnpinned() + : message_() +{} + +chatEventMessageUnpinned::chatEventMessageUnpinned(object_ptr<message> &&message_) + : message_(std::move(message_)) +{} + +const std::int32_t chatEventMessageUnpinned::ID; + +void chatEventMessageUnpinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMessageUnpinned"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +chatEventPollStopped::chatEventPollStopped() + : message_() +{} + +chatEventPollStopped::chatEventPollStopped(object_ptr<message> &&message_) + : message_(std::move(message_)) +{} + +const std::int32_t chatEventPollStopped::ID; + +void chatEventPollStopped::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventPollStopped"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +chatEventMemberJoined::chatEventMemberJoined() { +} + +const std::int32_t chatEventMemberJoined::ID; + +void chatEventMemberJoined::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMemberJoined"); + s.store_class_end(); + } +} + +chatEventMemberJoinedByInviteLink::chatEventMemberJoinedByInviteLink() + : invite_link_() +{} + +chatEventMemberJoinedByInviteLink::chatEventMemberJoinedByInviteLink(object_ptr<chatInviteLink> &&invite_link_) + : invite_link_(std::move(invite_link_)) +{} + +const std::int32_t chatEventMemberJoinedByInviteLink::ID; + +void chatEventMemberJoinedByInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMemberJoinedByInviteLink"); + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + s.store_class_end(); + } +} + +chatEventMemberJoinedByRequest::chatEventMemberJoinedByRequest() + : approver_user_id_() + , invite_link_() +{} + +chatEventMemberJoinedByRequest::chatEventMemberJoinedByRequest(int53 approver_user_id_, object_ptr<chatInviteLink> &&invite_link_) + : approver_user_id_(approver_user_id_) + , invite_link_(std::move(invite_link_)) +{} + +const std::int32_t chatEventMemberJoinedByRequest::ID; + +void chatEventMemberJoinedByRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMemberJoinedByRequest"); + s.store_field("approver_user_id", approver_user_id_); + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + s.store_class_end(); + } +} + +chatEventMemberInvited::chatEventMemberInvited() + : user_id_() + , status_() +{} + +chatEventMemberInvited::chatEventMemberInvited(int53 user_id_, object_ptr<ChatMemberStatus> &&status_) + : user_id_(user_id_) + , status_(std::move(status_)) +{} + +const std::int32_t chatEventMemberInvited::ID; + +void chatEventMemberInvited::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMemberInvited"); + s.store_field("user_id", user_id_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_class_end(); + } +} + +chatEventMemberLeft::chatEventMemberLeft() { +} + +const std::int32_t chatEventMemberLeft::ID; + +void chatEventMemberLeft::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMemberLeft"); + s.store_class_end(); + } +} + +chatEventMemberPromoted::chatEventMemberPromoted() + : user_id_() + , old_status_() + , new_status_() +{} + +chatEventMemberPromoted::chatEventMemberPromoted(int53 user_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_) + : user_id_(user_id_) + , old_status_(std::move(old_status_)) + , new_status_(std::move(new_status_)) +{} + +const std::int32_t chatEventMemberPromoted::ID; + +void chatEventMemberPromoted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMemberPromoted"); + s.store_field("user_id", user_id_); + s.store_object_field("old_status", static_cast<const BaseObject *>(old_status_.get())); + s.store_object_field("new_status", static_cast<const BaseObject *>(new_status_.get())); + s.store_class_end(); + } +} + +chatEventMemberRestricted::chatEventMemberRestricted() + : member_id_() + , old_status_() + , new_status_() +{} + +chatEventMemberRestricted::chatEventMemberRestricted(object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_) + : member_id_(std::move(member_id_)) + , old_status_(std::move(old_status_)) + , new_status_(std::move(new_status_)) +{} + +const std::int32_t chatEventMemberRestricted::ID; + +void chatEventMemberRestricted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMemberRestricted"); + s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get())); + s.store_object_field("old_status", static_cast<const BaseObject *>(old_status_.get())); + s.store_object_field("new_status", static_cast<const BaseObject *>(new_status_.get())); + s.store_class_end(); + } +} + +chatEventAvailableReactionsChanged::chatEventAvailableReactionsChanged() + : old_available_reactions_() + , new_available_reactions_() +{} + +chatEventAvailableReactionsChanged::chatEventAvailableReactionsChanged(object_ptr<ChatAvailableReactions> &&old_available_reactions_, object_ptr<ChatAvailableReactions> &&new_available_reactions_) + : old_available_reactions_(std::move(old_available_reactions_)) + , new_available_reactions_(std::move(new_available_reactions_)) +{} + +const std::int32_t chatEventAvailableReactionsChanged::ID; + +void chatEventAvailableReactionsChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventAvailableReactionsChanged"); + s.store_object_field("old_available_reactions", static_cast<const BaseObject *>(old_available_reactions_.get())); + s.store_object_field("new_available_reactions", static_cast<const BaseObject *>(new_available_reactions_.get())); + s.store_class_end(); + } +} + +chatEventDescriptionChanged::chatEventDescriptionChanged() + : old_description_() + , new_description_() +{} + +chatEventDescriptionChanged::chatEventDescriptionChanged(string const &old_description_, string const &new_description_) + : old_description_(old_description_) + , new_description_(new_description_) +{} + +const std::int32_t chatEventDescriptionChanged::ID; + +void chatEventDescriptionChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventDescriptionChanged"); + s.store_field("old_description", old_description_); + s.store_field("new_description", new_description_); + s.store_class_end(); + } +} + +chatEventLinkedChatChanged::chatEventLinkedChatChanged() + : old_linked_chat_id_() + , new_linked_chat_id_() +{} + +chatEventLinkedChatChanged::chatEventLinkedChatChanged(int53 old_linked_chat_id_, int53 new_linked_chat_id_) + : old_linked_chat_id_(old_linked_chat_id_) + , new_linked_chat_id_(new_linked_chat_id_) +{} + +const std::int32_t chatEventLinkedChatChanged::ID; + +void chatEventLinkedChatChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventLinkedChatChanged"); + s.store_field("old_linked_chat_id", old_linked_chat_id_); + s.store_field("new_linked_chat_id", new_linked_chat_id_); + s.store_class_end(); + } +} + +chatEventLocationChanged::chatEventLocationChanged() + : old_location_() + , new_location_() +{} + +chatEventLocationChanged::chatEventLocationChanged(object_ptr<chatLocation> &&old_location_, object_ptr<chatLocation> &&new_location_) + : old_location_(std::move(old_location_)) + , new_location_(std::move(new_location_)) +{} + +const std::int32_t chatEventLocationChanged::ID; + +void chatEventLocationChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventLocationChanged"); + s.store_object_field("old_location", static_cast<const BaseObject *>(old_location_.get())); + s.store_object_field("new_location", static_cast<const BaseObject *>(new_location_.get())); + s.store_class_end(); + } +} + +chatEventMessageTtlChanged::chatEventMessageTtlChanged() + : old_message_ttl_() + , new_message_ttl_() +{} + +chatEventMessageTtlChanged::chatEventMessageTtlChanged(int32 old_message_ttl_, int32 new_message_ttl_) + : old_message_ttl_(old_message_ttl_) + , new_message_ttl_(new_message_ttl_) +{} + +const std::int32_t chatEventMessageTtlChanged::ID; + +void chatEventMessageTtlChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventMessageTtlChanged"); + s.store_field("old_message_ttl", old_message_ttl_); + s.store_field("new_message_ttl", new_message_ttl_); + s.store_class_end(); + } +} + +chatEventPermissionsChanged::chatEventPermissionsChanged() + : old_permissions_() + , new_permissions_() +{} + +chatEventPermissionsChanged::chatEventPermissionsChanged(object_ptr<chatPermissions> &&old_permissions_, object_ptr<chatPermissions> &&new_permissions_) + : old_permissions_(std::move(old_permissions_)) + , new_permissions_(std::move(new_permissions_)) +{} + +const std::int32_t chatEventPermissionsChanged::ID; + +void chatEventPermissionsChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventPermissionsChanged"); + s.store_object_field("old_permissions", static_cast<const BaseObject *>(old_permissions_.get())); + s.store_object_field("new_permissions", static_cast<const BaseObject *>(new_permissions_.get())); + s.store_class_end(); + } +} + +chatEventPhotoChanged::chatEventPhotoChanged() + : old_photo_() + , new_photo_() +{} + +chatEventPhotoChanged::chatEventPhotoChanged(object_ptr<chatPhoto> &&old_photo_, object_ptr<chatPhoto> &&new_photo_) + : old_photo_(std::move(old_photo_)) + , new_photo_(std::move(new_photo_)) +{} + +const std::int32_t chatEventPhotoChanged::ID; + +void chatEventPhotoChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventPhotoChanged"); + s.store_object_field("old_photo", static_cast<const BaseObject *>(old_photo_.get())); + s.store_object_field("new_photo", static_cast<const BaseObject *>(new_photo_.get())); + s.store_class_end(); + } +} + +chatEventSlowModeDelayChanged::chatEventSlowModeDelayChanged() + : old_slow_mode_delay_() + , new_slow_mode_delay_() +{} + +chatEventSlowModeDelayChanged::chatEventSlowModeDelayChanged(int32 old_slow_mode_delay_, int32 new_slow_mode_delay_) + : old_slow_mode_delay_(old_slow_mode_delay_) + , new_slow_mode_delay_(new_slow_mode_delay_) +{} + +const std::int32_t chatEventSlowModeDelayChanged::ID; + +void chatEventSlowModeDelayChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventSlowModeDelayChanged"); + s.store_field("old_slow_mode_delay", old_slow_mode_delay_); + s.store_field("new_slow_mode_delay", new_slow_mode_delay_); + s.store_class_end(); + } +} + +chatEventStickerSetChanged::chatEventStickerSetChanged() + : old_sticker_set_id_() + , new_sticker_set_id_() +{} + +chatEventStickerSetChanged::chatEventStickerSetChanged(int64 old_sticker_set_id_, int64 new_sticker_set_id_) + : old_sticker_set_id_(old_sticker_set_id_) + , new_sticker_set_id_(new_sticker_set_id_) +{} + +const std::int32_t chatEventStickerSetChanged::ID; + +void chatEventStickerSetChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventStickerSetChanged"); + s.store_field("old_sticker_set_id", old_sticker_set_id_); + s.store_field("new_sticker_set_id", new_sticker_set_id_); + s.store_class_end(); + } +} + +chatEventTitleChanged::chatEventTitleChanged() + : old_title_() + , new_title_() +{} + +chatEventTitleChanged::chatEventTitleChanged(string const &old_title_, string const &new_title_) + : old_title_(old_title_) + , new_title_(new_title_) +{} + +const std::int32_t chatEventTitleChanged::ID; + +void chatEventTitleChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventTitleChanged"); + s.store_field("old_title", old_title_); + s.store_field("new_title", new_title_); + s.store_class_end(); + } +} + +chatEventUsernameChanged::chatEventUsernameChanged() + : old_username_() + , new_username_() +{} + +chatEventUsernameChanged::chatEventUsernameChanged(string const &old_username_, string const &new_username_) + : old_username_(old_username_) + , new_username_(new_username_) +{} + +const std::int32_t chatEventUsernameChanged::ID; + +void chatEventUsernameChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventUsernameChanged"); + s.store_field("old_username", old_username_); + s.store_field("new_username", new_username_); + s.store_class_end(); + } +} + +chatEventActiveUsernamesChanged::chatEventActiveUsernamesChanged() + : old_usernames_() + , new_usernames_() +{} + +chatEventActiveUsernamesChanged::chatEventActiveUsernamesChanged(array<string> &&old_usernames_, array<string> &&new_usernames_) + : old_usernames_(std::move(old_usernames_)) + , new_usernames_(std::move(new_usernames_)) +{} + +const std::int32_t chatEventActiveUsernamesChanged::ID; + +void chatEventActiveUsernamesChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventActiveUsernamesChanged"); + { s.store_vector_begin("old_usernames", old_usernames_.size()); for (const auto &_value : old_usernames_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("new_usernames", new_usernames_.size()); for (const auto &_value : new_usernames_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatEventHasProtectedContentToggled::chatEventHasProtectedContentToggled() + : has_protected_content_() +{} + +chatEventHasProtectedContentToggled::chatEventHasProtectedContentToggled(bool has_protected_content_) + : has_protected_content_(has_protected_content_) +{} + +const std::int32_t chatEventHasProtectedContentToggled::ID; + +void chatEventHasProtectedContentToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventHasProtectedContentToggled"); + s.store_field("has_protected_content", has_protected_content_); + s.store_class_end(); + } +} + +chatEventInvitesToggled::chatEventInvitesToggled() + : can_invite_users_() +{} + +chatEventInvitesToggled::chatEventInvitesToggled(bool can_invite_users_) + : can_invite_users_(can_invite_users_) +{} + +const std::int32_t chatEventInvitesToggled::ID; + +void chatEventInvitesToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventInvitesToggled"); + s.store_field("can_invite_users", can_invite_users_); + s.store_class_end(); + } +} + +chatEventIsAllHistoryAvailableToggled::chatEventIsAllHistoryAvailableToggled() + : is_all_history_available_() +{} + +chatEventIsAllHistoryAvailableToggled::chatEventIsAllHistoryAvailableToggled(bool is_all_history_available_) + : is_all_history_available_(is_all_history_available_) +{} + +const std::int32_t chatEventIsAllHistoryAvailableToggled::ID; + +void chatEventIsAllHistoryAvailableToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventIsAllHistoryAvailableToggled"); + s.store_field("is_all_history_available", is_all_history_available_); + s.store_class_end(); + } +} + +chatEventSignMessagesToggled::chatEventSignMessagesToggled() + : sign_messages_() +{} + +chatEventSignMessagesToggled::chatEventSignMessagesToggled(bool sign_messages_) + : sign_messages_(sign_messages_) +{} + +const std::int32_t chatEventSignMessagesToggled::ID; + +void chatEventSignMessagesToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventSignMessagesToggled"); + s.store_field("sign_messages", sign_messages_); + s.store_class_end(); + } +} + +chatEventInviteLinkEdited::chatEventInviteLinkEdited() + : old_invite_link_() + , new_invite_link_() +{} + +chatEventInviteLinkEdited::chatEventInviteLinkEdited(object_ptr<chatInviteLink> &&old_invite_link_, object_ptr<chatInviteLink> &&new_invite_link_) + : old_invite_link_(std::move(old_invite_link_)) + , new_invite_link_(std::move(new_invite_link_)) +{} + +const std::int32_t chatEventInviteLinkEdited::ID; + +void chatEventInviteLinkEdited::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventInviteLinkEdited"); + s.store_object_field("old_invite_link", static_cast<const BaseObject *>(old_invite_link_.get())); + s.store_object_field("new_invite_link", static_cast<const BaseObject *>(new_invite_link_.get())); + s.store_class_end(); + } +} + +chatEventInviteLinkRevoked::chatEventInviteLinkRevoked() + : invite_link_() +{} + +chatEventInviteLinkRevoked::chatEventInviteLinkRevoked(object_ptr<chatInviteLink> &&invite_link_) + : invite_link_(std::move(invite_link_)) +{} + +const std::int32_t chatEventInviteLinkRevoked::ID; + +void chatEventInviteLinkRevoked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventInviteLinkRevoked"); + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + s.store_class_end(); + } +} + +chatEventInviteLinkDeleted::chatEventInviteLinkDeleted() + : invite_link_() +{} + +chatEventInviteLinkDeleted::chatEventInviteLinkDeleted(object_ptr<chatInviteLink> &&invite_link_) + : invite_link_(std::move(invite_link_)) +{} + +const std::int32_t chatEventInviteLinkDeleted::ID; + +void chatEventInviteLinkDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventInviteLinkDeleted"); + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + s.store_class_end(); + } +} + +chatEventVideoChatCreated::chatEventVideoChatCreated() + : group_call_id_() +{} + +chatEventVideoChatCreated::chatEventVideoChatCreated(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t chatEventVideoChatCreated::ID; + +void chatEventVideoChatCreated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventVideoChatCreated"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +chatEventVideoChatEnded::chatEventVideoChatEnded() + : group_call_id_() +{} + +chatEventVideoChatEnded::chatEventVideoChatEnded(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t chatEventVideoChatEnded::ID; + +void chatEventVideoChatEnded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventVideoChatEnded"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +chatEventVideoChatMuteNewParticipantsToggled::chatEventVideoChatMuteNewParticipantsToggled() + : mute_new_participants_() +{} + +chatEventVideoChatMuteNewParticipantsToggled::chatEventVideoChatMuteNewParticipantsToggled(bool mute_new_participants_) + : mute_new_participants_(mute_new_participants_) +{} + +const std::int32_t chatEventVideoChatMuteNewParticipantsToggled::ID; + +void chatEventVideoChatMuteNewParticipantsToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventVideoChatMuteNewParticipantsToggled"); + s.store_field("mute_new_participants", mute_new_participants_); + s.store_class_end(); + } +} + +chatEventVideoChatParticipantIsMutedToggled::chatEventVideoChatParticipantIsMutedToggled() + : participant_id_() + , is_muted_() +{} + +chatEventVideoChatParticipantIsMutedToggled::chatEventVideoChatParticipantIsMutedToggled(object_ptr<MessageSender> &&participant_id_, bool is_muted_) + : participant_id_(std::move(participant_id_)) + , is_muted_(is_muted_) +{} + +const std::int32_t chatEventVideoChatParticipantIsMutedToggled::ID; + +void chatEventVideoChatParticipantIsMutedToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventVideoChatParticipantIsMutedToggled"); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("is_muted", is_muted_); + s.store_class_end(); + } +} + +chatEventVideoChatParticipantVolumeLevelChanged::chatEventVideoChatParticipantVolumeLevelChanged() + : participant_id_() + , volume_level_() +{} + +chatEventVideoChatParticipantVolumeLevelChanged::chatEventVideoChatParticipantVolumeLevelChanged(object_ptr<MessageSender> &&participant_id_, int32 volume_level_) + : participant_id_(std::move(participant_id_)) + , volume_level_(volume_level_) +{} + +const std::int32_t chatEventVideoChatParticipantVolumeLevelChanged::ID; + +void chatEventVideoChatParticipantVolumeLevelChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventVideoChatParticipantVolumeLevelChanged"); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("volume_level", volume_level_); + s.store_class_end(); + } +} + +chatEventIsForumToggled::chatEventIsForumToggled() + : is_forum_() +{} + +chatEventIsForumToggled::chatEventIsForumToggled(bool is_forum_) + : is_forum_(is_forum_) +{} + +const std::int32_t chatEventIsForumToggled::ID; + +void chatEventIsForumToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventIsForumToggled"); + s.store_field("is_forum", is_forum_); + s.store_class_end(); + } +} + +chatEventForumTopicCreated::chatEventForumTopicCreated() + : topic_info_() +{} + +chatEventForumTopicCreated::chatEventForumTopicCreated(object_ptr<forumTopicInfo> &&topic_info_) + : topic_info_(std::move(topic_info_)) +{} + +const std::int32_t chatEventForumTopicCreated::ID; + +void chatEventForumTopicCreated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventForumTopicCreated"); + s.store_object_field("topic_info", static_cast<const BaseObject *>(topic_info_.get())); + s.store_class_end(); + } +} + +chatEventForumTopicEdited::chatEventForumTopicEdited() + : old_topic_info_() + , new_topic_info_() +{} + +chatEventForumTopicEdited::chatEventForumTopicEdited(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_) + : old_topic_info_(std::move(old_topic_info_)) + , new_topic_info_(std::move(new_topic_info_)) +{} + +const std::int32_t chatEventForumTopicEdited::ID; + +void chatEventForumTopicEdited::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventForumTopicEdited"); + s.store_object_field("old_topic_info", static_cast<const BaseObject *>(old_topic_info_.get())); + s.store_object_field("new_topic_info", static_cast<const BaseObject *>(new_topic_info_.get())); + s.store_class_end(); + } +} + +chatEventForumTopicToggleIsClosed::chatEventForumTopicToggleIsClosed() + : topic_info_() +{} + +chatEventForumTopicToggleIsClosed::chatEventForumTopicToggleIsClosed(object_ptr<forumTopicInfo> &&topic_info_) + : topic_info_(std::move(topic_info_)) +{} + +const std::int32_t chatEventForumTopicToggleIsClosed::ID; + +void chatEventForumTopicToggleIsClosed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventForumTopicToggleIsClosed"); + s.store_object_field("topic_info", static_cast<const BaseObject *>(topic_info_.get())); + s.store_class_end(); + } +} + +chatEventForumTopicDeleted::chatEventForumTopicDeleted() + : topic_info_() +{} + +chatEventForumTopicDeleted::chatEventForumTopicDeleted(object_ptr<forumTopicInfo> &&topic_info_) + : topic_info_(std::move(topic_info_)) +{} + +const std::int32_t chatEventForumTopicDeleted::ID; + +void chatEventForumTopicDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventForumTopicDeleted"); + s.store_object_field("topic_info", static_cast<const BaseObject *>(topic_info_.get())); + s.store_class_end(); + } +} + +chatEventForumTopicPinned::chatEventForumTopicPinned() + : old_topic_info_() + , new_topic_info_() +{} + +chatEventForumTopicPinned::chatEventForumTopicPinned(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_) + : old_topic_info_(std::move(old_topic_info_)) + , new_topic_info_(std::move(new_topic_info_)) +{} + +const std::int32_t chatEventForumTopicPinned::ID; + +void chatEventForumTopicPinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventForumTopicPinned"); + s.store_object_field("old_topic_info", static_cast<const BaseObject *>(old_topic_info_.get())); + s.store_object_field("new_topic_info", static_cast<const BaseObject *>(new_topic_info_.get())); + s.store_class_end(); + } +} + +chatEventLogFilters::chatEventLogFilters() + : message_edits_() + , message_deletions_() + , message_pins_() + , member_joins_() + , member_leaves_() + , member_invites_() + , member_promotions_() + , member_restrictions_() + , info_changes_() + , setting_changes_() + , invite_link_changes_() + , video_chat_changes_() + , forum_changes_() +{} + +chatEventLogFilters::chatEventLogFilters(bool message_edits_, bool message_deletions_, bool message_pins_, bool member_joins_, bool member_leaves_, bool member_invites_, bool member_promotions_, bool member_restrictions_, bool info_changes_, bool setting_changes_, bool invite_link_changes_, bool video_chat_changes_, bool forum_changes_) + : message_edits_(message_edits_) + , message_deletions_(message_deletions_) + , message_pins_(message_pins_) + , member_joins_(member_joins_) + , member_leaves_(member_leaves_) + , member_invites_(member_invites_) + , member_promotions_(member_promotions_) + , member_restrictions_(member_restrictions_) + , info_changes_(info_changes_) + , setting_changes_(setting_changes_) + , invite_link_changes_(invite_link_changes_) + , video_chat_changes_(video_chat_changes_) + , forum_changes_(forum_changes_) +{} + +const std::int32_t chatEventLogFilters::ID; + +void chatEventLogFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEventLogFilters"); + s.store_field("message_edits", message_edits_); + s.store_field("message_deletions", message_deletions_); + s.store_field("message_pins", message_pins_); + s.store_field("member_joins", member_joins_); + s.store_field("member_leaves", member_leaves_); + s.store_field("member_invites", member_invites_); + s.store_field("member_promotions", member_promotions_); + s.store_field("member_restrictions", member_restrictions_); + s.store_field("info_changes", info_changes_); + s.store_field("setting_changes", setting_changes_); + s.store_field("invite_link_changes", invite_link_changes_); + s.store_field("video_chat_changes", video_chat_changes_); + s.store_field("forum_changes", forum_changes_); + s.store_class_end(); + } +} + +chatEvents::chatEvents() + : events_() +{} + +chatEvents::chatEvents(array<object_ptr<chatEvent>> &&events_) + : events_(std::move(events_)) +{} + +const std::int32_t chatEvents::ID; + +void chatEvents::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEvents"); + { s.store_vector_begin("events", events_.size()); for (const auto &_value : events_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatFilter::chatFilter() + : title_() + , icon_name_() + , pinned_chat_ids_() + , included_chat_ids_() + , excluded_chat_ids_() + , exclude_muted_() + , exclude_read_() + , exclude_archived_() + , include_contacts_() + , include_non_contacts_() + , include_bots_() + , include_groups_() + , include_channels_() +{} + +chatFilter::chatFilter(string const &title_, string const &icon_name_, array<int53> &&pinned_chat_ids_, array<int53> &&included_chat_ids_, array<int53> &&excluded_chat_ids_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, bool include_contacts_, bool include_non_contacts_, bool include_bots_, bool include_groups_, bool include_channels_) + : title_(title_) + , icon_name_(icon_name_) + , pinned_chat_ids_(std::move(pinned_chat_ids_)) + , included_chat_ids_(std::move(included_chat_ids_)) + , excluded_chat_ids_(std::move(excluded_chat_ids_)) + , exclude_muted_(exclude_muted_) + , exclude_read_(exclude_read_) + , exclude_archived_(exclude_archived_) + , include_contacts_(include_contacts_) + , include_non_contacts_(include_non_contacts_) + , include_bots_(include_bots_) + , include_groups_(include_groups_) + , include_channels_(include_channels_) +{} + +const std::int32_t chatFilter::ID; + +void chatFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatFilter"); + s.store_field("title", title_); + s.store_field("icon_name", icon_name_); + { s.store_vector_begin("pinned_chat_ids", pinned_chat_ids_.size()); for (const auto &_value : pinned_chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("included_chat_ids", included_chat_ids_.size()); for (const auto &_value : included_chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("excluded_chat_ids", excluded_chat_ids_.size()); for (const auto &_value : excluded_chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("exclude_muted", exclude_muted_); + s.store_field("exclude_read", exclude_read_); + s.store_field("exclude_archived", exclude_archived_); + s.store_field("include_contacts", include_contacts_); + s.store_field("include_non_contacts", include_non_contacts_); + s.store_field("include_bots", include_bots_); + s.store_field("include_groups", include_groups_); + s.store_field("include_channels", include_channels_); + s.store_class_end(); + } +} + +chatFilterInfo::chatFilterInfo() + : id_() + , title_() + , icon_name_() +{} + +chatFilterInfo::chatFilterInfo(int32 id_, string const &title_, string const &icon_name_) + : id_(id_) + , title_(title_) + , icon_name_(icon_name_) +{} + +const std::int32_t chatFilterInfo::ID; + +void chatFilterInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatFilterInfo"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("icon_name", icon_name_); + s.store_class_end(); + } +} + +chatInviteLink::chatInviteLink() + : invite_link_() + , name_() + , creator_user_id_() + , date_() + , edit_date_() + , expiration_date_() + , member_limit_() + , member_count_() + , pending_join_request_count_() + , creates_join_request_() + , is_primary_() + , is_revoked_() +{} + +chatInviteLink::chatInviteLink(string const &invite_link_, string const &name_, int53 creator_user_id_, int32 date_, int32 edit_date_, int32 expiration_date_, int32 member_limit_, int32 member_count_, int32 pending_join_request_count_, bool creates_join_request_, bool is_primary_, bool is_revoked_) + : invite_link_(invite_link_) + , name_(name_) + , creator_user_id_(creator_user_id_) + , date_(date_) + , edit_date_(edit_date_) + , expiration_date_(expiration_date_) + , member_limit_(member_limit_) + , member_count_(member_count_) + , pending_join_request_count_(pending_join_request_count_) + , creates_join_request_(creates_join_request_) + , is_primary_(is_primary_) + , is_revoked_(is_revoked_) +{} + +const std::int32_t chatInviteLink::ID; + +void chatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteLink"); + s.store_field("invite_link", invite_link_); + s.store_field("name", name_); + s.store_field("creator_user_id", creator_user_id_); + s.store_field("date", date_); + s.store_field("edit_date", edit_date_); + s.store_field("expiration_date", expiration_date_); + s.store_field("member_limit", member_limit_); + s.store_field("member_count", member_count_); + s.store_field("pending_join_request_count", pending_join_request_count_); + s.store_field("creates_join_request", creates_join_request_); + s.store_field("is_primary", is_primary_); + s.store_field("is_revoked", is_revoked_); + s.store_class_end(); + } +} + +chatInviteLinkCount::chatInviteLinkCount() + : user_id_() + , invite_link_count_() + , revoked_invite_link_count_() +{} + +chatInviteLinkCount::chatInviteLinkCount(int53 user_id_, int32 invite_link_count_, int32 revoked_invite_link_count_) + : user_id_(user_id_) + , invite_link_count_(invite_link_count_) + , revoked_invite_link_count_(revoked_invite_link_count_) +{} + +const std::int32_t chatInviteLinkCount::ID; + +void chatInviteLinkCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteLinkCount"); + s.store_field("user_id", user_id_); + s.store_field("invite_link_count", invite_link_count_); + s.store_field("revoked_invite_link_count", revoked_invite_link_count_); + s.store_class_end(); + } +} + +chatInviteLinkCounts::chatInviteLinkCounts() + : invite_link_counts_() +{} + +chatInviteLinkCounts::chatInviteLinkCounts(array<object_ptr<chatInviteLinkCount>> &&invite_link_counts_) + : invite_link_counts_(std::move(invite_link_counts_)) +{} + +const std::int32_t chatInviteLinkCounts::ID; + +void chatInviteLinkCounts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteLinkCounts"); + { s.store_vector_begin("invite_link_counts", invite_link_counts_.size()); for (const auto &_value : invite_link_counts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatInviteLinkInfo::chatInviteLinkInfo() + : chat_id_() + , accessible_for_() + , type_() + , title_() + , photo_() + , description_() + , member_count_() + , member_user_ids_() + , creates_join_request_() + , is_public_() +{} + +chatInviteLinkInfo::chatInviteLinkInfo(int53 chat_id_, int32 accessible_for_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &description_, int32 member_count_, array<int53> &&member_user_ids_, bool creates_join_request_, bool is_public_) + : chat_id_(chat_id_) + , accessible_for_(accessible_for_) + , type_(std::move(type_)) + , title_(title_) + , photo_(std::move(photo_)) + , description_(description_) + , member_count_(member_count_) + , member_user_ids_(std::move(member_user_ids_)) + , creates_join_request_(creates_join_request_) + , is_public_(is_public_) +{} + +const std::int32_t chatInviteLinkInfo::ID; + +void chatInviteLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteLinkInfo"); + s.store_field("chat_id", chat_id_); + s.store_field("accessible_for", accessible_for_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("title", title_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("description", description_); + s.store_field("member_count", member_count_); + { s.store_vector_begin("member_user_ids", member_user_ids_.size()); for (const auto &_value : member_user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("creates_join_request", creates_join_request_); + s.store_field("is_public", is_public_); + s.store_class_end(); + } +} + +chatInviteLinkMember::chatInviteLinkMember() + : user_id_() + , joined_chat_date_() + , approver_user_id_() +{} + +chatInviteLinkMember::chatInviteLinkMember(int53 user_id_, int32 joined_chat_date_, int53 approver_user_id_) + : user_id_(user_id_) + , joined_chat_date_(joined_chat_date_) + , approver_user_id_(approver_user_id_) +{} + +const std::int32_t chatInviteLinkMember::ID; + +void chatInviteLinkMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteLinkMember"); + s.store_field("user_id", user_id_); + s.store_field("joined_chat_date", joined_chat_date_); + s.store_field("approver_user_id", approver_user_id_); + s.store_class_end(); + } +} + +chatInviteLinkMembers::chatInviteLinkMembers() + : total_count_() + , members_() +{} + +chatInviteLinkMembers::chatInviteLinkMembers(int32 total_count_, array<object_ptr<chatInviteLinkMember>> &&members_) + : total_count_(total_count_) + , members_(std::move(members_)) +{} + +const std::int32_t chatInviteLinkMembers::ID; + +void chatInviteLinkMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteLinkMembers"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatInviteLinks::chatInviteLinks() + : total_count_() + , invite_links_() +{} + +chatInviteLinks::chatInviteLinks(int32 total_count_, array<object_ptr<chatInviteLink>> &&invite_links_) + : total_count_(total_count_) + , invite_links_(std::move(invite_links_)) +{} + +const std::int32_t chatInviteLinks::ID; + +void chatInviteLinks::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteLinks"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("invite_links", invite_links_.size()); for (const auto &_value : invite_links_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatJoinRequest::chatJoinRequest() + : user_id_() + , date_() + , bio_() +{} + +chatJoinRequest::chatJoinRequest(int53 user_id_, int32 date_, string const &bio_) + : user_id_(user_id_) + , date_(date_) + , bio_(bio_) +{} + +const std::int32_t chatJoinRequest::ID; + +void chatJoinRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatJoinRequest"); + s.store_field("user_id", user_id_); + s.store_field("date", date_); + s.store_field("bio", bio_); + s.store_class_end(); + } +} + +chatJoinRequests::chatJoinRequests() + : total_count_() + , requests_() +{} + +chatJoinRequests::chatJoinRequests(int32 total_count_, array<object_ptr<chatJoinRequest>> &&requests_) + : total_count_(total_count_) + , requests_(std::move(requests_)) +{} + +const std::int32_t chatJoinRequests::ID; + +void chatJoinRequests::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatJoinRequests"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("requests", requests_.size()); for (const auto &_value : requests_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatJoinRequestsInfo::chatJoinRequestsInfo() + : total_count_() + , user_ids_() +{} + +chatJoinRequestsInfo::chatJoinRequestsInfo(int32 total_count_, array<int53> &&user_ids_) + : total_count_(total_count_) + , user_ids_(std::move(user_ids_)) +{} + +const std::int32_t chatJoinRequestsInfo::ID; + +void chatJoinRequestsInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatJoinRequestsInfo"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatListMain::chatListMain() { +} + +const std::int32_t chatListMain::ID; + +void chatListMain::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatListMain"); + s.store_class_end(); + } +} + +chatListArchive::chatListArchive() { +} + +const std::int32_t chatListArchive::ID; + +void chatListArchive::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatListArchive"); + s.store_class_end(); + } +} + +chatListFilter::chatListFilter() + : chat_filter_id_() +{} + +chatListFilter::chatListFilter(int32 chat_filter_id_) + : chat_filter_id_(chat_filter_id_) +{} + +const std::int32_t chatListFilter::ID; + +void chatListFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatListFilter"); + s.store_field("chat_filter_id", chat_filter_id_); + s.store_class_end(); + } +} + +chatLists::chatLists() + : chat_lists_() +{} + +chatLists::chatLists(array<object_ptr<ChatList>> &&chat_lists_) + : chat_lists_(std::move(chat_lists_)) +{} + +const std::int32_t chatLists::ID; + +void chatLists::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatLists"); + { s.store_vector_begin("chat_lists", chat_lists_.size()); for (const auto &_value : chat_lists_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatLocation::chatLocation() + : location_() + , address_() +{} + +chatLocation::chatLocation(object_ptr<location> &&location_, string const &address_) + : location_(std::move(location_)) + , address_(address_) +{} + +const std::int32_t chatLocation::ID; + +void chatLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatLocation"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("address", address_); + s.store_class_end(); + } +} + +chatMember::chatMember() + : member_id_() + , inviter_user_id_() + , joined_chat_date_() + , status_() +{} + +chatMember::chatMember(object_ptr<MessageSender> &&member_id_, int53 inviter_user_id_, int32 joined_chat_date_, object_ptr<ChatMemberStatus> &&status_) + : member_id_(std::move(member_id_)) + , inviter_user_id_(inviter_user_id_) + , joined_chat_date_(joined_chat_date_) + , status_(std::move(status_)) +{} + +const std::int32_t chatMember::ID; + +void chatMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMember"); + s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get())); + s.store_field("inviter_user_id", inviter_user_id_); + s.store_field("joined_chat_date", joined_chat_date_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_class_end(); + } +} + +chatMemberStatusCreator::chatMemberStatusCreator() + : custom_title_() + , is_anonymous_() + , is_member_() +{} + +chatMemberStatusCreator::chatMemberStatusCreator(string const &custom_title_, bool is_anonymous_, bool is_member_) + : custom_title_(custom_title_) + , is_anonymous_(is_anonymous_) + , is_member_(is_member_) +{} + +const std::int32_t chatMemberStatusCreator::ID; + +void chatMemberStatusCreator::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMemberStatusCreator"); + s.store_field("custom_title", custom_title_); + s.store_field("is_anonymous", is_anonymous_); + s.store_field("is_member", is_member_); + s.store_class_end(); + } +} + +chatMemberStatusAdministrator::chatMemberStatusAdministrator() + : custom_title_() + , can_be_edited_() + , rights_() +{} + +chatMemberStatusAdministrator::chatMemberStatusAdministrator(string const &custom_title_, bool can_be_edited_, object_ptr<chatAdministratorRights> &&rights_) + : custom_title_(custom_title_) + , can_be_edited_(can_be_edited_) + , rights_(std::move(rights_)) +{} + +const std::int32_t chatMemberStatusAdministrator::ID; + +void chatMemberStatusAdministrator::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMemberStatusAdministrator"); + s.store_field("custom_title", custom_title_); + s.store_field("can_be_edited", can_be_edited_); + s.store_object_field("rights", static_cast<const BaseObject *>(rights_.get())); + s.store_class_end(); + } +} + +chatMemberStatusMember::chatMemberStatusMember() { +} + +const std::int32_t chatMemberStatusMember::ID; + +void chatMemberStatusMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMemberStatusMember"); + s.store_class_end(); + } +} + +chatMemberStatusRestricted::chatMemberStatusRestricted() + : is_member_() + , restricted_until_date_() + , permissions_() +{} + +chatMemberStatusRestricted::chatMemberStatusRestricted(bool is_member_, int32 restricted_until_date_, object_ptr<chatPermissions> &&permissions_) + : is_member_(is_member_) + , restricted_until_date_(restricted_until_date_) + , permissions_(std::move(permissions_)) +{} + +const std::int32_t chatMemberStatusRestricted::ID; + +void chatMemberStatusRestricted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMemberStatusRestricted"); + s.store_field("is_member", is_member_); + s.store_field("restricted_until_date", restricted_until_date_); + s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get())); + s.store_class_end(); + } +} + +chatMemberStatusLeft::chatMemberStatusLeft() { +} + +const std::int32_t chatMemberStatusLeft::ID; + +void chatMemberStatusLeft::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMemberStatusLeft"); + s.store_class_end(); + } +} + +chatMemberStatusBanned::chatMemberStatusBanned() + : banned_until_date_() +{} + +chatMemberStatusBanned::chatMemberStatusBanned(int32 banned_until_date_) + : banned_until_date_(banned_until_date_) +{} + +const std::int32_t chatMemberStatusBanned::ID; + +void chatMemberStatusBanned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMemberStatusBanned"); + s.store_field("banned_until_date", banned_until_date_); + s.store_class_end(); + } +} + +chatMembers::chatMembers() + : total_count_() + , members_() +{} + +chatMembers::chatMembers(int32 total_count_, array<object_ptr<chatMember>> &&members_) + : total_count_(total_count_) + , members_(std::move(members_)) +{} + +const std::int32_t chatMembers::ID; + +void chatMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembers"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatMembersFilterContacts::chatMembersFilterContacts() { +} + +const std::int32_t chatMembersFilterContacts::ID; + +void chatMembersFilterContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembersFilterContacts"); + s.store_class_end(); + } +} + +chatMembersFilterAdministrators::chatMembersFilterAdministrators() { +} + +const std::int32_t chatMembersFilterAdministrators::ID; + +void chatMembersFilterAdministrators::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembersFilterAdministrators"); + s.store_class_end(); + } +} + +chatMembersFilterMembers::chatMembersFilterMembers() { +} + +const std::int32_t chatMembersFilterMembers::ID; + +void chatMembersFilterMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembersFilterMembers"); + s.store_class_end(); + } +} + +chatMembersFilterMention::chatMembersFilterMention() + : message_thread_id_() +{} + +chatMembersFilterMention::chatMembersFilterMention(int53 message_thread_id_) + : message_thread_id_(message_thread_id_) +{} + +const std::int32_t chatMembersFilterMention::ID; + +void chatMembersFilterMention::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembersFilterMention"); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +chatMembersFilterRestricted::chatMembersFilterRestricted() { +} + +const std::int32_t chatMembersFilterRestricted::ID; + +void chatMembersFilterRestricted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembersFilterRestricted"); + s.store_class_end(); + } +} + +chatMembersFilterBanned::chatMembersFilterBanned() { +} + +const std::int32_t chatMembersFilterBanned::ID; + +void chatMembersFilterBanned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembersFilterBanned"); + s.store_class_end(); + } +} + +chatMembersFilterBots::chatMembersFilterBots() { +} + +const std::int32_t chatMembersFilterBots::ID; + +void chatMembersFilterBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMembersFilterBots"); + s.store_class_end(); + } +} + +chatMessageSender::chatMessageSender() + : sender_() + , needs_premium_() +{} + +chatMessageSender::chatMessageSender(object_ptr<MessageSender> &&sender_, bool needs_premium_) + : sender_(std::move(sender_)) + , needs_premium_(needs_premium_) +{} + +const std::int32_t chatMessageSender::ID; + +void chatMessageSender::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMessageSender"); + s.store_object_field("sender", static_cast<const BaseObject *>(sender_.get())); + s.store_field("needs_premium", needs_premium_); + s.store_class_end(); + } +} + +chatMessageSenders::chatMessageSenders() + : senders_() +{} + +chatMessageSenders::chatMessageSenders(array<object_ptr<chatMessageSender>> &&senders_) + : senders_(std::move(senders_)) +{} + +const std::int32_t chatMessageSenders::ID; + +void chatMessageSenders::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatMessageSenders"); + { s.store_vector_begin("senders", senders_.size()); for (const auto &_value : senders_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatNearby::chatNearby() + : chat_id_() + , distance_() +{} + +chatNearby::chatNearby(int53 chat_id_, int32 distance_) + : chat_id_(chat_id_) + , distance_(distance_) +{} + +const std::int32_t chatNearby::ID; + +void chatNearby::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatNearby"); + s.store_field("chat_id", chat_id_); + s.store_field("distance", distance_); + s.store_class_end(); + } +} + +chatNotificationSettings::chatNotificationSettings() + : use_default_mute_for_() + , mute_for_() + , use_default_sound_() + , sound_id_() + , use_default_show_preview_() + , show_preview_() + , use_default_disable_pinned_message_notifications_() + , disable_pinned_message_notifications_() + , use_default_disable_mention_notifications_() + , disable_mention_notifications_() +{} + +chatNotificationSettings::chatNotificationSettings(bool use_default_mute_for_, int32 mute_for_, bool use_default_sound_, int64 sound_id_, bool use_default_show_preview_, bool show_preview_, bool use_default_disable_pinned_message_notifications_, bool disable_pinned_message_notifications_, bool use_default_disable_mention_notifications_, bool disable_mention_notifications_) + : use_default_mute_for_(use_default_mute_for_) + , mute_for_(mute_for_) + , use_default_sound_(use_default_sound_) + , sound_id_(sound_id_) + , use_default_show_preview_(use_default_show_preview_) + , show_preview_(show_preview_) + , use_default_disable_pinned_message_notifications_(use_default_disable_pinned_message_notifications_) + , disable_pinned_message_notifications_(disable_pinned_message_notifications_) + , use_default_disable_mention_notifications_(use_default_disable_mention_notifications_) + , disable_mention_notifications_(disable_mention_notifications_) +{} + +const std::int32_t chatNotificationSettings::ID; + +void chatNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatNotificationSettings"); + s.store_field("use_default_mute_for", use_default_mute_for_); + s.store_field("mute_for", mute_for_); + s.store_field("use_default_sound", use_default_sound_); + s.store_field("sound_id", sound_id_); + s.store_field("use_default_show_preview", use_default_show_preview_); + s.store_field("show_preview", show_preview_); + s.store_field("use_default_disable_pinned_message_notifications", use_default_disable_pinned_message_notifications_); + s.store_field("disable_pinned_message_notifications", disable_pinned_message_notifications_); + s.store_field("use_default_disable_mention_notifications", use_default_disable_mention_notifications_); + s.store_field("disable_mention_notifications", disable_mention_notifications_); + s.store_class_end(); + } +} + +chatPermissions::chatPermissions() + : can_send_messages_() + , can_send_media_messages_() + , can_send_polls_() + , can_send_other_messages_() + , can_add_web_page_previews_() + , can_change_info_() + , can_invite_users_() + , can_pin_messages_() + , can_manage_topics_() +{} + +chatPermissions::chatPermissions(bool can_send_messages_, bool can_send_media_messages_, bool can_send_polls_, bool can_send_other_messages_, bool can_add_web_page_previews_, bool can_change_info_, bool can_invite_users_, bool can_pin_messages_, bool can_manage_topics_) + : can_send_messages_(can_send_messages_) + , can_send_media_messages_(can_send_media_messages_) + , can_send_polls_(can_send_polls_) + , can_send_other_messages_(can_send_other_messages_) + , can_add_web_page_previews_(can_add_web_page_previews_) + , can_change_info_(can_change_info_) + , can_invite_users_(can_invite_users_) + , can_pin_messages_(can_pin_messages_) + , can_manage_topics_(can_manage_topics_) +{} + +const std::int32_t chatPermissions::ID; + +void chatPermissions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatPermissions"); + s.store_field("can_send_messages", can_send_messages_); + s.store_field("can_send_media_messages", can_send_media_messages_); + s.store_field("can_send_polls", can_send_polls_); + s.store_field("can_send_other_messages", can_send_other_messages_); + s.store_field("can_add_web_page_previews", can_add_web_page_previews_); + s.store_field("can_change_info", can_change_info_); + s.store_field("can_invite_users", can_invite_users_); + s.store_field("can_pin_messages", can_pin_messages_); + s.store_field("can_manage_topics", can_manage_topics_); + s.store_class_end(); + } +} + +chatPhoto::chatPhoto() + : id_() + , added_date_() + , minithumbnail_() + , sizes_() + , animation_() + , small_animation_() +{} + +chatPhoto::chatPhoto(int64 id_, int32 added_date_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_, object_ptr<animatedChatPhoto> &&animation_, object_ptr<animatedChatPhoto> &&small_animation_) + : id_(id_) + , added_date_(added_date_) + , minithumbnail_(std::move(minithumbnail_)) + , sizes_(std::move(sizes_)) + , animation_(std::move(animation_)) + , small_animation_(std::move(small_animation_)) +{} + +const std::int32_t chatPhoto::ID; + +void chatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatPhoto"); + s.store_field("id", id_); + s.store_field("added_date", added_date_); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_object_field("small_animation", static_cast<const BaseObject *>(small_animation_.get())); + s.store_class_end(); + } +} + +chatPhotoInfo::chatPhotoInfo() + : small_() + , big_() + , minithumbnail_() + , has_animation_() +{} + +chatPhotoInfo::chatPhotoInfo(object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_) + : small_(std::move(small_)) + , big_(std::move(big_)) + , minithumbnail_(std::move(minithumbnail_)) + , has_animation_(has_animation_) +{} + +const std::int32_t chatPhotoInfo::ID; + +void chatPhotoInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatPhotoInfo"); + s.store_object_field("small", static_cast<const BaseObject *>(small_.get())); + s.store_object_field("big", static_cast<const BaseObject *>(big_.get())); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + s.store_field("has_animation", has_animation_); + s.store_class_end(); + } +} + +chatPhotos::chatPhotos() + : total_count_() + , photos_() +{} + +chatPhotos::chatPhotos(int32 total_count_, array<object_ptr<chatPhoto>> &&photos_) + : total_count_(total_count_) + , photos_(std::move(photos_)) +{} + +const std::int32_t chatPhotos::ID; + +void chatPhotos::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatPhotos"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatPosition::chatPosition() + : list_() + , order_() + , is_pinned_() + , source_() +{} + +chatPosition::chatPosition(object_ptr<ChatList> &&list_, int64 order_, bool is_pinned_, object_ptr<ChatSource> &&source_) + : list_(std::move(list_)) + , order_(order_) + , is_pinned_(is_pinned_) + , source_(std::move(source_)) +{} + +const std::int32_t chatPosition::ID; + +void chatPosition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatPosition"); + s.store_object_field("list", static_cast<const BaseObject *>(list_.get())); + s.store_field("order", order_); + s.store_field("is_pinned", is_pinned_); + s.store_object_field("source", static_cast<const BaseObject *>(source_.get())); + s.store_class_end(); + } +} + +chatReportReasonSpam::chatReportReasonSpam() { +} + +const std::int32_t chatReportReasonSpam::ID; + +void chatReportReasonSpam::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonSpam"); + s.store_class_end(); + } +} + +chatReportReasonViolence::chatReportReasonViolence() { +} + +const std::int32_t chatReportReasonViolence::ID; + +void chatReportReasonViolence::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonViolence"); + s.store_class_end(); + } +} + +chatReportReasonPornography::chatReportReasonPornography() { +} + +const std::int32_t chatReportReasonPornography::ID; + +void chatReportReasonPornography::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonPornography"); + s.store_class_end(); + } +} + +chatReportReasonChildAbuse::chatReportReasonChildAbuse() { +} + +const std::int32_t chatReportReasonChildAbuse::ID; + +void chatReportReasonChildAbuse::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonChildAbuse"); + s.store_class_end(); + } +} + +chatReportReasonCopyright::chatReportReasonCopyright() { +} + +const std::int32_t chatReportReasonCopyright::ID; + +void chatReportReasonCopyright::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonCopyright"); + s.store_class_end(); + } +} + +chatReportReasonUnrelatedLocation::chatReportReasonUnrelatedLocation() { +} + +const std::int32_t chatReportReasonUnrelatedLocation::ID; + +void chatReportReasonUnrelatedLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonUnrelatedLocation"); + s.store_class_end(); + } +} + +chatReportReasonFake::chatReportReasonFake() { +} + +const std::int32_t chatReportReasonFake::ID; + +void chatReportReasonFake::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonFake"); + s.store_class_end(); + } +} + +chatReportReasonIllegalDrugs::chatReportReasonIllegalDrugs() { +} + +const std::int32_t chatReportReasonIllegalDrugs::ID; + +void chatReportReasonIllegalDrugs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonIllegalDrugs"); + s.store_class_end(); + } +} + +chatReportReasonPersonalDetails::chatReportReasonPersonalDetails() { +} + +const std::int32_t chatReportReasonPersonalDetails::ID; + +void chatReportReasonPersonalDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonPersonalDetails"); + s.store_class_end(); + } +} + +chatReportReasonCustom::chatReportReasonCustom() { +} + +const std::int32_t chatReportReasonCustom::ID; + +void chatReportReasonCustom::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReportReasonCustom"); + s.store_class_end(); + } +} + +chatSourceMtprotoProxy::chatSourceMtprotoProxy() { +} + +const std::int32_t chatSourceMtprotoProxy::ID; + +void chatSourceMtprotoProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatSourceMtprotoProxy"); + s.store_class_end(); + } +} + +chatSourcePublicServiceAnnouncement::chatSourcePublicServiceAnnouncement() + : type_() + , text_() +{} + +chatSourcePublicServiceAnnouncement::chatSourcePublicServiceAnnouncement(string const &type_, string const &text_) + : type_(type_) + , text_(text_) +{} + +const std::int32_t chatSourcePublicServiceAnnouncement::ID; + +void chatSourcePublicServiceAnnouncement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatSourcePublicServiceAnnouncement"); + s.store_field("type", type_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +chatStatisticsSupergroup::chatStatisticsSupergroup() + : period_() + , member_count_() + , message_count_() + , viewer_count_() + , sender_count_() + , member_count_graph_() + , join_graph_() + , join_by_source_graph_() + , language_graph_() + , message_content_graph_() + , action_graph_() + , day_graph_() + , week_graph_() + , top_senders_() + , top_administrators_() + , top_inviters_() +{} + +chatStatisticsSupergroup::chatStatisticsSupergroup(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&message_count_, object_ptr<statisticalValue> &&viewer_count_, object_ptr<statisticalValue> &&sender_count_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_content_graph_, object_ptr<StatisticalGraph> &&action_graph_, object_ptr<StatisticalGraph> &&day_graph_, object_ptr<StatisticalGraph> &&week_graph_, array<object_ptr<chatStatisticsMessageSenderInfo>> &&top_senders_, array<object_ptr<chatStatisticsAdministratorActionsInfo>> &&top_administrators_, array<object_ptr<chatStatisticsInviterInfo>> &&top_inviters_) + : period_(std::move(period_)) + , member_count_(std::move(member_count_)) + , message_count_(std::move(message_count_)) + , viewer_count_(std::move(viewer_count_)) + , sender_count_(std::move(sender_count_)) + , member_count_graph_(std::move(member_count_graph_)) + , join_graph_(std::move(join_graph_)) + , join_by_source_graph_(std::move(join_by_source_graph_)) + , language_graph_(std::move(language_graph_)) + , message_content_graph_(std::move(message_content_graph_)) + , action_graph_(std::move(action_graph_)) + , day_graph_(std::move(day_graph_)) + , week_graph_(std::move(week_graph_)) + , top_senders_(std::move(top_senders_)) + , top_administrators_(std::move(top_administrators_)) + , top_inviters_(std::move(top_inviters_)) +{} + +const std::int32_t chatStatisticsSupergroup::ID; + +void chatStatisticsSupergroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatStatisticsSupergroup"); + s.store_object_field("period", static_cast<const BaseObject *>(period_.get())); + s.store_object_field("member_count", static_cast<const BaseObject *>(member_count_.get())); + s.store_object_field("message_count", static_cast<const BaseObject *>(message_count_.get())); + s.store_object_field("viewer_count", static_cast<const BaseObject *>(viewer_count_.get())); + s.store_object_field("sender_count", static_cast<const BaseObject *>(sender_count_.get())); + s.store_object_field("member_count_graph", static_cast<const BaseObject *>(member_count_graph_.get())); + s.store_object_field("join_graph", static_cast<const BaseObject *>(join_graph_.get())); + s.store_object_field("join_by_source_graph", static_cast<const BaseObject *>(join_by_source_graph_.get())); + s.store_object_field("language_graph", static_cast<const BaseObject *>(language_graph_.get())); + s.store_object_field("message_content_graph", static_cast<const BaseObject *>(message_content_graph_.get())); + s.store_object_field("action_graph", static_cast<const BaseObject *>(action_graph_.get())); + s.store_object_field("day_graph", static_cast<const BaseObject *>(day_graph_.get())); + s.store_object_field("week_graph", static_cast<const BaseObject *>(week_graph_.get())); + { s.store_vector_begin("top_senders", top_senders_.size()); for (const auto &_value : top_senders_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("top_administrators", top_administrators_.size()); for (const auto &_value : top_administrators_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("top_inviters", top_inviters_.size()); for (const auto &_value : top_inviters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatStatisticsChannel::chatStatisticsChannel() + : period_() + , member_count_() + , mean_view_count_() + , mean_share_count_() + , enabled_notifications_percentage_() + , member_count_graph_() + , join_graph_() + , mute_graph_() + , view_count_by_hour_graph_() + , view_count_by_source_graph_() + , join_by_source_graph_() + , language_graph_() + , message_interaction_graph_() + , instant_view_interaction_graph_() + , recent_message_interactions_() +{} + +chatStatisticsChannel::chatStatisticsChannel(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&mean_view_count_, object_ptr<statisticalValue> &&mean_share_count_, double enabled_notifications_percentage_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&mute_graph_, object_ptr<StatisticalGraph> &&view_count_by_hour_graph_, object_ptr<StatisticalGraph> &&view_count_by_source_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_interaction_graph_, object_ptr<StatisticalGraph> &&instant_view_interaction_graph_, array<object_ptr<chatStatisticsMessageInteractionInfo>> &&recent_message_interactions_) + : period_(std::move(period_)) + , member_count_(std::move(member_count_)) + , mean_view_count_(std::move(mean_view_count_)) + , mean_share_count_(std::move(mean_share_count_)) + , enabled_notifications_percentage_(enabled_notifications_percentage_) + , member_count_graph_(std::move(member_count_graph_)) + , join_graph_(std::move(join_graph_)) + , mute_graph_(std::move(mute_graph_)) + , view_count_by_hour_graph_(std::move(view_count_by_hour_graph_)) + , view_count_by_source_graph_(std::move(view_count_by_source_graph_)) + , join_by_source_graph_(std::move(join_by_source_graph_)) + , language_graph_(std::move(language_graph_)) + , message_interaction_graph_(std::move(message_interaction_graph_)) + , instant_view_interaction_graph_(std::move(instant_view_interaction_graph_)) + , recent_message_interactions_(std::move(recent_message_interactions_)) +{} + +const std::int32_t chatStatisticsChannel::ID; + +void chatStatisticsChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatStatisticsChannel"); + s.store_object_field("period", static_cast<const BaseObject *>(period_.get())); + s.store_object_field("member_count", static_cast<const BaseObject *>(member_count_.get())); + s.store_object_field("mean_view_count", static_cast<const BaseObject *>(mean_view_count_.get())); + s.store_object_field("mean_share_count", static_cast<const BaseObject *>(mean_share_count_.get())); + s.store_field("enabled_notifications_percentage", enabled_notifications_percentage_); + s.store_object_field("member_count_graph", static_cast<const BaseObject *>(member_count_graph_.get())); + s.store_object_field("join_graph", static_cast<const BaseObject *>(join_graph_.get())); + s.store_object_field("mute_graph", static_cast<const BaseObject *>(mute_graph_.get())); + s.store_object_field("view_count_by_hour_graph", static_cast<const BaseObject *>(view_count_by_hour_graph_.get())); + s.store_object_field("view_count_by_source_graph", static_cast<const BaseObject *>(view_count_by_source_graph_.get())); + s.store_object_field("join_by_source_graph", static_cast<const BaseObject *>(join_by_source_graph_.get())); + s.store_object_field("language_graph", static_cast<const BaseObject *>(language_graph_.get())); + s.store_object_field("message_interaction_graph", static_cast<const BaseObject *>(message_interaction_graph_.get())); + s.store_object_field("instant_view_interaction_graph", static_cast<const BaseObject *>(instant_view_interaction_graph_.get())); + { s.store_vector_begin("recent_message_interactions", recent_message_interactions_.size()); for (const auto &_value : recent_message_interactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatStatisticsAdministratorActionsInfo::chatStatisticsAdministratorActionsInfo() + : user_id_() + , deleted_message_count_() + , banned_user_count_() + , restricted_user_count_() +{} + +chatStatisticsAdministratorActionsInfo::chatStatisticsAdministratorActionsInfo(int53 user_id_, int32 deleted_message_count_, int32 banned_user_count_, int32 restricted_user_count_) + : user_id_(user_id_) + , deleted_message_count_(deleted_message_count_) + , banned_user_count_(banned_user_count_) + , restricted_user_count_(restricted_user_count_) +{} + +const std::int32_t chatStatisticsAdministratorActionsInfo::ID; + +void chatStatisticsAdministratorActionsInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatStatisticsAdministratorActionsInfo"); + s.store_field("user_id", user_id_); + s.store_field("deleted_message_count", deleted_message_count_); + s.store_field("banned_user_count", banned_user_count_); + s.store_field("restricted_user_count", restricted_user_count_); + s.store_class_end(); + } +} + +chatStatisticsInviterInfo::chatStatisticsInviterInfo() + : user_id_() + , added_member_count_() +{} + +chatStatisticsInviterInfo::chatStatisticsInviterInfo(int53 user_id_, int32 added_member_count_) + : user_id_(user_id_) + , added_member_count_(added_member_count_) +{} + +const std::int32_t chatStatisticsInviterInfo::ID; + +void chatStatisticsInviterInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatStatisticsInviterInfo"); + s.store_field("user_id", user_id_); + s.store_field("added_member_count", added_member_count_); + s.store_class_end(); + } +} + +chatStatisticsMessageInteractionInfo::chatStatisticsMessageInteractionInfo() + : message_id_() + , view_count_() + , forward_count_() +{} + +chatStatisticsMessageInteractionInfo::chatStatisticsMessageInteractionInfo(int53 message_id_, int32 view_count_, int32 forward_count_) + : message_id_(message_id_) + , view_count_(view_count_) + , forward_count_(forward_count_) +{} + +const std::int32_t chatStatisticsMessageInteractionInfo::ID; + +void chatStatisticsMessageInteractionInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatStatisticsMessageInteractionInfo"); + s.store_field("message_id", message_id_); + s.store_field("view_count", view_count_); + s.store_field("forward_count", forward_count_); + s.store_class_end(); + } +} + +chatStatisticsMessageSenderInfo::chatStatisticsMessageSenderInfo() + : user_id_() + , sent_message_count_() + , average_character_count_() +{} + +chatStatisticsMessageSenderInfo::chatStatisticsMessageSenderInfo(int53 user_id_, int32 sent_message_count_, int32 average_character_count_) + : user_id_(user_id_) + , sent_message_count_(sent_message_count_) + , average_character_count_(average_character_count_) +{} + +const std::int32_t chatStatisticsMessageSenderInfo::ID; + +void chatStatisticsMessageSenderInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatStatisticsMessageSenderInfo"); + s.store_field("user_id", user_id_); + s.store_field("sent_message_count", sent_message_count_); + s.store_field("average_character_count", average_character_count_); + s.store_class_end(); + } +} + +chatTheme::chatTheme() + : name_() + , light_settings_() + , dark_settings_() +{} + +chatTheme::chatTheme(string const &name_, object_ptr<themeSettings> &&light_settings_, object_ptr<themeSettings> &&dark_settings_) + : name_(name_) + , light_settings_(std::move(light_settings_)) + , dark_settings_(std::move(dark_settings_)) +{} + +const std::int32_t chatTheme::ID; + +void chatTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatTheme"); + s.store_field("name", name_); + s.store_object_field("light_settings", static_cast<const BaseObject *>(light_settings_.get())); + s.store_object_field("dark_settings", static_cast<const BaseObject *>(dark_settings_.get())); + s.store_class_end(); + } +} + +chatTypePrivate::chatTypePrivate() + : user_id_() +{} + +chatTypePrivate::chatTypePrivate(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t chatTypePrivate::ID; + +void chatTypePrivate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatTypePrivate"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +chatTypeBasicGroup::chatTypeBasicGroup() + : basic_group_id_() +{} + +chatTypeBasicGroup::chatTypeBasicGroup(int53 basic_group_id_) + : basic_group_id_(basic_group_id_) +{} + +const std::int32_t chatTypeBasicGroup::ID; + +void chatTypeBasicGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatTypeBasicGroup"); + s.store_field("basic_group_id", basic_group_id_); + s.store_class_end(); + } +} + +chatTypeSupergroup::chatTypeSupergroup() + : supergroup_id_() + , is_channel_() +{} + +chatTypeSupergroup::chatTypeSupergroup(int53 supergroup_id_, bool is_channel_) + : supergroup_id_(supergroup_id_) + , is_channel_(is_channel_) +{} + +const std::int32_t chatTypeSupergroup::ID; + +void chatTypeSupergroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatTypeSupergroup"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("is_channel", is_channel_); + s.store_class_end(); + } +} + +chatTypeSecret::chatTypeSecret() + : secret_chat_id_() + , user_id_() +{} + +chatTypeSecret::chatTypeSecret(int32 secret_chat_id_, int53 user_id_) + : secret_chat_id_(secret_chat_id_) + , user_id_(user_id_) +{} + +const std::int32_t chatTypeSecret::ID; + +void chatTypeSecret::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatTypeSecret"); + s.store_field("secret_chat_id", secret_chat_id_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +chats::chats() + : total_count_() + , chat_ids_() +{} + +chats::chats(int32 total_count_, array<int53> &&chat_ids_) + : total_count_(total_count_) + , chat_ids_(std::move(chat_ids_)) +{} + +const std::int32_t chats::ID; + +void chats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chats"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +chatsNearby::chatsNearby() + : users_nearby_() + , supergroups_nearby_() +{} + +chatsNearby::chatsNearby(array<object_ptr<chatNearby>> &&users_nearby_, array<object_ptr<chatNearby>> &&supergroups_nearby_) + : users_nearby_(std::move(users_nearby_)) + , supergroups_nearby_(std::move(supergroups_nearby_)) +{} + +const std::int32_t chatsNearby::ID; + +void chatsNearby::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatsNearby"); + { s.store_vector_begin("users_nearby", users_nearby_.size()); for (const auto &_value : users_nearby_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("supergroups_nearby", supergroups_nearby_.size()); for (const auto &_value : supergroups_nearby_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +checkChatUsernameResultOk::checkChatUsernameResultOk() { +} + +const std::int32_t checkChatUsernameResultOk::ID; + +void checkChatUsernameResultOk::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChatUsernameResultOk"); + s.store_class_end(); + } +} + +checkChatUsernameResultUsernameInvalid::checkChatUsernameResultUsernameInvalid() { +} + +const std::int32_t checkChatUsernameResultUsernameInvalid::ID; + +void checkChatUsernameResultUsernameInvalid::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChatUsernameResultUsernameInvalid"); + s.store_class_end(); + } +} + +checkChatUsernameResultUsernameOccupied::checkChatUsernameResultUsernameOccupied() { +} + +const std::int32_t checkChatUsernameResultUsernameOccupied::ID; + +void checkChatUsernameResultUsernameOccupied::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChatUsernameResultUsernameOccupied"); + s.store_class_end(); + } +} + +checkChatUsernameResultPublicChatsTooMuch::checkChatUsernameResultPublicChatsTooMuch() { +} + +const std::int32_t checkChatUsernameResultPublicChatsTooMuch::ID; + +void checkChatUsernameResultPublicChatsTooMuch::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChatUsernameResultPublicChatsTooMuch"); + s.store_class_end(); + } +} + +checkChatUsernameResultPublicGroupsUnavailable::checkChatUsernameResultPublicGroupsUnavailable() { +} + +const std::int32_t checkChatUsernameResultPublicGroupsUnavailable::ID; + +void checkChatUsernameResultPublicGroupsUnavailable::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChatUsernameResultPublicGroupsUnavailable"); + s.store_class_end(); + } +} + +checkStickerSetNameResultOk::checkStickerSetNameResultOk() { +} + +const std::int32_t checkStickerSetNameResultOk::ID; + +void checkStickerSetNameResultOk::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkStickerSetNameResultOk"); + s.store_class_end(); + } +} + +checkStickerSetNameResultNameInvalid::checkStickerSetNameResultNameInvalid() { +} + +const std::int32_t checkStickerSetNameResultNameInvalid::ID; + +void checkStickerSetNameResultNameInvalid::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkStickerSetNameResultNameInvalid"); + s.store_class_end(); + } +} + +checkStickerSetNameResultNameOccupied::checkStickerSetNameResultNameOccupied() { +} + +const std::int32_t checkStickerSetNameResultNameOccupied::ID; + +void checkStickerSetNameResultNameOccupied::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkStickerSetNameResultNameOccupied"); + s.store_class_end(); + } +} + +closedVectorPath::closedVectorPath() + : commands_() +{} + +closedVectorPath::closedVectorPath(array<object_ptr<VectorPathCommand>> &&commands_) + : commands_(std::move(commands_)) +{} + +const std::int32_t closedVectorPath::ID; + +void closedVectorPath::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "closedVectorPath"); + { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +connectedWebsite::connectedWebsite() + : id_() + , domain_name_() + , bot_user_id_() + , browser_() + , platform_() + , log_in_date_() + , last_active_date_() + , ip_() + , location_() +{} + +connectedWebsite::connectedWebsite(int64 id_, string const &domain_name_, int53 bot_user_id_, string const &browser_, string const &platform_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &location_) + : id_(id_) + , domain_name_(domain_name_) + , bot_user_id_(bot_user_id_) + , browser_(browser_) + , platform_(platform_) + , log_in_date_(log_in_date_) + , last_active_date_(last_active_date_) + , ip_(ip_) + , location_(location_) +{} + +const std::int32_t connectedWebsite::ID; + +void connectedWebsite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "connectedWebsite"); + s.store_field("id", id_); + s.store_field("domain_name", domain_name_); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("browser", browser_); + s.store_field("platform", platform_); + s.store_field("log_in_date", log_in_date_); + s.store_field("last_active_date", last_active_date_); + s.store_field("ip", ip_); + s.store_field("location", location_); + s.store_class_end(); + } +} + +connectedWebsites::connectedWebsites() + : websites_() +{} + +connectedWebsites::connectedWebsites(array<object_ptr<connectedWebsite>> &&websites_) + : websites_(std::move(websites_)) +{} + +const std::int32_t connectedWebsites::ID; + +void connectedWebsites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "connectedWebsites"); + { s.store_vector_begin("websites", websites_.size()); for (const auto &_value : websites_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +connectionStateWaitingForNetwork::connectionStateWaitingForNetwork() { +} + +const std::int32_t connectionStateWaitingForNetwork::ID; + +void connectionStateWaitingForNetwork::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "connectionStateWaitingForNetwork"); + s.store_class_end(); + } +} + +connectionStateConnectingToProxy::connectionStateConnectingToProxy() { +} + +const std::int32_t connectionStateConnectingToProxy::ID; + +void connectionStateConnectingToProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "connectionStateConnectingToProxy"); + s.store_class_end(); + } +} + +connectionStateConnecting::connectionStateConnecting() { +} + +const std::int32_t connectionStateConnecting::ID; + +void connectionStateConnecting::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "connectionStateConnecting"); + s.store_class_end(); + } +} + +connectionStateUpdating::connectionStateUpdating() { +} + +const std::int32_t connectionStateUpdating::ID; + +void connectionStateUpdating::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "connectionStateUpdating"); + s.store_class_end(); + } +} + +connectionStateReady::connectionStateReady() { +} + +const std::int32_t connectionStateReady::ID; + +void connectionStateReady::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "connectionStateReady"); + s.store_class_end(); + } +} + +contact::contact() + : phone_number_() + , first_name_() + , last_name_() + , vcard_() + , user_id_() +{} + +contact::contact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, int53 user_id_) + : phone_number_(phone_number_) + , first_name_(first_name_) + , last_name_(last_name_) + , vcard_(vcard_) + , user_id_(user_id_) +{} + +const std::int32_t contact::ID; + +void contact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contact"); + s.store_field("phone_number", phone_number_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("vcard", vcard_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +count::count() + : count_() +{} + +count::count(int32 count_) + : count_(count_) +{} + +const std::int32_t count::ID; + +void count::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "count"); + s.store_field("count", count_); + s.store_class_end(); + } +} + +countries::countries() + : countries_() +{} + +countries::countries(array<object_ptr<countryInfo>> &&countries_) + : countries_(std::move(countries_)) +{} + +const std::int32_t countries::ID; + +void countries::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "countries"); + { s.store_vector_begin("countries", countries_.size()); for (const auto &_value : countries_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +countryInfo::countryInfo() + : country_code_() + , name_() + , english_name_() + , is_hidden_() + , calling_codes_() +{} + +countryInfo::countryInfo(string const &country_code_, string const &name_, string const &english_name_, bool is_hidden_, array<string> &&calling_codes_) + : country_code_(country_code_) + , name_(name_) + , english_name_(english_name_) + , is_hidden_(is_hidden_) + , calling_codes_(std::move(calling_codes_)) +{} + +const std::int32_t countryInfo::ID; + +void countryInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "countryInfo"); + s.store_field("country_code", country_code_); + s.store_field("name", name_); + s.store_field("english_name", english_name_); + s.store_field("is_hidden", is_hidden_); + { s.store_vector_begin("calling_codes", calling_codes_.size()); for (const auto &_value : calling_codes_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +customRequestResult::customRequestResult() + : result_() +{} + +customRequestResult::customRequestResult(string const &result_) + : result_(result_) +{} + +const std::int32_t customRequestResult::ID; + +void customRequestResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "customRequestResult"); + s.store_field("result", result_); + s.store_class_end(); + } +} + +databaseStatistics::databaseStatistics() + : statistics_() +{} + +databaseStatistics::databaseStatistics(string const &statistics_) + : statistics_(statistics_) +{} + +const std::int32_t databaseStatistics::ID; + +void databaseStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "databaseStatistics"); + s.store_field("statistics", statistics_); + s.store_class_end(); + } +} + +date::date() + : day_() + , month_() + , year_() +{} + +date::date(int32 day_, int32 month_, int32 year_) + : day_(day_) + , month_(month_) + , year_(year_) +{} + +const std::int32_t date::ID; + +void date::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "date"); + s.store_field("day", day_); + s.store_field("month", month_); + s.store_field("year", year_); + s.store_class_end(); + } +} + +dateRange::dateRange() + : start_date_() + , end_date_() +{} + +dateRange::dateRange(int32 start_date_, int32 end_date_) + : start_date_(start_date_) + , end_date_(end_date_) +{} + +const std::int32_t dateRange::ID; + +void dateRange::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dateRange"); + s.store_field("start_date", start_date_); + s.store_field("end_date", end_date_); + s.store_class_end(); + } +} + +datedFile::datedFile() + : file_() + , date_() +{} + +datedFile::datedFile(object_ptr<file> &&file_, int32 date_) + : file_(std::move(file_)) + , date_(date_) +{} + +const std::int32_t datedFile::ID; + +void datedFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "datedFile"); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_field("date", date_); + s.store_class_end(); + } +} + +deepLinkInfo::deepLinkInfo() + : text_() + , need_update_application_() +{} + +deepLinkInfo::deepLinkInfo(object_ptr<formattedText> &&text_, bool need_update_application_) + : text_(std::move(text_)) + , need_update_application_(need_update_application_) +{} + +const std::int32_t deepLinkInfo::ID; + +void deepLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deepLinkInfo"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("need_update_application", need_update_application_); + s.store_class_end(); + } +} + +deviceTokenFirebaseCloudMessaging::deviceTokenFirebaseCloudMessaging() + : token_() + , encrypt_() +{} + +deviceTokenFirebaseCloudMessaging::deviceTokenFirebaseCloudMessaging(string const &token_, bool encrypt_) + : token_(token_) + , encrypt_(encrypt_) +{} + +const std::int32_t deviceTokenFirebaseCloudMessaging::ID; + +void deviceTokenFirebaseCloudMessaging::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenFirebaseCloudMessaging"); + s.store_field("token", token_); + s.store_field("encrypt", encrypt_); + s.store_class_end(); + } +} + +deviceTokenApplePush::deviceTokenApplePush() + : device_token_() + , is_app_sandbox_() +{} + +deviceTokenApplePush::deviceTokenApplePush(string const &device_token_, bool is_app_sandbox_) + : device_token_(device_token_) + , is_app_sandbox_(is_app_sandbox_) +{} + +const std::int32_t deviceTokenApplePush::ID; + +void deviceTokenApplePush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenApplePush"); + s.store_field("device_token", device_token_); + s.store_field("is_app_sandbox", is_app_sandbox_); + s.store_class_end(); + } +} + +deviceTokenApplePushVoIP::deviceTokenApplePushVoIP() + : device_token_() + , is_app_sandbox_() + , encrypt_() +{} + +deviceTokenApplePushVoIP::deviceTokenApplePushVoIP(string const &device_token_, bool is_app_sandbox_, bool encrypt_) + : device_token_(device_token_) + , is_app_sandbox_(is_app_sandbox_) + , encrypt_(encrypt_) +{} + +const std::int32_t deviceTokenApplePushVoIP::ID; + +void deviceTokenApplePushVoIP::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenApplePushVoIP"); + s.store_field("device_token", device_token_); + s.store_field("is_app_sandbox", is_app_sandbox_); + s.store_field("encrypt", encrypt_); + s.store_class_end(); + } +} + +deviceTokenWindowsPush::deviceTokenWindowsPush() + : access_token_() +{} + +deviceTokenWindowsPush::deviceTokenWindowsPush(string const &access_token_) + : access_token_(access_token_) +{} + +const std::int32_t deviceTokenWindowsPush::ID; + +void deviceTokenWindowsPush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenWindowsPush"); + s.store_field("access_token", access_token_); + s.store_class_end(); + } +} + +deviceTokenMicrosoftPush::deviceTokenMicrosoftPush() + : channel_uri_() +{} + +deviceTokenMicrosoftPush::deviceTokenMicrosoftPush(string const &channel_uri_) + : channel_uri_(channel_uri_) +{} + +const std::int32_t deviceTokenMicrosoftPush::ID; + +void deviceTokenMicrosoftPush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenMicrosoftPush"); + s.store_field("channel_uri", channel_uri_); + s.store_class_end(); + } +} + +deviceTokenMicrosoftPushVoIP::deviceTokenMicrosoftPushVoIP() + : channel_uri_() +{} + +deviceTokenMicrosoftPushVoIP::deviceTokenMicrosoftPushVoIP(string const &channel_uri_) + : channel_uri_(channel_uri_) +{} + +const std::int32_t deviceTokenMicrosoftPushVoIP::ID; + +void deviceTokenMicrosoftPushVoIP::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenMicrosoftPushVoIP"); + s.store_field("channel_uri", channel_uri_); + s.store_class_end(); + } +} + +deviceTokenWebPush::deviceTokenWebPush() + : endpoint_() + , p256dh_base64url_() + , auth_base64url_() +{} + +deviceTokenWebPush::deviceTokenWebPush(string const &endpoint_, string const &p256dh_base64url_, string const &auth_base64url_) + : endpoint_(endpoint_) + , p256dh_base64url_(p256dh_base64url_) + , auth_base64url_(auth_base64url_) +{} + +const std::int32_t deviceTokenWebPush::ID; + +void deviceTokenWebPush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenWebPush"); + s.store_field("endpoint", endpoint_); + s.store_field("p256dh_base64url", p256dh_base64url_); + s.store_field("auth_base64url", auth_base64url_); + s.store_class_end(); + } +} + +deviceTokenSimplePush::deviceTokenSimplePush() + : endpoint_() +{} + +deviceTokenSimplePush::deviceTokenSimplePush(string const &endpoint_) + : endpoint_(endpoint_) +{} + +const std::int32_t deviceTokenSimplePush::ID; + +void deviceTokenSimplePush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenSimplePush"); + s.store_field("endpoint", endpoint_); + s.store_class_end(); + } +} + +deviceTokenUbuntuPush::deviceTokenUbuntuPush() + : token_() +{} + +deviceTokenUbuntuPush::deviceTokenUbuntuPush(string const &token_) + : token_(token_) +{} + +const std::int32_t deviceTokenUbuntuPush::ID; + +void deviceTokenUbuntuPush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenUbuntuPush"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +deviceTokenBlackBerryPush::deviceTokenBlackBerryPush() + : token_() +{} + +deviceTokenBlackBerryPush::deviceTokenBlackBerryPush(string const &token_) + : token_(token_) +{} + +const std::int32_t deviceTokenBlackBerryPush::ID; + +void deviceTokenBlackBerryPush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenBlackBerryPush"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +deviceTokenTizenPush::deviceTokenTizenPush() + : reg_id_() +{} + +deviceTokenTizenPush::deviceTokenTizenPush(string const ®_id_) + : reg_id_(reg_id_) +{} + +const std::int32_t deviceTokenTizenPush::ID; + +void deviceTokenTizenPush::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deviceTokenTizenPush"); + s.store_field("reg_id", reg_id_); + s.store_class_end(); + } +} + +diceStickersRegular::diceStickersRegular() + : sticker_() +{} + +diceStickersRegular::diceStickersRegular(object_ptr<sticker> &&sticker_) + : sticker_(std::move(sticker_)) +{} + +const std::int32_t diceStickersRegular::ID; + +void diceStickersRegular::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "diceStickersRegular"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +diceStickersSlotMachine::diceStickersSlotMachine() + : background_() + , lever_() + , left_reel_() + , center_reel_() + , right_reel_() +{} + +diceStickersSlotMachine::diceStickersSlotMachine(object_ptr<sticker> &&background_, object_ptr<sticker> &&lever_, object_ptr<sticker> &&left_reel_, object_ptr<sticker> &¢er_reel_, object_ptr<sticker> &&right_reel_) + : background_(std::move(background_)) + , lever_(std::move(lever_)) + , left_reel_(std::move(left_reel_)) + , center_reel_(std::move(center_reel_)) + , right_reel_(std::move(right_reel_)) +{} + +const std::int32_t diceStickersSlotMachine::ID; + +void diceStickersSlotMachine::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "diceStickersSlotMachine"); + s.store_object_field("background", static_cast<const BaseObject *>(background_.get())); + s.store_object_field("lever", static_cast<const BaseObject *>(lever_.get())); + s.store_object_field("left_reel", static_cast<const BaseObject *>(left_reel_.get())); + s.store_object_field("center_reel", static_cast<const BaseObject *>(center_reel_.get())); + s.store_object_field("right_reel", static_cast<const BaseObject *>(right_reel_.get())); + s.store_class_end(); + } +} + +document::document() + : file_name_() + , mime_type_() + , minithumbnail_() + , thumbnail_() + , document_() +{} + +document::document(string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&document_) + : file_name_(file_name_) + , mime_type_(mime_type_) + , minithumbnail_(std::move(minithumbnail_)) + , thumbnail_(std::move(thumbnail_)) + , document_(std::move(document_)) +{} + +const std::int32_t document::ID; + +void document::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "document"); + s.store_field("file_name", file_name_); + s.store_field("mime_type", mime_type_); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_class_end(); + } +} + +downloadedFileCounts::downloadedFileCounts() + : active_count_() + , paused_count_() + , completed_count_() +{} + +downloadedFileCounts::downloadedFileCounts(int32 active_count_, int32 paused_count_, int32 completed_count_) + : active_count_(active_count_) + , paused_count_(paused_count_) + , completed_count_(completed_count_) +{} + +const std::int32_t downloadedFileCounts::ID; + +void downloadedFileCounts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "downloadedFileCounts"); + s.store_field("active_count", active_count_); + s.store_field("paused_count", paused_count_); + s.store_field("completed_count", completed_count_); + s.store_class_end(); + } +} + +draftMessage::draftMessage() + : reply_to_message_id_() + , date_() + , input_message_text_() +{} + +draftMessage::draftMessage(int53 reply_to_message_id_, int32 date_, object_ptr<InputMessageContent> &&input_message_text_) + : reply_to_message_id_(reply_to_message_id_) + , date_(date_) + , input_message_text_(std::move(input_message_text_)) +{} + +const std::int32_t draftMessage::ID; + +void draftMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "draftMessage"); + s.store_field("reply_to_message_id", reply_to_message_id_); + s.store_field("date", date_); + s.store_object_field("input_message_text", static_cast<const BaseObject *>(input_message_text_.get())); + s.store_class_end(); + } +} + +emailAddressAuthenticationCode::emailAddressAuthenticationCode() + : code_() +{} + +emailAddressAuthenticationCode::emailAddressAuthenticationCode(string const &code_) + : code_(code_) +{} + +const std::int32_t emailAddressAuthenticationCode::ID; + +void emailAddressAuthenticationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailAddressAuthenticationCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +emailAddressAuthenticationAppleId::emailAddressAuthenticationAppleId() + : token_() +{} + +emailAddressAuthenticationAppleId::emailAddressAuthenticationAppleId(string const &token_) + : token_(token_) +{} + +const std::int32_t emailAddressAuthenticationAppleId::ID; + +void emailAddressAuthenticationAppleId::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailAddressAuthenticationAppleId"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +emailAddressAuthenticationGoogleId::emailAddressAuthenticationGoogleId() + : token_() +{} + +emailAddressAuthenticationGoogleId::emailAddressAuthenticationGoogleId(string const &token_) + : token_(token_) +{} + +const std::int32_t emailAddressAuthenticationGoogleId::ID; + +void emailAddressAuthenticationGoogleId::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailAddressAuthenticationGoogleId"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +emailAddressAuthenticationCodeInfo::emailAddressAuthenticationCodeInfo() + : email_address_pattern_() + , length_() +{} + +emailAddressAuthenticationCodeInfo::emailAddressAuthenticationCodeInfo(string const &email_address_pattern_, int32 length_) + : email_address_pattern_(email_address_pattern_) + , length_(length_) +{} + +const std::int32_t emailAddressAuthenticationCodeInfo::ID; + +void emailAddressAuthenticationCodeInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailAddressAuthenticationCodeInfo"); + s.store_field("email_address_pattern", email_address_pattern_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +emojiReaction::emojiReaction() + : emoji_() + , title_() + , is_active_() + , static_icon_() + , appear_animation_() + , select_animation_() + , activate_animation_() + , effect_animation_() + , around_animation_() + , center_animation_() +{} + +emojiReaction::emojiReaction(string const &emoji_, string const &title_, bool is_active_, object_ptr<sticker> &&static_icon_, object_ptr<sticker> &&appear_animation_, object_ptr<sticker> &&select_animation_, object_ptr<sticker> &&activate_animation_, object_ptr<sticker> &&effect_animation_, object_ptr<sticker> &&around_animation_, object_ptr<sticker> &¢er_animation_) + : emoji_(emoji_) + , title_(title_) + , is_active_(is_active_) + , static_icon_(std::move(static_icon_)) + , appear_animation_(std::move(appear_animation_)) + , select_animation_(std::move(select_animation_)) + , activate_animation_(std::move(activate_animation_)) + , effect_animation_(std::move(effect_animation_)) + , around_animation_(std::move(around_animation_)) + , center_animation_(std::move(center_animation_)) +{} + +const std::int32_t emojiReaction::ID; + +void emojiReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiReaction"); + s.store_field("emoji", emoji_); + s.store_field("title", title_); + s.store_field("is_active", is_active_); + s.store_object_field("static_icon", static_cast<const BaseObject *>(static_icon_.get())); + s.store_object_field("appear_animation", static_cast<const BaseObject *>(appear_animation_.get())); + s.store_object_field("select_animation", static_cast<const BaseObject *>(select_animation_.get())); + s.store_object_field("activate_animation", static_cast<const BaseObject *>(activate_animation_.get())); + s.store_object_field("effect_animation", static_cast<const BaseObject *>(effect_animation_.get())); + s.store_object_field("around_animation", static_cast<const BaseObject *>(around_animation_.get())); + s.store_object_field("center_animation", static_cast<const BaseObject *>(center_animation_.get())); + s.store_class_end(); + } +} + +emojiStatus::emojiStatus() + : custom_emoji_id_() +{} + +emojiStatus::emojiStatus(int64 custom_emoji_id_) + : custom_emoji_id_(custom_emoji_id_) +{} + +const std::int32_t emojiStatus::ID; + +void emojiStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiStatus"); + s.store_field("custom_emoji_id", custom_emoji_id_); + s.store_class_end(); + } +} + +emojiStatuses::emojiStatuses() + : emoji_statuses_() +{} + +emojiStatuses::emojiStatuses(array<object_ptr<emojiStatus>> &&emoji_statuses_) + : emoji_statuses_(std::move(emoji_statuses_)) +{} + +const std::int32_t emojiStatuses::ID; + +void emojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiStatuses"); + { s.store_vector_begin("emoji_statuses", emoji_statuses_.size()); for (const auto &_value : emoji_statuses_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +emojis::emojis() + : emojis_() +{} + +emojis::emojis(array<string> &&emojis_) + : emojis_(std::move(emojis_)) +{} + +const std::int32_t emojis::ID; + +void emojis::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojis"); + { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +encryptedCredentials::encryptedCredentials() + : data_() + , hash_() + , secret_() +{} + +encryptedCredentials::encryptedCredentials(bytes const &data_, bytes const &hash_, bytes const &secret_) + : data_(std::move(data_)) + , hash_(std::move(hash_)) + , secret_(std::move(secret_)) +{} + +const std::int32_t encryptedCredentials::ID; + +void encryptedCredentials::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedCredentials"); + s.store_bytes_field("data", data_); + s.store_bytes_field("hash", hash_); + s.store_bytes_field("secret", secret_); + s.store_class_end(); + } +} + +encryptedPassportElement::encryptedPassportElement() + : type_() + , data_() + , front_side_() + , reverse_side_() + , selfie_() + , translation_() + , files_() + , value_() + , hash_() +{} + +encryptedPassportElement::encryptedPassportElement(object_ptr<PassportElementType> &&type_, bytes const &data_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_, array<object_ptr<datedFile>> &&files_, string const &value_, string const &hash_) + : type_(std::move(type_)) + , data_(std::move(data_)) + , front_side_(std::move(front_side_)) + , reverse_side_(std::move(reverse_side_)) + , selfie_(std::move(selfie_)) + , translation_(std::move(translation_)) + , files_(std::move(files_)) + , value_(value_) + , hash_(hash_) +{} + +const std::int32_t encryptedPassportElement::ID; + +void encryptedPassportElement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedPassportElement"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("data", data_); + s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get())); + s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get())); + s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get())); + { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("value", value_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +error::error() + : code_() + , message_() +{} + +error::error(int32 code_, string const &message_) + : code_(code_) + , message_(message_) +{} + +const std::int32_t error::ID; + +void error::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "error"); + s.store_field("code", code_); + s.store_field("message", message_); + s.store_class_end(); + } +} + +file::file() + : id_() + , size_() + , expected_size_() + , local_() + , remote_() +{} + +file::file(int32 id_, int53 size_, int53 expected_size_, object_ptr<localFile> &&local_, object_ptr<remoteFile> &&remote_) + : id_(id_) + , size_(size_) + , expected_size_(expected_size_) + , local_(std::move(local_)) + , remote_(std::move(remote_)) +{} + +const std::int32_t file::ID; + +void file::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "file"); + s.store_field("id", id_); + s.store_field("size", size_); + s.store_field("expected_size", expected_size_); + s.store_object_field("local", static_cast<const BaseObject *>(local_.get())); + s.store_object_field("remote", static_cast<const BaseObject *>(remote_.get())); + s.store_class_end(); + } +} + +fileDownload::fileDownload() + : file_id_() + , message_() + , add_date_() + , complete_date_() + , is_paused_() +{} + +fileDownload::fileDownload(int32 file_id_, object_ptr<message> &&message_, int32 add_date_, int32 complete_date_, bool is_paused_) + : file_id_(file_id_) + , message_(std::move(message_)) + , add_date_(add_date_) + , complete_date_(complete_date_) + , is_paused_(is_paused_) +{} + +const std::int32_t fileDownload::ID; + +void fileDownload::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileDownload"); + s.store_field("file_id", file_id_); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("add_date", add_date_); + s.store_field("complete_date", complete_date_); + s.store_field("is_paused", is_paused_); + s.store_class_end(); + } +} + +fileDownloadedPrefixSize::fileDownloadedPrefixSize() + : size_() +{} + +fileDownloadedPrefixSize::fileDownloadedPrefixSize(int53 size_) + : size_(size_) +{} + +const std::int32_t fileDownloadedPrefixSize::ID; + +void fileDownloadedPrefixSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileDownloadedPrefixSize"); + s.store_field("size", size_); + s.store_class_end(); + } +} + +filePart::filePart() + : data_() +{} + +filePart::filePart(bytes const &data_) + : data_(std::move(data_)) +{} + +const std::int32_t filePart::ID; + +void filePart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "filePart"); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +fileTypeNone::fileTypeNone() { +} + +const std::int32_t fileTypeNone::ID; + +void fileTypeNone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeNone"); + s.store_class_end(); + } +} + +fileTypeAnimation::fileTypeAnimation() { +} + +const std::int32_t fileTypeAnimation::ID; + +void fileTypeAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeAnimation"); + s.store_class_end(); + } +} + +fileTypeAudio::fileTypeAudio() { +} + +const std::int32_t fileTypeAudio::ID; + +void fileTypeAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeAudio"); + s.store_class_end(); + } +} + +fileTypeDocument::fileTypeDocument() { +} + +const std::int32_t fileTypeDocument::ID; + +void fileTypeDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeDocument"); + s.store_class_end(); + } +} + +fileTypeNotificationSound::fileTypeNotificationSound() { +} + +const std::int32_t fileTypeNotificationSound::ID; + +void fileTypeNotificationSound::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeNotificationSound"); + s.store_class_end(); + } +} + +fileTypePhoto::fileTypePhoto() { +} + +const std::int32_t fileTypePhoto::ID; + +void fileTypePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypePhoto"); + s.store_class_end(); + } +} + +fileTypeProfilePhoto::fileTypeProfilePhoto() { +} + +const std::int32_t fileTypeProfilePhoto::ID; + +void fileTypeProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeProfilePhoto"); + s.store_class_end(); + } +} + +fileTypeSecret::fileTypeSecret() { +} + +const std::int32_t fileTypeSecret::ID; + +void fileTypeSecret::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeSecret"); + s.store_class_end(); + } +} + +fileTypeSecretThumbnail::fileTypeSecretThumbnail() { +} + +const std::int32_t fileTypeSecretThumbnail::ID; + +void fileTypeSecretThumbnail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeSecretThumbnail"); + s.store_class_end(); + } +} + +fileTypeSecure::fileTypeSecure() { +} + +const std::int32_t fileTypeSecure::ID; + +void fileTypeSecure::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeSecure"); + s.store_class_end(); + } +} + +fileTypeSticker::fileTypeSticker() { +} + +const std::int32_t fileTypeSticker::ID; + +void fileTypeSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeSticker"); + s.store_class_end(); + } +} + +fileTypeThumbnail::fileTypeThumbnail() { +} + +const std::int32_t fileTypeThumbnail::ID; + +void fileTypeThumbnail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeThumbnail"); + s.store_class_end(); + } +} + +fileTypeUnknown::fileTypeUnknown() { +} + +const std::int32_t fileTypeUnknown::ID; + +void fileTypeUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeUnknown"); + s.store_class_end(); + } +} + +fileTypeVideo::fileTypeVideo() { +} + +const std::int32_t fileTypeVideo::ID; + +void fileTypeVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeVideo"); + s.store_class_end(); + } +} + +fileTypeVideoNote::fileTypeVideoNote() { +} + +const std::int32_t fileTypeVideoNote::ID; + +void fileTypeVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeVideoNote"); + s.store_class_end(); + } +} + +fileTypeVoiceNote::fileTypeVoiceNote() { +} + +const std::int32_t fileTypeVoiceNote::ID; + +void fileTypeVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeVoiceNote"); + s.store_class_end(); + } +} + +fileTypeWallpaper::fileTypeWallpaper() { +} + +const std::int32_t fileTypeWallpaper::ID; + +void fileTypeWallpaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileTypeWallpaper"); + s.store_class_end(); + } +} + +formattedText::formattedText() + : text_() + , entities_() +{} + +formattedText::formattedText(string const &text_, array<object_ptr<textEntity>> &&entities_) + : text_(text_) + , entities_(std::move(entities_)) +{} + +const std::int32_t formattedText::ID; + +void formattedText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "formattedText"); + s.store_field("text", text_); + { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +forumTopic::forumTopic() + : info_() + , last_message_() + , is_pinned_() + , unread_count_() + , last_read_inbox_message_id_() + , last_read_outbox_message_id_() + , unread_mention_count_() + , unread_reaction_count_() + , notification_settings_() + , draft_message_() +{} + +forumTopic::forumTopic(object_ptr<forumTopicInfo> &&info_, object_ptr<message> &&last_message_, bool is_pinned_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &¬ification_settings_, object_ptr<draftMessage> &&draft_message_) + : info_(std::move(info_)) + , last_message_(std::move(last_message_)) + , is_pinned_(is_pinned_) + , unread_count_(unread_count_) + , last_read_inbox_message_id_(last_read_inbox_message_id_) + , last_read_outbox_message_id_(last_read_outbox_message_id_) + , unread_mention_count_(unread_mention_count_) + , unread_reaction_count_(unread_reaction_count_) + , notification_settings_(std::move(notification_settings_)) + , draft_message_(std::move(draft_message_)) +{} + +const std::int32_t forumTopic::ID; + +void forumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "forumTopic"); + s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); + s.store_object_field("last_message", static_cast<const BaseObject *>(last_message_.get())); + s.store_field("is_pinned", is_pinned_); + s.store_field("unread_count", unread_count_); + s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_); + s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_); + s.store_field("unread_mention_count", unread_mention_count_); + s.store_field("unread_reaction_count", unread_reaction_count_); + s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get())); + s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get())); + s.store_class_end(); + } +} + +forumTopicIcon::forumTopicIcon() + : color_() + , custom_emoji_id_() +{} + +forumTopicIcon::forumTopicIcon(int32 color_, int64 custom_emoji_id_) + : color_(color_) + , custom_emoji_id_(custom_emoji_id_) +{} + +const std::int32_t forumTopicIcon::ID; + +void forumTopicIcon::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "forumTopicIcon"); + s.store_field("color", color_); + s.store_field("custom_emoji_id", custom_emoji_id_); + s.store_class_end(); + } +} + +forumTopicInfo::forumTopicInfo() + : message_thread_id_() + , name_() + , icon_() + , creation_date_() + , creator_id_() + , is_outgoing_() + , is_closed_() +{} + +forumTopicInfo::forumTopicInfo(int53 message_thread_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_, int32 creation_date_, object_ptr<MessageSender> &&creator_id_, bool is_outgoing_, bool is_closed_) + : message_thread_id_(message_thread_id_) + , name_(name_) + , icon_(std::move(icon_)) + , creation_date_(creation_date_) + , creator_id_(std::move(creator_id_)) + , is_outgoing_(is_outgoing_) + , is_closed_(is_closed_) +{} + +const std::int32_t forumTopicInfo::ID; + +void forumTopicInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "forumTopicInfo"); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("name", name_); + s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get())); + s.store_field("creation_date", creation_date_); + s.store_object_field("creator_id", static_cast<const BaseObject *>(creator_id_.get())); + s.store_field("is_outgoing", is_outgoing_); + s.store_field("is_closed", is_closed_); + s.store_class_end(); + } +} + +foundFileDownloads::foundFileDownloads() + : total_counts_() + , files_() + , next_offset_() +{} + +foundFileDownloads::foundFileDownloads(object_ptr<downloadedFileCounts> &&total_counts_, array<object_ptr<fileDownload>> &&files_, string const &next_offset_) + : total_counts_(std::move(total_counts_)) + , files_(std::move(files_)) + , next_offset_(next_offset_) +{} + +const std::int32_t foundFileDownloads::ID; + +void foundFileDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "foundFileDownloads"); + s.store_object_field("total_counts", static_cast<const BaseObject *>(total_counts_.get())); + { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("next_offset", next_offset_); + s.store_class_end(); + } +} + +foundMessages::foundMessages() + : total_count_() + , messages_() + , next_offset_() +{} + +foundMessages::foundMessages(int32 total_count_, array<object_ptr<message>> &&messages_, string const &next_offset_) + : total_count_(total_count_) + , messages_(std::move(messages_)) + , next_offset_(next_offset_) +{} + +const std::int32_t foundMessages::ID; + +void foundMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "foundMessages"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("next_offset", next_offset_); + s.store_class_end(); + } +} + +game::game() + : id_() + , short_name_() + , title_() + , text_() + , description_() + , photo_() + , animation_() +{} + +game::game(int64 id_, string const &short_name_, string const &title_, object_ptr<formattedText> &&text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_) + : id_(id_) + , short_name_(short_name_) + , title_(title_) + , text_(std::move(text_)) + , description_(description_) + , photo_(std::move(photo_)) + , animation_(std::move(animation_)) +{} + +const std::int32_t game::ID; + +void game::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "game"); + s.store_field("id", id_); + s.store_field("short_name", short_name_); + s.store_field("title", title_); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("description", description_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_class_end(); + } +} + +gameHighScore::gameHighScore() + : position_() + , user_id_() + , score_() +{} + +gameHighScore::gameHighScore(int32 position_, int53 user_id_, int32 score_) + : position_(position_) + , user_id_(user_id_) + , score_(score_) +{} + +const std::int32_t gameHighScore::ID; + +void gameHighScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "gameHighScore"); + s.store_field("position", position_); + s.store_field("user_id", user_id_); + s.store_field("score", score_); + s.store_class_end(); + } +} + +gameHighScores::gameHighScores() + : scores_() +{} + +gameHighScores::gameHighScores(array<object_ptr<gameHighScore>> &&scores_) + : scores_(std::move(scores_)) +{} + +const std::int32_t gameHighScores::ID; + +void gameHighScores::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "gameHighScores"); + { s.store_vector_begin("scores", scores_.size()); for (const auto &_value : scores_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +groupCall::groupCall() + : id_() + , title_() + , scheduled_start_date_() + , enabled_start_notification_() + , is_active_() + , is_rtmp_stream_() + , is_joined_() + , need_rejoin_() + , can_be_managed_() + , participant_count_() + , has_hidden_listeners_() + , loaded_all_participants_() + , recent_speakers_() + , is_my_video_enabled_() + , is_my_video_paused_() + , can_enable_video_() + , mute_new_participants_() + , can_toggle_mute_new_participants_() + , record_duration_() + , is_video_recorded_() + , duration_() +{} + +groupCall::groupCall(int32 id_, string const &title_, int32 scheduled_start_date_, bool enabled_start_notification_, bool is_active_, bool is_rtmp_stream_, bool is_joined_, bool need_rejoin_, bool can_be_managed_, int32 participant_count_, bool has_hidden_listeners_, bool loaded_all_participants_, array<object_ptr<groupCallRecentSpeaker>> &&recent_speakers_, bool is_my_video_enabled_, bool is_my_video_paused_, bool can_enable_video_, bool mute_new_participants_, bool can_toggle_mute_new_participants_, int32 record_duration_, bool is_video_recorded_, int32 duration_) + : id_(id_) + , title_(title_) + , scheduled_start_date_(scheduled_start_date_) + , enabled_start_notification_(enabled_start_notification_) + , is_active_(is_active_) + , is_rtmp_stream_(is_rtmp_stream_) + , is_joined_(is_joined_) + , need_rejoin_(need_rejoin_) + , can_be_managed_(can_be_managed_) + , participant_count_(participant_count_) + , has_hidden_listeners_(has_hidden_listeners_) + , loaded_all_participants_(loaded_all_participants_) + , recent_speakers_(std::move(recent_speakers_)) + , is_my_video_enabled_(is_my_video_enabled_) + , is_my_video_paused_(is_my_video_paused_) + , can_enable_video_(can_enable_video_) + , mute_new_participants_(mute_new_participants_) + , can_toggle_mute_new_participants_(can_toggle_mute_new_participants_) + , record_duration_(record_duration_) + , is_video_recorded_(is_video_recorded_) + , duration_(duration_) +{} + +const std::int32_t groupCall::ID; + +void groupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCall"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("scheduled_start_date", scheduled_start_date_); + s.store_field("enabled_start_notification", enabled_start_notification_); + s.store_field("is_active", is_active_); + s.store_field("is_rtmp_stream", is_rtmp_stream_); + s.store_field("is_joined", is_joined_); + s.store_field("need_rejoin", need_rejoin_); + s.store_field("can_be_managed", can_be_managed_); + s.store_field("participant_count", participant_count_); + s.store_field("has_hidden_listeners", has_hidden_listeners_); + s.store_field("loaded_all_participants", loaded_all_participants_); + { s.store_vector_begin("recent_speakers", recent_speakers_.size()); for (const auto &_value : recent_speakers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("is_my_video_enabled", is_my_video_enabled_); + s.store_field("is_my_video_paused", is_my_video_paused_); + s.store_field("can_enable_video", can_enable_video_); + s.store_field("mute_new_participants", mute_new_participants_); + s.store_field("can_toggle_mute_new_participants", can_toggle_mute_new_participants_); + s.store_field("record_duration", record_duration_); + s.store_field("is_video_recorded", is_video_recorded_); + s.store_field("duration", duration_); + s.store_class_end(); + } +} + +groupCallId::groupCallId() + : id_() +{} + +groupCallId::groupCallId(int32 id_) + : id_(id_) +{} + +const std::int32_t groupCallId::ID; + +void groupCallId::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallId"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +groupCallParticipant::groupCallParticipant() + : participant_id_() + , audio_source_id_() + , screen_sharing_audio_source_id_() + , video_info_() + , screen_sharing_video_info_() + , bio_() + , is_current_user_() + , is_speaking_() + , is_hand_raised_() + , can_be_muted_for_all_users_() + , can_be_unmuted_for_all_users_() + , can_be_muted_for_current_user_() + , can_be_unmuted_for_current_user_() + , is_muted_for_all_users_() + , is_muted_for_current_user_() + , can_unmute_self_() + , volume_level_() + , order_() +{} + +groupCallParticipant::groupCallParticipant(object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, int32 screen_sharing_audio_source_id_, object_ptr<groupCallParticipantVideoInfo> &&video_info_, object_ptr<groupCallParticipantVideoInfo> &&screen_sharing_video_info_, string const &bio_, bool is_current_user_, bool is_speaking_, bool is_hand_raised_, bool can_be_muted_for_all_users_, bool can_be_unmuted_for_all_users_, bool can_be_muted_for_current_user_, bool can_be_unmuted_for_current_user_, bool is_muted_for_all_users_, bool is_muted_for_current_user_, bool can_unmute_self_, int32 volume_level_, string const &order_) + : participant_id_(std::move(participant_id_)) + , audio_source_id_(audio_source_id_) + , screen_sharing_audio_source_id_(screen_sharing_audio_source_id_) + , video_info_(std::move(video_info_)) + , screen_sharing_video_info_(std::move(screen_sharing_video_info_)) + , bio_(bio_) + , is_current_user_(is_current_user_) + , is_speaking_(is_speaking_) + , is_hand_raised_(is_hand_raised_) + , can_be_muted_for_all_users_(can_be_muted_for_all_users_) + , can_be_unmuted_for_all_users_(can_be_unmuted_for_all_users_) + , can_be_muted_for_current_user_(can_be_muted_for_current_user_) + , can_be_unmuted_for_current_user_(can_be_unmuted_for_current_user_) + , is_muted_for_all_users_(is_muted_for_all_users_) + , is_muted_for_current_user_(is_muted_for_current_user_) + , can_unmute_self_(can_unmute_self_) + , volume_level_(volume_level_) + , order_(order_) +{} + +const std::int32_t groupCallParticipant::ID; + +void groupCallParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallParticipant"); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("audio_source_id", audio_source_id_); + s.store_field("screen_sharing_audio_source_id", screen_sharing_audio_source_id_); + s.store_object_field("video_info", static_cast<const BaseObject *>(video_info_.get())); + s.store_object_field("screen_sharing_video_info", static_cast<const BaseObject *>(screen_sharing_video_info_.get())); + s.store_field("bio", bio_); + s.store_field("is_current_user", is_current_user_); + s.store_field("is_speaking", is_speaking_); + s.store_field("is_hand_raised", is_hand_raised_); + s.store_field("can_be_muted_for_all_users", can_be_muted_for_all_users_); + s.store_field("can_be_unmuted_for_all_users", can_be_unmuted_for_all_users_); + s.store_field("can_be_muted_for_current_user", can_be_muted_for_current_user_); + s.store_field("can_be_unmuted_for_current_user", can_be_unmuted_for_current_user_); + s.store_field("is_muted_for_all_users", is_muted_for_all_users_); + s.store_field("is_muted_for_current_user", is_muted_for_current_user_); + s.store_field("can_unmute_self", can_unmute_self_); + s.store_field("volume_level", volume_level_); + s.store_field("order", order_); + s.store_class_end(); + } +} + +groupCallParticipantVideoInfo::groupCallParticipantVideoInfo() + : source_groups_() + , endpoint_id_() + , is_paused_() +{} + +groupCallParticipantVideoInfo::groupCallParticipantVideoInfo(array<object_ptr<groupCallVideoSourceGroup>> &&source_groups_, string const &endpoint_id_, bool is_paused_) + : source_groups_(std::move(source_groups_)) + , endpoint_id_(endpoint_id_) + , is_paused_(is_paused_) +{} + +const std::int32_t groupCallParticipantVideoInfo::ID; + +void groupCallParticipantVideoInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallParticipantVideoInfo"); + { s.store_vector_begin("source_groups", source_groups_.size()); for (const auto &_value : source_groups_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("endpoint_id", endpoint_id_); + s.store_field("is_paused", is_paused_); + s.store_class_end(); + } +} + +groupCallRecentSpeaker::groupCallRecentSpeaker() + : participant_id_() + , is_speaking_() +{} + +groupCallRecentSpeaker::groupCallRecentSpeaker(object_ptr<MessageSender> &&participant_id_, bool is_speaking_) + : participant_id_(std::move(participant_id_)) + , is_speaking_(is_speaking_) +{} + +const std::int32_t groupCallRecentSpeaker::ID; + +void groupCallRecentSpeaker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallRecentSpeaker"); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("is_speaking", is_speaking_); + s.store_class_end(); + } +} + +groupCallStream::groupCallStream() + : channel_id_() + , scale_() + , time_offset_() +{} + +groupCallStream::groupCallStream(int32 channel_id_, int32 scale_, int53 time_offset_) + : channel_id_(channel_id_) + , scale_(scale_) + , time_offset_(time_offset_) +{} + +const std::int32_t groupCallStream::ID; + +void groupCallStream::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallStream"); + s.store_field("channel_id", channel_id_); + s.store_field("scale", scale_); + s.store_field("time_offset", time_offset_); + s.store_class_end(); + } +} + +groupCallStreams::groupCallStreams() + : streams_() +{} + +groupCallStreams::groupCallStreams(array<object_ptr<groupCallStream>> &&streams_) + : streams_(std::move(streams_)) +{} + +const std::int32_t groupCallStreams::ID; + +void groupCallStreams::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallStreams"); + { s.store_vector_begin("streams", streams_.size()); for (const auto &_value : streams_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +groupCallVideoQualityThumbnail::groupCallVideoQualityThumbnail() { +} + +const std::int32_t groupCallVideoQualityThumbnail::ID; + +void groupCallVideoQualityThumbnail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallVideoQualityThumbnail"); + s.store_class_end(); + } +} + +groupCallVideoQualityMedium::groupCallVideoQualityMedium() { +} + +const std::int32_t groupCallVideoQualityMedium::ID; + +void groupCallVideoQualityMedium::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallVideoQualityMedium"); + s.store_class_end(); + } +} + +groupCallVideoQualityFull::groupCallVideoQualityFull() { +} + +const std::int32_t groupCallVideoQualityFull::ID; + +void groupCallVideoQualityFull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallVideoQualityFull"); + s.store_class_end(); + } +} + +groupCallVideoSourceGroup::groupCallVideoSourceGroup() + : semantics_() + , source_ids_() +{} + +groupCallVideoSourceGroup::groupCallVideoSourceGroup(string const &semantics_, array<int32> &&source_ids_) + : semantics_(semantics_) + , source_ids_(std::move(source_ids_)) +{} + +const std::int32_t groupCallVideoSourceGroup::ID; + +void groupCallVideoSourceGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallVideoSourceGroup"); + s.store_field("semantics", semantics_); + { s.store_vector_begin("source_ids", source_ids_.size()); for (const auto &_value : source_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +hashtags::hashtags() + : hashtags_() +{} + +hashtags::hashtags(array<string> &&hashtags_) + : hashtags_(std::move(hashtags_)) +{} + +const std::int32_t hashtags::ID; + +void hashtags::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "hashtags"); + { s.store_vector_begin("hashtags", hashtags_.size()); for (const auto &_value : hashtags_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +httpUrl::httpUrl() + : url_() +{} + +httpUrl::httpUrl(string const &url_) + : url_(url_) +{} + +const std::int32_t httpUrl::ID; + +void httpUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "httpUrl"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +identityDocument::identityDocument() + : number_() + , expiry_date_() + , front_side_() + , reverse_side_() + , selfie_() + , translation_() +{} + +identityDocument::identityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_) + : number_(number_) + , expiry_date_(std::move(expiry_date_)) + , front_side_(std::move(front_side_)) + , reverse_side_(std::move(reverse_side_)) + , selfie_(std::move(selfie_)) + , translation_(std::move(translation_)) +{} + +const std::int32_t identityDocument::ID; + +void identityDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "identityDocument"); + s.store_field("number", number_); + s.store_object_field("expiry_date", static_cast<const BaseObject *>(expiry_date_.get())); + s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get())); + s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get())); + s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get())); + { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +importedContacts::importedContacts() + : user_ids_() + , importer_count_() +{} + +importedContacts::importedContacts(array<int53> &&user_ids_, array<int32> &&importer_count_) + : user_ids_(std::move(user_ids_)) + , importer_count_(std::move(importer_count_)) +{} + +const std::int32_t importedContacts::ID; + +void importedContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "importedContacts"); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("importer_count", importer_count_.size()); for (const auto &_value : importer_count_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +inlineKeyboardButton::inlineKeyboardButton() + : text_() + , type_() +{} + +inlineKeyboardButton::inlineKeyboardButton(string const &text_, object_ptr<InlineKeyboardButtonType> &&type_) + : text_(text_) + , type_(std::move(type_)) +{} + +const std::int32_t inlineKeyboardButton::ID; + +void inlineKeyboardButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButton"); + s.store_field("text", text_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeUrl::inlineKeyboardButtonTypeUrl() + : url_() +{} + +inlineKeyboardButtonTypeUrl::inlineKeyboardButtonTypeUrl(string const &url_) + : url_(url_) +{} + +const std::int32_t inlineKeyboardButtonTypeUrl::ID; + +void inlineKeyboardButtonTypeUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeUrl"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeLoginUrl::inlineKeyboardButtonTypeLoginUrl() + : url_() + , id_() + , forward_text_() +{} + +inlineKeyboardButtonTypeLoginUrl::inlineKeyboardButtonTypeLoginUrl(string const &url_, int53 id_, string const &forward_text_) + : url_(url_) + , id_(id_) + , forward_text_(forward_text_) +{} + +const std::int32_t inlineKeyboardButtonTypeLoginUrl::ID; + +void inlineKeyboardButtonTypeLoginUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeLoginUrl"); + s.store_field("url", url_); + s.store_field("id", id_); + s.store_field("forward_text", forward_text_); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeWebApp::inlineKeyboardButtonTypeWebApp() + : url_() +{} + +inlineKeyboardButtonTypeWebApp::inlineKeyboardButtonTypeWebApp(string const &url_) + : url_(url_) +{} + +const std::int32_t inlineKeyboardButtonTypeWebApp::ID; + +void inlineKeyboardButtonTypeWebApp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeWebApp"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeCallback::inlineKeyboardButtonTypeCallback() + : data_() +{} + +inlineKeyboardButtonTypeCallback::inlineKeyboardButtonTypeCallback(bytes const &data_) + : data_(std::move(data_)) +{} + +const std::int32_t inlineKeyboardButtonTypeCallback::ID; + +void inlineKeyboardButtonTypeCallback::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeCallback"); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeCallbackWithPassword::inlineKeyboardButtonTypeCallbackWithPassword() + : data_() +{} + +inlineKeyboardButtonTypeCallbackWithPassword::inlineKeyboardButtonTypeCallbackWithPassword(bytes const &data_) + : data_(std::move(data_)) +{} + +const std::int32_t inlineKeyboardButtonTypeCallbackWithPassword::ID; + +void inlineKeyboardButtonTypeCallbackWithPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeCallbackWithPassword"); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeCallbackGame::inlineKeyboardButtonTypeCallbackGame() { +} + +const std::int32_t inlineKeyboardButtonTypeCallbackGame::ID; + +void inlineKeyboardButtonTypeCallbackGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeCallbackGame"); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeSwitchInline::inlineKeyboardButtonTypeSwitchInline() + : query_() + , in_current_chat_() +{} + +inlineKeyboardButtonTypeSwitchInline::inlineKeyboardButtonTypeSwitchInline(string const &query_, bool in_current_chat_) + : query_(query_) + , in_current_chat_(in_current_chat_) +{} + +const std::int32_t inlineKeyboardButtonTypeSwitchInline::ID; + +void inlineKeyboardButtonTypeSwitchInline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeSwitchInline"); + s.store_field("query", query_); + s.store_field("in_current_chat", in_current_chat_); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeBuy::inlineKeyboardButtonTypeBuy() { +} + +const std::int32_t inlineKeyboardButtonTypeBuy::ID; + +void inlineKeyboardButtonTypeBuy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeBuy"); + s.store_class_end(); + } +} + +inlineKeyboardButtonTypeUser::inlineKeyboardButtonTypeUser() + : user_id_() +{} + +inlineKeyboardButtonTypeUser::inlineKeyboardButtonTypeUser(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t inlineKeyboardButtonTypeUser::ID; + +void inlineKeyboardButtonTypeUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineKeyboardButtonTypeUser"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +inlineQueryResultArticle::inlineQueryResultArticle() + : id_() + , url_() + , hide_url_() + , title_() + , description_() + , thumbnail_() +{} + +inlineQueryResultArticle::inlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, object_ptr<thumbnail> &&thumbnail_) + : id_(id_) + , url_(url_) + , hide_url_(hide_url_) + , title_(title_) + , description_(description_) + , thumbnail_(std::move(thumbnail_)) +{} + +const std::int32_t inlineQueryResultArticle::ID; + +void inlineQueryResultArticle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultArticle"); + s.store_field("id", id_); + s.store_field("url", url_); + s.store_field("hide_url", hide_url_); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_class_end(); + } +} + +inlineQueryResultContact::inlineQueryResultContact() + : id_() + , contact_() + , thumbnail_() +{} + +inlineQueryResultContact::inlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, object_ptr<thumbnail> &&thumbnail_) + : id_(id_) + , contact_(std::move(contact_)) + , thumbnail_(std::move(thumbnail_)) +{} + +const std::int32_t inlineQueryResultContact::ID; + +void inlineQueryResultContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultContact"); + s.store_field("id", id_); + s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_class_end(); + } +} + +inlineQueryResultLocation::inlineQueryResultLocation() + : id_() + , location_() + , title_() + , thumbnail_() +{} + +inlineQueryResultLocation::inlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, string const &title_, object_ptr<thumbnail> &&thumbnail_) + : id_(id_) + , location_(std::move(location_)) + , title_(title_) + , thumbnail_(std::move(thumbnail_)) +{} + +const std::int32_t inlineQueryResultLocation::ID; + +void inlineQueryResultLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultLocation"); + s.store_field("id", id_); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("title", title_); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_class_end(); + } +} + +inlineQueryResultVenue::inlineQueryResultVenue() + : id_() + , venue_() + , thumbnail_() +{} + +inlineQueryResultVenue::inlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, object_ptr<thumbnail> &&thumbnail_) + : id_(id_) + , venue_(std::move(venue_)) + , thumbnail_(std::move(thumbnail_)) +{} + +const std::int32_t inlineQueryResultVenue::ID; + +void inlineQueryResultVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultVenue"); + s.store_field("id", id_); + s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_class_end(); + } +} + +inlineQueryResultGame::inlineQueryResultGame() + : id_() + , game_() +{} + +inlineQueryResultGame::inlineQueryResultGame(string const &id_, object_ptr<game> &&game_) + : id_(id_) + , game_(std::move(game_)) +{} + +const std::int32_t inlineQueryResultGame::ID; + +void inlineQueryResultGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultGame"); + s.store_field("id", id_); + s.store_object_field("game", static_cast<const BaseObject *>(game_.get())); + s.store_class_end(); + } +} + +inlineQueryResultAnimation::inlineQueryResultAnimation() + : id_() + , animation_() + , title_() +{} + +inlineQueryResultAnimation::inlineQueryResultAnimation(string const &id_, object_ptr<animation> &&animation_, string const &title_) + : id_(id_) + , animation_(std::move(animation_)) + , title_(title_) +{} + +const std::int32_t inlineQueryResultAnimation::ID; + +void inlineQueryResultAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultAnimation"); + s.store_field("id", id_); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_field("title", title_); + s.store_class_end(); + } +} + +inlineQueryResultAudio::inlineQueryResultAudio() + : id_() + , audio_() +{} + +inlineQueryResultAudio::inlineQueryResultAudio(string const &id_, object_ptr<audio> &&audio_) + : id_(id_) + , audio_(std::move(audio_)) +{} + +const std::int32_t inlineQueryResultAudio::ID; + +void inlineQueryResultAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultAudio"); + s.store_field("id", id_); + s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get())); + s.store_class_end(); + } +} + +inlineQueryResultDocument::inlineQueryResultDocument() + : id_() + , document_() + , title_() + , description_() +{} + +inlineQueryResultDocument::inlineQueryResultDocument(string const &id_, object_ptr<document> &&document_, string const &title_, string const &description_) + : id_(id_) + , document_(std::move(document_)) + , title_(title_) + , description_(description_) +{} + +const std::int32_t inlineQueryResultDocument::ID; + +void inlineQueryResultDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultDocument"); + s.store_field("id", id_); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_class_end(); + } +} + +inlineQueryResultPhoto::inlineQueryResultPhoto() + : id_() + , photo_() + , title_() + , description_() +{} + +inlineQueryResultPhoto::inlineQueryResultPhoto(string const &id_, object_ptr<photo> &&photo_, string const &title_, string const &description_) + : id_(id_) + , photo_(std::move(photo_)) + , title_(title_) + , description_(description_) +{} + +const std::int32_t inlineQueryResultPhoto::ID; + +void inlineQueryResultPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultPhoto"); + s.store_field("id", id_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_class_end(); + } +} + +inlineQueryResultSticker::inlineQueryResultSticker() + : id_() + , sticker_() +{} + +inlineQueryResultSticker::inlineQueryResultSticker(string const &id_, object_ptr<sticker> &&sticker_) + : id_(id_) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t inlineQueryResultSticker::ID; + +void inlineQueryResultSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultSticker"); + s.store_field("id", id_); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +inlineQueryResultVideo::inlineQueryResultVideo() + : id_() + , video_() + , title_() + , description_() +{} + +inlineQueryResultVideo::inlineQueryResultVideo(string const &id_, object_ptr<video> &&video_, string const &title_, string const &description_) + : id_(id_) + , video_(std::move(video_)) + , title_(title_) + , description_(description_) +{} + +const std::int32_t inlineQueryResultVideo::ID; + +void inlineQueryResultVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultVideo"); + s.store_field("id", id_); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_class_end(); + } +} + +inlineQueryResultVoiceNote::inlineQueryResultVoiceNote() + : id_() + , voice_note_() + , title_() +{} + +inlineQueryResultVoiceNote::inlineQueryResultVoiceNote(string const &id_, object_ptr<voiceNote> &&voice_note_, string const &title_) + : id_(id_) + , voice_note_(std::move(voice_note_)) + , title_(title_) +{} + +const std::int32_t inlineQueryResultVoiceNote::ID; + +void inlineQueryResultVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResultVoiceNote"); + s.store_field("id", id_); + s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get())); + s.store_field("title", title_); + s.store_class_end(); + } +} + +inlineQueryResults::inlineQueryResults() + : inline_query_id_() + , next_offset_() + , results_() + , switch_pm_text_() + , switch_pm_parameter_() +{} + +inlineQueryResults::inlineQueryResults(int64 inline_query_id_, string const &next_offset_, array<object_ptr<InlineQueryResult>> &&results_, string const &switch_pm_text_, string const &switch_pm_parameter_) + : inline_query_id_(inline_query_id_) + , next_offset_(next_offset_) + , results_(std::move(results_)) + , switch_pm_text_(switch_pm_text_) + , switch_pm_parameter_(switch_pm_parameter_) +{} + +const std::int32_t inlineQueryResults::ID; + +void inlineQueryResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryResults"); + s.store_field("inline_query_id", inline_query_id_); + s.store_field("next_offset", next_offset_); + { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("switch_pm_text", switch_pm_text_); + s.store_field("switch_pm_parameter", switch_pm_parameter_); + s.store_class_end(); + } +} + +inputBackgroundLocal::inputBackgroundLocal() + : background_() +{} + +inputBackgroundLocal::inputBackgroundLocal(object_ptr<InputFile> &&background_) + : background_(std::move(background_)) +{} + +const std::int32_t inputBackgroundLocal::ID; + +void inputBackgroundLocal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBackgroundLocal"); + s.store_object_field("background", static_cast<const BaseObject *>(background_.get())); + s.store_class_end(); + } +} + +inputBackgroundRemote::inputBackgroundRemote() + : background_id_() +{} + +inputBackgroundRemote::inputBackgroundRemote(int64 background_id_) + : background_id_(background_id_) +{} + +const std::int32_t inputBackgroundRemote::ID; + +void inputBackgroundRemote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBackgroundRemote"); + s.store_field("background_id", background_id_); + s.store_class_end(); + } +} + +inputChatPhotoPrevious::inputChatPhotoPrevious() + : chat_photo_id_() +{} + +inputChatPhotoPrevious::inputChatPhotoPrevious(int64 chat_photo_id_) + : chat_photo_id_(chat_photo_id_) +{} + +const std::int32_t inputChatPhotoPrevious::ID; + +void inputChatPhotoPrevious::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChatPhotoPrevious"); + s.store_field("chat_photo_id", chat_photo_id_); + s.store_class_end(); + } +} + +inputChatPhotoStatic::inputChatPhotoStatic() + : photo_() +{} + +inputChatPhotoStatic::inputChatPhotoStatic(object_ptr<InputFile> &&photo_) + : photo_(std::move(photo_)) +{} + +const std::int32_t inputChatPhotoStatic::ID; + +void inputChatPhotoStatic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChatPhotoStatic"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +inputChatPhotoAnimation::inputChatPhotoAnimation() + : animation_() + , main_frame_timestamp_() +{} + +inputChatPhotoAnimation::inputChatPhotoAnimation(object_ptr<InputFile> &&animation_, double main_frame_timestamp_) + : animation_(std::move(animation_)) + , main_frame_timestamp_(main_frame_timestamp_) +{} + +const std::int32_t inputChatPhotoAnimation::ID; + +void inputChatPhotoAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChatPhotoAnimation"); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_field("main_frame_timestamp", main_frame_timestamp_); + s.store_class_end(); + } +} + +inputCredentialsSaved::inputCredentialsSaved() + : saved_credentials_id_() +{} + +inputCredentialsSaved::inputCredentialsSaved(string const &saved_credentials_id_) + : saved_credentials_id_(saved_credentials_id_) +{} + +const std::int32_t inputCredentialsSaved::ID; + +void inputCredentialsSaved::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputCredentialsSaved"); + s.store_field("saved_credentials_id", saved_credentials_id_); + s.store_class_end(); + } +} + +inputCredentialsNew::inputCredentialsNew() + : data_() + , allow_save_() +{} + +inputCredentialsNew::inputCredentialsNew(string const &data_, bool allow_save_) + : data_(data_) + , allow_save_(allow_save_) +{} + +const std::int32_t inputCredentialsNew::ID; + +void inputCredentialsNew::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputCredentialsNew"); + s.store_field("data", data_); + s.store_field("allow_save", allow_save_); + s.store_class_end(); + } +} + +inputCredentialsApplePay::inputCredentialsApplePay() + : data_() +{} + +inputCredentialsApplePay::inputCredentialsApplePay(string const &data_) + : data_(data_) +{} + +const std::int32_t inputCredentialsApplePay::ID; + +void inputCredentialsApplePay::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputCredentialsApplePay"); + s.store_field("data", data_); + s.store_class_end(); + } +} + +inputCredentialsGooglePay::inputCredentialsGooglePay() + : data_() +{} + +inputCredentialsGooglePay::inputCredentialsGooglePay(string const &data_) + : data_(data_) +{} + +const std::int32_t inputCredentialsGooglePay::ID; + +void inputCredentialsGooglePay::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputCredentialsGooglePay"); + s.store_field("data", data_); + s.store_class_end(); + } +} + +inputFileId::inputFileId() + : id_() +{} + +inputFileId::inputFileId(int32 id_) + : id_(id_) +{} + +const std::int32_t inputFileId::ID; + +void inputFileId::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFileId"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +inputFileRemote::inputFileRemote() + : id_() +{} + +inputFileRemote::inputFileRemote(string const &id_) + : id_(id_) +{} + +const std::int32_t inputFileRemote::ID; + +void inputFileRemote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFileRemote"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +inputFileLocal::inputFileLocal() + : path_() +{} + +inputFileLocal::inputFileLocal(string const &path_) + : path_(path_) +{} + +const std::int32_t inputFileLocal::ID; + +void inputFileLocal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFileLocal"); + s.store_field("path", path_); + s.store_class_end(); + } +} + +inputFileGenerated::inputFileGenerated() + : original_path_() + , conversion_() + , expected_size_() +{} + +inputFileGenerated::inputFileGenerated(string const &original_path_, string const &conversion_, int53 expected_size_) + : original_path_(original_path_) + , conversion_(conversion_) + , expected_size_(expected_size_) +{} + +const std::int32_t inputFileGenerated::ID; + +void inputFileGenerated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFileGenerated"); + s.store_field("original_path", original_path_); + s.store_field("conversion", conversion_); + s.store_field("expected_size", expected_size_); + s.store_class_end(); + } +} + +inputIdentityDocument::inputIdentityDocument() + : number_() + , expiry_date_() + , front_side_() + , reverse_side_() + , selfie_() + , translation_() +{} + +inputIdentityDocument::inputIdentityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<InputFile> &&front_side_, object_ptr<InputFile> &&reverse_side_, object_ptr<InputFile> &&selfie_, array<object_ptr<InputFile>> &&translation_) + : number_(number_) + , expiry_date_(std::move(expiry_date_)) + , front_side_(std::move(front_side_)) + , reverse_side_(std::move(reverse_side_)) + , selfie_(std::move(selfie_)) + , translation_(std::move(translation_)) +{} + +const std::int32_t inputIdentityDocument::ID; + +void inputIdentityDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputIdentityDocument"); + s.store_field("number", number_); + s.store_object_field("expiry_date", static_cast<const BaseObject *>(expiry_date_.get())); + s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get())); + s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get())); + s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get())); + { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputInlineQueryResultAnimation::inputInlineQueryResultAnimation() + : id_() + , title_() + , thumbnail_url_() + , thumbnail_mime_type_() + , video_url_() + , video_mime_type_() + , video_duration_() + , video_width_() + , video_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultAnimation::inputInlineQueryResultAnimation(string const &id_, string const &title_, string const &thumbnail_url_, string const &thumbnail_mime_type_, string const &video_url_, string const &video_mime_type_, int32 video_duration_, int32 video_width_, int32 video_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , title_(title_) + , thumbnail_url_(thumbnail_url_) + , thumbnail_mime_type_(thumbnail_mime_type_) + , video_url_(video_url_) + , video_mime_type_(video_mime_type_) + , video_duration_(video_duration_) + , video_width_(video_width_) + , video_height_(video_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultAnimation::ID; + +void inputInlineQueryResultAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultAnimation"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("thumbnail_mime_type", thumbnail_mime_type_); + s.store_field("video_url", video_url_); + s.store_field("video_mime_type", video_mime_type_); + s.store_field("video_duration", video_duration_); + s.store_field("video_width", video_width_); + s.store_field("video_height", video_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultArticle::inputInlineQueryResultArticle() + : id_() + , url_() + , hide_url_() + , title_() + , description_() + , thumbnail_url_() + , thumbnail_width_() + , thumbnail_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultArticle::inputInlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , url_(url_) + , hide_url_(hide_url_) + , title_(title_) + , description_(description_) + , thumbnail_url_(thumbnail_url_) + , thumbnail_width_(thumbnail_width_) + , thumbnail_height_(thumbnail_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultArticle::ID; + +void inputInlineQueryResultArticle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultArticle"); + s.store_field("id", id_); + s.store_field("url", url_); + s.store_field("hide_url", hide_url_); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("thumbnail_width", thumbnail_width_); + s.store_field("thumbnail_height", thumbnail_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultAudio::inputInlineQueryResultAudio() + : id_() + , title_() + , performer_() + , audio_url_() + , audio_duration_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultAudio::inputInlineQueryResultAudio(string const &id_, string const &title_, string const &performer_, string const &audio_url_, int32 audio_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , title_(title_) + , performer_(performer_) + , audio_url_(audio_url_) + , audio_duration_(audio_duration_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultAudio::ID; + +void inputInlineQueryResultAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultAudio"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("performer", performer_); + s.store_field("audio_url", audio_url_); + s.store_field("audio_duration", audio_duration_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultContact::inputInlineQueryResultContact() + : id_() + , contact_() + , thumbnail_url_() + , thumbnail_width_() + , thumbnail_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultContact::inputInlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , contact_(std::move(contact_)) + , thumbnail_url_(thumbnail_url_) + , thumbnail_width_(thumbnail_width_) + , thumbnail_height_(thumbnail_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultContact::ID; + +void inputInlineQueryResultContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultContact"); + s.store_field("id", id_); + s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get())); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("thumbnail_width", thumbnail_width_); + s.store_field("thumbnail_height", thumbnail_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultDocument::inputInlineQueryResultDocument() + : id_() + , title_() + , description_() + , document_url_() + , mime_type_() + , thumbnail_url_() + , thumbnail_width_() + , thumbnail_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultDocument::inputInlineQueryResultDocument(string const &id_, string const &title_, string const &description_, string const &document_url_, string const &mime_type_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , title_(title_) + , description_(description_) + , document_url_(document_url_) + , mime_type_(mime_type_) + , thumbnail_url_(thumbnail_url_) + , thumbnail_width_(thumbnail_width_) + , thumbnail_height_(thumbnail_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultDocument::ID; + +void inputInlineQueryResultDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultDocument"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_field("document_url", document_url_); + s.store_field("mime_type", mime_type_); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("thumbnail_width", thumbnail_width_); + s.store_field("thumbnail_height", thumbnail_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultGame::inputInlineQueryResultGame() + : id_() + , game_short_name_() + , reply_markup_() +{} + +inputInlineQueryResultGame::inputInlineQueryResultGame(string const &id_, string const &game_short_name_, object_ptr<ReplyMarkup> &&reply_markup_) + : id_(id_) + , game_short_name_(game_short_name_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputInlineQueryResultGame::ID; + +void inputInlineQueryResultGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultGame"); + s.store_field("id", id_); + s.store_field("game_short_name", game_short_name_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultLocation::inputInlineQueryResultLocation() + : id_() + , location_() + , live_period_() + , title_() + , thumbnail_url_() + , thumbnail_width_() + , thumbnail_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultLocation::inputInlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, int32 live_period_, string const &title_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , location_(std::move(location_)) + , live_period_(live_period_) + , title_(title_) + , thumbnail_url_(thumbnail_url_) + , thumbnail_width_(thumbnail_width_) + , thumbnail_height_(thumbnail_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultLocation::ID; + +void inputInlineQueryResultLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultLocation"); + s.store_field("id", id_); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("live_period", live_period_); + s.store_field("title", title_); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("thumbnail_width", thumbnail_width_); + s.store_field("thumbnail_height", thumbnail_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultPhoto::inputInlineQueryResultPhoto() + : id_() + , title_() + , description_() + , thumbnail_url_() + , photo_url_() + , photo_width_() + , photo_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultPhoto::inputInlineQueryResultPhoto(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &photo_url_, int32 photo_width_, int32 photo_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , title_(title_) + , description_(description_) + , thumbnail_url_(thumbnail_url_) + , photo_url_(photo_url_) + , photo_width_(photo_width_) + , photo_height_(photo_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultPhoto::ID; + +void inputInlineQueryResultPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultPhoto"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("photo_url", photo_url_); + s.store_field("photo_width", photo_width_); + s.store_field("photo_height", photo_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultSticker::inputInlineQueryResultSticker() + : id_() + , thumbnail_url_() + , sticker_url_() + , sticker_width_() + , sticker_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultSticker::inputInlineQueryResultSticker(string const &id_, string const &thumbnail_url_, string const &sticker_url_, int32 sticker_width_, int32 sticker_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , thumbnail_url_(thumbnail_url_) + , sticker_url_(sticker_url_) + , sticker_width_(sticker_width_) + , sticker_height_(sticker_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultSticker::ID; + +void inputInlineQueryResultSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultSticker"); + s.store_field("id", id_); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("sticker_url", sticker_url_); + s.store_field("sticker_width", sticker_width_); + s.store_field("sticker_height", sticker_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultVenue::inputInlineQueryResultVenue() + : id_() + , venue_() + , thumbnail_url_() + , thumbnail_width_() + , thumbnail_height_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultVenue::inputInlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , venue_(std::move(venue_)) + , thumbnail_url_(thumbnail_url_) + , thumbnail_width_(thumbnail_width_) + , thumbnail_height_(thumbnail_height_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultVenue::ID; + +void inputInlineQueryResultVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultVenue"); + s.store_field("id", id_); + s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get())); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("thumbnail_width", thumbnail_width_); + s.store_field("thumbnail_height", thumbnail_height_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultVideo::inputInlineQueryResultVideo() + : id_() + , title_() + , description_() + , thumbnail_url_() + , video_url_() + , mime_type_() + , video_width_() + , video_height_() + , video_duration_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultVideo::inputInlineQueryResultVideo(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &video_url_, string const &mime_type_, int32 video_width_, int32 video_height_, int32 video_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , title_(title_) + , description_(description_) + , thumbnail_url_(thumbnail_url_) + , video_url_(video_url_) + , mime_type_(mime_type_) + , video_width_(video_width_) + , video_height_(video_height_) + , video_duration_(video_duration_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultVideo::ID; + +void inputInlineQueryResultVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultVideo"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_field("thumbnail_url", thumbnail_url_); + s.store_field("video_url", video_url_); + s.store_field("mime_type", mime_type_); + s.store_field("video_width", video_width_); + s.store_field("video_height", video_height_); + s.store_field("video_duration", video_duration_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInlineQueryResultVoiceNote::inputInlineQueryResultVoiceNote() + : id_() + , title_() + , voice_note_url_() + , voice_note_duration_() + , reply_markup_() + , input_message_content_() +{} + +inputInlineQueryResultVoiceNote::inputInlineQueryResultVoiceNote(string const &id_, string const &title_, string const &voice_note_url_, int32 voice_note_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : id_(id_) + , title_(title_) + , voice_note_url_(voice_note_url_) + , voice_note_duration_(voice_note_duration_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t inputInlineQueryResultVoiceNote::ID; + +void inputInlineQueryResultVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInlineQueryResultVoiceNote"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("voice_note_url", voice_note_url_); + s.store_field("voice_note_duration", voice_note_duration_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +inputInvoiceMessage::inputInvoiceMessage() + : chat_id_() + , message_id_() +{} + +inputInvoiceMessage::inputInvoiceMessage(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t inputInvoiceMessage::ID; + +void inputInvoiceMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInvoiceMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +inputInvoiceName::inputInvoiceName() + : name_() +{} + +inputInvoiceName::inputInvoiceName(string const &name_) + : name_(name_) +{} + +const std::int32_t inputInvoiceName::ID; + +void inputInvoiceName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInvoiceName"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +inputMessageText::inputMessageText() + : text_() + , disable_web_page_preview_() + , clear_draft_() +{} + +inputMessageText::inputMessageText(object_ptr<formattedText> &&text_, bool disable_web_page_preview_, bool clear_draft_) + : text_(std::move(text_)) + , disable_web_page_preview_(disable_web_page_preview_) + , clear_draft_(clear_draft_) +{} + +const std::int32_t inputMessageText::ID; + +void inputMessageText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageText"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("disable_web_page_preview", disable_web_page_preview_); + s.store_field("clear_draft", clear_draft_); + s.store_class_end(); + } +} + +inputMessageAnimation::inputMessageAnimation() + : animation_() + , thumbnail_() + , added_sticker_file_ids_() + , duration_() + , width_() + , height_() + , caption_() +{} + +inputMessageAnimation::inputMessageAnimation(object_ptr<InputFile> &&animation_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_) + : animation_(std::move(animation_)) + , thumbnail_(std::move(thumbnail_)) + , added_sticker_file_ids_(std::move(added_sticker_file_ids_)) + , duration_(duration_) + , width_(width_) + , height_(height_) + , caption_(std::move(caption_)) +{} + +const std::int32_t inputMessageAnimation::ID; + +void inputMessageAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageAnimation"); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + { s.store_vector_begin("added_sticker_file_ids", added_sticker_file_ids_.size()); for (const auto &_value : added_sticker_file_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("duration", duration_); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +inputMessageAudio::inputMessageAudio() + : audio_() + , album_cover_thumbnail_() + , duration_() + , title_() + , performer_() + , caption_() +{} + +inputMessageAudio::inputMessageAudio(object_ptr<InputFile> &&audio_, object_ptr<inputThumbnail> &&album_cover_thumbnail_, int32 duration_, string const &title_, string const &performer_, object_ptr<formattedText> &&caption_) + : audio_(std::move(audio_)) + , album_cover_thumbnail_(std::move(album_cover_thumbnail_)) + , duration_(duration_) + , title_(title_) + , performer_(performer_) + , caption_(std::move(caption_)) +{} + +const std::int32_t inputMessageAudio::ID; + +void inputMessageAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageAudio"); + s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get())); + s.store_object_field("album_cover_thumbnail", static_cast<const BaseObject *>(album_cover_thumbnail_.get())); + s.store_field("duration", duration_); + s.store_field("title", title_); + s.store_field("performer", performer_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +inputMessageDocument::inputMessageDocument() + : document_() + , thumbnail_() + , disable_content_type_detection_() + , caption_() +{} + +inputMessageDocument::inputMessageDocument(object_ptr<InputFile> &&document_, object_ptr<inputThumbnail> &&thumbnail_, bool disable_content_type_detection_, object_ptr<formattedText> &&caption_) + : document_(std::move(document_)) + , thumbnail_(std::move(thumbnail_)) + , disable_content_type_detection_(disable_content_type_detection_) + , caption_(std::move(caption_)) +{} + +const std::int32_t inputMessageDocument::ID; + +void inputMessageDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageDocument"); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_field("disable_content_type_detection", disable_content_type_detection_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +inputMessagePhoto::inputMessagePhoto() + : photo_() + , thumbnail_() + , added_sticker_file_ids_() + , width_() + , height_() + , caption_() + , ttl_() +{} + +inputMessagePhoto::inputMessagePhoto(object_ptr<InputFile> &&photo_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_, int32 ttl_) + : photo_(std::move(photo_)) + , thumbnail_(std::move(thumbnail_)) + , added_sticker_file_ids_(std::move(added_sticker_file_ids_)) + , width_(width_) + , height_(height_) + , caption_(std::move(caption_)) + , ttl_(ttl_) +{} + +const std::int32_t inputMessagePhoto::ID; + +void inputMessagePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagePhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + { s.store_vector_begin("added_sticker_file_ids", added_sticker_file_ids_.size()); for (const auto &_value : added_sticker_file_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("width", width_); + s.store_field("height", height_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("ttl", ttl_); + s.store_class_end(); + } +} + +inputMessageSticker::inputMessageSticker() + : sticker_() + , thumbnail_() + , width_() + , height_() + , emoji_() +{} + +inputMessageSticker::inputMessageSticker(object_ptr<InputFile> &&sticker_, object_ptr<inputThumbnail> &&thumbnail_, int32 width_, int32 height_, string const &emoji_) + : sticker_(std::move(sticker_)) + , thumbnail_(std::move(thumbnail_)) + , width_(width_) + , height_(height_) + , emoji_(emoji_) +{} + +const std::int32_t inputMessageSticker::ID; + +void inputMessageSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageSticker"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_field("emoji", emoji_); + s.store_class_end(); + } +} + +inputMessageVideo::inputMessageVideo() + : video_() + , thumbnail_() + , added_sticker_file_ids_() + , duration_() + , width_() + , height_() + , supports_streaming_() + , caption_() + , ttl_() +{} + +inputMessageVideo::inputMessageVideo(object_ptr<InputFile> &&video_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, bool supports_streaming_, object_ptr<formattedText> &&caption_, int32 ttl_) + : video_(std::move(video_)) + , thumbnail_(std::move(thumbnail_)) + , added_sticker_file_ids_(std::move(added_sticker_file_ids_)) + , duration_(duration_) + , width_(width_) + , height_(height_) + , supports_streaming_(supports_streaming_) + , caption_(std::move(caption_)) + , ttl_(ttl_) +{} + +const std::int32_t inputMessageVideo::ID; + +void inputMessageVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageVideo"); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + { s.store_vector_begin("added_sticker_file_ids", added_sticker_file_ids_.size()); for (const auto &_value : added_sticker_file_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("duration", duration_); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_field("supports_streaming", supports_streaming_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("ttl", ttl_); + s.store_class_end(); + } +} + +inputMessageVideoNote::inputMessageVideoNote() + : video_note_() + , thumbnail_() + , duration_() + , length_() +{} + +inputMessageVideoNote::inputMessageVideoNote(object_ptr<InputFile> &&video_note_, object_ptr<inputThumbnail> &&thumbnail_, int32 duration_, int32 length_) + : video_note_(std::move(video_note_)) + , thumbnail_(std::move(thumbnail_)) + , duration_(duration_) + , length_(length_) +{} + +const std::int32_t inputMessageVideoNote::ID; + +void inputMessageVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageVideoNote"); + s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_field("duration", duration_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +inputMessageVoiceNote::inputMessageVoiceNote() + : voice_note_() + , duration_() + , waveform_() + , caption_() +{} + +inputMessageVoiceNote::inputMessageVoiceNote(object_ptr<InputFile> &&voice_note_, int32 duration_, bytes const &waveform_, object_ptr<formattedText> &&caption_) + : voice_note_(std::move(voice_note_)) + , duration_(duration_) + , waveform_(std::move(waveform_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t inputMessageVoiceNote::ID; + +void inputMessageVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageVoiceNote"); + s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get())); + s.store_field("duration", duration_); + s.store_bytes_field("waveform", waveform_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +inputMessageLocation::inputMessageLocation() + : location_() + , live_period_() + , heading_() + , proximity_alert_radius_() +{} + +inputMessageLocation::inputMessageLocation(object_ptr<location> &&location_, int32 live_period_, int32 heading_, int32 proximity_alert_radius_) + : location_(std::move(location_)) + , live_period_(live_period_) + , heading_(heading_) + , proximity_alert_radius_(proximity_alert_radius_) +{} + +const std::int32_t inputMessageLocation::ID; + +void inputMessageLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageLocation"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("live_period", live_period_); + s.store_field("heading", heading_); + s.store_field("proximity_alert_radius", proximity_alert_radius_); + s.store_class_end(); + } +} + +inputMessageVenue::inputMessageVenue() + : venue_() +{} + +inputMessageVenue::inputMessageVenue(object_ptr<venue> &&venue_) + : venue_(std::move(venue_)) +{} + +const std::int32_t inputMessageVenue::ID; + +void inputMessageVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageVenue"); + s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get())); + s.store_class_end(); + } +} + +inputMessageContact::inputMessageContact() + : contact_() +{} + +inputMessageContact::inputMessageContact(object_ptr<contact> &&contact_) + : contact_(std::move(contact_)) +{} + +const std::int32_t inputMessageContact::ID; + +void inputMessageContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageContact"); + s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get())); + s.store_class_end(); + } +} + +inputMessageDice::inputMessageDice() + : emoji_() + , clear_draft_() +{} + +inputMessageDice::inputMessageDice(string const &emoji_, bool clear_draft_) + : emoji_(emoji_) + , clear_draft_(clear_draft_) +{} + +const std::int32_t inputMessageDice::ID; + +void inputMessageDice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageDice"); + s.store_field("emoji", emoji_); + s.store_field("clear_draft", clear_draft_); + s.store_class_end(); + } +} + +inputMessageGame::inputMessageGame() + : bot_user_id_() + , game_short_name_() +{} + +inputMessageGame::inputMessageGame(int53 bot_user_id_, string const &game_short_name_) + : bot_user_id_(bot_user_id_) + , game_short_name_(game_short_name_) +{} + +const std::int32_t inputMessageGame::ID; + +void inputMessageGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageGame"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("game_short_name", game_short_name_); + s.store_class_end(); + } +} + +inputMessageInvoice::inputMessageInvoice() + : invoice_() + , title_() + , description_() + , photo_url_() + , photo_size_() + , photo_width_() + , photo_height_() + , payload_() + , provider_token_() + , provider_data_() + , start_parameter_() + , extended_media_content_() +{} + +inputMessageInvoice::inputMessageInvoice(object_ptr<invoice> &&invoice_, string const &title_, string const &description_, string const &photo_url_, int32 photo_size_, int32 photo_width_, int32 photo_height_, bytes const &payload_, string const &provider_token_, string const &provider_data_, string const &start_parameter_, object_ptr<InputMessageContent> &&extended_media_content_) + : invoice_(std::move(invoice_)) + , title_(title_) + , description_(description_) + , photo_url_(photo_url_) + , photo_size_(photo_size_) + , photo_width_(photo_width_) + , photo_height_(photo_height_) + , payload_(std::move(payload_)) + , provider_token_(provider_token_) + , provider_data_(provider_data_) + , start_parameter_(start_parameter_) + , extended_media_content_(std::move(extended_media_content_)) +{} + +const std::int32_t inputMessageInvoice::ID; + +void inputMessageInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageInvoice"); + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_field("photo_url", photo_url_); + s.store_field("photo_size", photo_size_); + s.store_field("photo_width", photo_width_); + s.store_field("photo_height", photo_height_); + s.store_bytes_field("payload", payload_); + s.store_field("provider_token", provider_token_); + s.store_field("provider_data", provider_data_); + s.store_field("start_parameter", start_parameter_); + s.store_object_field("extended_media_content", static_cast<const BaseObject *>(extended_media_content_.get())); + s.store_class_end(); + } +} + +inputMessagePoll::inputMessagePoll() + : question_() + , options_() + , is_anonymous_() + , type_() + , open_period_() + , close_date_() + , is_closed_() +{} + +inputMessagePoll::inputMessagePoll(string const &question_, array<string> &&options_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_) + : question_(question_) + , options_(std::move(options_)) + , is_anonymous_(is_anonymous_) + , type_(std::move(type_)) + , open_period_(open_period_) + , close_date_(close_date_) + , is_closed_(is_closed_) +{} + +const std::int32_t inputMessagePoll::ID; + +void inputMessagePoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagePoll"); + s.store_field("question", question_); + { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("is_anonymous", is_anonymous_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("open_period", open_period_); + s.store_field("close_date", close_date_); + s.store_field("is_closed", is_closed_); + s.store_class_end(); + } +} + +inputMessageForwarded::inputMessageForwarded() + : from_chat_id_() + , message_id_() + , in_game_share_() + , copy_options_() +{} + +inputMessageForwarded::inputMessageForwarded(int53 from_chat_id_, int53 message_id_, bool in_game_share_, object_ptr<messageCopyOptions> &©_options_) + : from_chat_id_(from_chat_id_) + , message_id_(message_id_) + , in_game_share_(in_game_share_) + , copy_options_(std::move(copy_options_)) +{} + +const std::int32_t inputMessageForwarded::ID; + +void inputMessageForwarded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageForwarded"); + s.store_field("from_chat_id", from_chat_id_); + s.store_field("message_id", message_id_); + s.store_field("in_game_share", in_game_share_); + s.store_object_field("copy_options", static_cast<const BaseObject *>(copy_options_.get())); + s.store_class_end(); + } +} + +inputPassportElementPersonalDetails::inputPassportElementPersonalDetails() + : personal_details_() +{} + +inputPassportElementPersonalDetails::inputPassportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_) + : personal_details_(std::move(personal_details_)) +{} + +const std::int32_t inputPassportElementPersonalDetails::ID; + +void inputPassportElementPersonalDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementPersonalDetails"); + s.store_object_field("personal_details", static_cast<const BaseObject *>(personal_details_.get())); + s.store_class_end(); + } +} + +inputPassportElementPassport::inputPassportElementPassport() + : passport_() +{} + +inputPassportElementPassport::inputPassportElementPassport(object_ptr<inputIdentityDocument> &&passport_) + : passport_(std::move(passport_)) +{} + +const std::int32_t inputPassportElementPassport::ID; + +void inputPassportElementPassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementPassport"); + s.store_object_field("passport", static_cast<const BaseObject *>(passport_.get())); + s.store_class_end(); + } +} + +inputPassportElementDriverLicense::inputPassportElementDriverLicense() + : driver_license_() +{} + +inputPassportElementDriverLicense::inputPassportElementDriverLicense(object_ptr<inputIdentityDocument> &&driver_license_) + : driver_license_(std::move(driver_license_)) +{} + +const std::int32_t inputPassportElementDriverLicense::ID; + +void inputPassportElementDriverLicense::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementDriverLicense"); + s.store_object_field("driver_license", static_cast<const BaseObject *>(driver_license_.get())); + s.store_class_end(); + } +} + +inputPassportElementIdentityCard::inputPassportElementIdentityCard() + : identity_card_() +{} + +inputPassportElementIdentityCard::inputPassportElementIdentityCard(object_ptr<inputIdentityDocument> &&identity_card_) + : identity_card_(std::move(identity_card_)) +{} + +const std::int32_t inputPassportElementIdentityCard::ID; + +void inputPassportElementIdentityCard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementIdentityCard"); + s.store_object_field("identity_card", static_cast<const BaseObject *>(identity_card_.get())); + s.store_class_end(); + } +} + +inputPassportElementInternalPassport::inputPassportElementInternalPassport() + : internal_passport_() +{} + +inputPassportElementInternalPassport::inputPassportElementInternalPassport(object_ptr<inputIdentityDocument> &&internal_passport_) + : internal_passport_(std::move(internal_passport_)) +{} + +const std::int32_t inputPassportElementInternalPassport::ID; + +void inputPassportElementInternalPassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementInternalPassport"); + s.store_object_field("internal_passport", static_cast<const BaseObject *>(internal_passport_.get())); + s.store_class_end(); + } +} + +inputPassportElementAddress::inputPassportElementAddress() + : address_() +{} + +inputPassportElementAddress::inputPassportElementAddress(object_ptr<address> &&address_) + : address_(std::move(address_)) +{} + +const std::int32_t inputPassportElementAddress::ID; + +void inputPassportElementAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementAddress"); + s.store_object_field("address", static_cast<const BaseObject *>(address_.get())); + s.store_class_end(); + } +} + +inputPassportElementUtilityBill::inputPassportElementUtilityBill() + : utility_bill_() +{} + +inputPassportElementUtilityBill::inputPassportElementUtilityBill(object_ptr<inputPersonalDocument> &&utility_bill_) + : utility_bill_(std::move(utility_bill_)) +{} + +const std::int32_t inputPassportElementUtilityBill::ID; + +void inputPassportElementUtilityBill::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementUtilityBill"); + s.store_object_field("utility_bill", static_cast<const BaseObject *>(utility_bill_.get())); + s.store_class_end(); + } +} + +inputPassportElementBankStatement::inputPassportElementBankStatement() + : bank_statement_() +{} + +inputPassportElementBankStatement::inputPassportElementBankStatement(object_ptr<inputPersonalDocument> &&bank_statement_) + : bank_statement_(std::move(bank_statement_)) +{} + +const std::int32_t inputPassportElementBankStatement::ID; + +void inputPassportElementBankStatement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementBankStatement"); + s.store_object_field("bank_statement", static_cast<const BaseObject *>(bank_statement_.get())); + s.store_class_end(); + } +} + +inputPassportElementRentalAgreement::inputPassportElementRentalAgreement() + : rental_agreement_() +{} + +inputPassportElementRentalAgreement::inputPassportElementRentalAgreement(object_ptr<inputPersonalDocument> &&rental_agreement_) + : rental_agreement_(std::move(rental_agreement_)) +{} + +const std::int32_t inputPassportElementRentalAgreement::ID; + +void inputPassportElementRentalAgreement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementRentalAgreement"); + s.store_object_field("rental_agreement", static_cast<const BaseObject *>(rental_agreement_.get())); + s.store_class_end(); + } +} + +inputPassportElementPassportRegistration::inputPassportElementPassportRegistration() + : passport_registration_() +{} + +inputPassportElementPassportRegistration::inputPassportElementPassportRegistration(object_ptr<inputPersonalDocument> &&passport_registration_) + : passport_registration_(std::move(passport_registration_)) +{} + +const std::int32_t inputPassportElementPassportRegistration::ID; + +void inputPassportElementPassportRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementPassportRegistration"); + s.store_object_field("passport_registration", static_cast<const BaseObject *>(passport_registration_.get())); + s.store_class_end(); + } +} + +inputPassportElementTemporaryRegistration::inputPassportElementTemporaryRegistration() + : temporary_registration_() +{} + +inputPassportElementTemporaryRegistration::inputPassportElementTemporaryRegistration(object_ptr<inputPersonalDocument> &&temporary_registration_) + : temporary_registration_(std::move(temporary_registration_)) +{} + +const std::int32_t inputPassportElementTemporaryRegistration::ID; + +void inputPassportElementTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementTemporaryRegistration"); + s.store_object_field("temporary_registration", static_cast<const BaseObject *>(temporary_registration_.get())); + s.store_class_end(); + } +} + +inputPassportElementPhoneNumber::inputPassportElementPhoneNumber() + : phone_number_() +{} + +inputPassportElementPhoneNumber::inputPassportElementPhoneNumber(string const &phone_number_) + : phone_number_(phone_number_) +{} + +const std::int32_t inputPassportElementPhoneNumber::ID; + +void inputPassportElementPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementPhoneNumber"); + s.store_field("phone_number", phone_number_); + s.store_class_end(); + } +} + +inputPassportElementEmailAddress::inputPassportElementEmailAddress() + : email_address_() +{} + +inputPassportElementEmailAddress::inputPassportElementEmailAddress(string const &email_address_) + : email_address_(email_address_) +{} + +const std::int32_t inputPassportElementEmailAddress::ID; + +void inputPassportElementEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementEmailAddress"); + s.store_field("email_address", email_address_); + s.store_class_end(); + } +} + +inputPassportElementError::inputPassportElementError() + : type_() + , message_() + , source_() +{} + +inputPassportElementError::inputPassportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<InputPassportElementErrorSource> &&source_) + : type_(std::move(type_)) + , message_(message_) + , source_(std::move(source_)) +{} + +const std::int32_t inputPassportElementError::ID; + +void inputPassportElementError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementError"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("message", message_); + s.store_object_field("source", static_cast<const BaseObject *>(source_.get())); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceUnspecified::inputPassportElementErrorSourceUnspecified() + : element_hash_() +{} + +inputPassportElementErrorSourceUnspecified::inputPassportElementErrorSourceUnspecified(bytes const &element_hash_) + : element_hash_(std::move(element_hash_)) +{} + +const std::int32_t inputPassportElementErrorSourceUnspecified::ID; + +void inputPassportElementErrorSourceUnspecified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceUnspecified"); + s.store_bytes_field("element_hash", element_hash_); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceDataField::inputPassportElementErrorSourceDataField() + : field_name_() + , data_hash_() +{} + +inputPassportElementErrorSourceDataField::inputPassportElementErrorSourceDataField(string const &field_name_, bytes const &data_hash_) + : field_name_(field_name_) + , data_hash_(std::move(data_hash_)) +{} + +const std::int32_t inputPassportElementErrorSourceDataField::ID; + +void inputPassportElementErrorSourceDataField::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceDataField"); + s.store_field("field_name", field_name_); + s.store_bytes_field("data_hash", data_hash_); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceFrontSide::inputPassportElementErrorSourceFrontSide() + : file_hash_() +{} + +inputPassportElementErrorSourceFrontSide::inputPassportElementErrorSourceFrontSide(bytes const &file_hash_) + : file_hash_(std::move(file_hash_)) +{} + +const std::int32_t inputPassportElementErrorSourceFrontSide::ID; + +void inputPassportElementErrorSourceFrontSide::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceFrontSide"); + s.store_bytes_field("file_hash", file_hash_); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceReverseSide::inputPassportElementErrorSourceReverseSide() + : file_hash_() +{} + +inputPassportElementErrorSourceReverseSide::inputPassportElementErrorSourceReverseSide(bytes const &file_hash_) + : file_hash_(std::move(file_hash_)) +{} + +const std::int32_t inputPassportElementErrorSourceReverseSide::ID; + +void inputPassportElementErrorSourceReverseSide::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceReverseSide"); + s.store_bytes_field("file_hash", file_hash_); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceSelfie::inputPassportElementErrorSourceSelfie() + : file_hash_() +{} + +inputPassportElementErrorSourceSelfie::inputPassportElementErrorSourceSelfie(bytes const &file_hash_) + : file_hash_(std::move(file_hash_)) +{} + +const std::int32_t inputPassportElementErrorSourceSelfie::ID; + +void inputPassportElementErrorSourceSelfie::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceSelfie"); + s.store_bytes_field("file_hash", file_hash_); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceTranslationFile::inputPassportElementErrorSourceTranslationFile() + : file_hash_() +{} + +inputPassportElementErrorSourceTranslationFile::inputPassportElementErrorSourceTranslationFile(bytes const &file_hash_) + : file_hash_(std::move(file_hash_)) +{} + +const std::int32_t inputPassportElementErrorSourceTranslationFile::ID; + +void inputPassportElementErrorSourceTranslationFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceTranslationFile"); + s.store_bytes_field("file_hash", file_hash_); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceTranslationFiles::inputPassportElementErrorSourceTranslationFiles() + : file_hashes_() +{} + +inputPassportElementErrorSourceTranslationFiles::inputPassportElementErrorSourceTranslationFiles(array<bytes> &&file_hashes_) + : file_hashes_(std::move(file_hashes_)) +{} + +const std::int32_t inputPassportElementErrorSourceTranslationFiles::ID; + +void inputPassportElementErrorSourceTranslationFiles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceTranslationFiles"); + { s.store_vector_begin("file_hashes", file_hashes_.size()); for (const auto &_value : file_hashes_) { s.store_bytes_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputPassportElementErrorSourceFile::inputPassportElementErrorSourceFile() + : file_hash_() +{} + +inputPassportElementErrorSourceFile::inputPassportElementErrorSourceFile(bytes const &file_hash_) + : file_hash_(std::move(file_hash_)) +{} + +const std::int32_t inputPassportElementErrorSourceFile::ID; + +void inputPassportElementErrorSourceFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceFile"); + s.store_bytes_field("file_hash", file_hash_); + s.store_class_end(); + } +} + +inputPassportElementErrorSourceFiles::inputPassportElementErrorSourceFiles() + : file_hashes_() +{} + +inputPassportElementErrorSourceFiles::inputPassportElementErrorSourceFiles(array<bytes> &&file_hashes_) + : file_hashes_(std::move(file_hashes_)) +{} + +const std::int32_t inputPassportElementErrorSourceFiles::ID; + +void inputPassportElementErrorSourceFiles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPassportElementErrorSourceFiles"); + { s.store_vector_begin("file_hashes", file_hashes_.size()); for (const auto &_value : file_hashes_) { s.store_bytes_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputPersonalDocument::inputPersonalDocument() + : files_() + , translation_() +{} + +inputPersonalDocument::inputPersonalDocument(array<object_ptr<InputFile>> &&files_, array<object_ptr<InputFile>> &&translation_) + : files_(std::move(files_)) + , translation_(std::move(translation_)) +{} + +const std::int32_t inputPersonalDocument::ID; + +void inputPersonalDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPersonalDocument"); + { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputSticker::inputSticker() + : sticker_() + , emojis_() + , format_() + , mask_position_() +{} + +inputSticker::inputSticker(object_ptr<InputFile> &&sticker_, string const &emojis_, object_ptr<StickerFormat> &&format_, object_ptr<maskPosition> &&mask_position_) + : sticker_(std::move(sticker_)) + , emojis_(emojis_) + , format_(std::move(format_)) + , mask_position_(std::move(mask_position_)) +{} + +const std::int32_t inputSticker::ID; + +void inputSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputSticker"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_field("emojis", emojis_); + s.store_object_field("format", static_cast<const BaseObject *>(format_.get())); + s.store_object_field("mask_position", static_cast<const BaseObject *>(mask_position_.get())); + s.store_class_end(); + } +} + +inputThumbnail::inputThumbnail() + : thumbnail_() + , width_() + , height_() +{} + +inputThumbnail::inputThumbnail(object_ptr<InputFile> &&thumbnail_, int32 width_, int32 height_) + : thumbnail_(std::move(thumbnail_)) + , width_(width_) + , height_(height_) +{} + +const std::int32_t inputThumbnail::ID; + +void inputThumbnail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputThumbnail"); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_class_end(); + } +} + +internalLinkTypeActiveSessions::internalLinkTypeActiveSessions() { +} + +const std::int32_t internalLinkTypeActiveSessions::ID; + +void internalLinkTypeActiveSessions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeActiveSessions"); + s.store_class_end(); + } +} + +internalLinkTypeAttachmentMenuBot::internalLinkTypeAttachmentMenuBot() + : target_chat_() + , bot_username_() + , url_() +{} + +internalLinkTypeAttachmentMenuBot::internalLinkTypeAttachmentMenuBot(object_ptr<TargetChat> &&target_chat_, string const &bot_username_, string const &url_) + : target_chat_(std::move(target_chat_)) + , bot_username_(bot_username_) + , url_(url_) +{} + +const std::int32_t internalLinkTypeAttachmentMenuBot::ID; + +void internalLinkTypeAttachmentMenuBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeAttachmentMenuBot"); + s.store_object_field("target_chat", static_cast<const BaseObject *>(target_chat_.get())); + s.store_field("bot_username", bot_username_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +internalLinkTypeAuthenticationCode::internalLinkTypeAuthenticationCode() + : code_() +{} + +internalLinkTypeAuthenticationCode::internalLinkTypeAuthenticationCode(string const &code_) + : code_(code_) +{} + +const std::int32_t internalLinkTypeAuthenticationCode::ID; + +void internalLinkTypeAuthenticationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeAuthenticationCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +internalLinkTypeBackground::internalLinkTypeBackground() + : background_name_() +{} + +internalLinkTypeBackground::internalLinkTypeBackground(string const &background_name_) + : background_name_(background_name_) +{} + +const std::int32_t internalLinkTypeBackground::ID; + +void internalLinkTypeBackground::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeBackground"); + s.store_field("background_name", background_name_); + s.store_class_end(); + } +} + +internalLinkTypeBotStart::internalLinkTypeBotStart() + : bot_username_() + , start_parameter_() + , autostart_() +{} + +internalLinkTypeBotStart::internalLinkTypeBotStart(string const &bot_username_, string const &start_parameter_, bool autostart_) + : bot_username_(bot_username_) + , start_parameter_(start_parameter_) + , autostart_(autostart_) +{} + +const std::int32_t internalLinkTypeBotStart::ID; + +void internalLinkTypeBotStart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeBotStart"); + s.store_field("bot_username", bot_username_); + s.store_field("start_parameter", start_parameter_); + s.store_field("autostart", autostart_); + s.store_class_end(); + } +} + +internalLinkTypeBotStartInGroup::internalLinkTypeBotStartInGroup() + : bot_username_() + , start_parameter_() + , administrator_rights_() +{} + +internalLinkTypeBotStartInGroup::internalLinkTypeBotStartInGroup(string const &bot_username_, string const &start_parameter_, object_ptr<chatAdministratorRights> &&administrator_rights_) + : bot_username_(bot_username_) + , start_parameter_(start_parameter_) + , administrator_rights_(std::move(administrator_rights_)) +{} + +const std::int32_t internalLinkTypeBotStartInGroup::ID; + +void internalLinkTypeBotStartInGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeBotStartInGroup"); + s.store_field("bot_username", bot_username_); + s.store_field("start_parameter", start_parameter_); + s.store_object_field("administrator_rights", static_cast<const BaseObject *>(administrator_rights_.get())); + s.store_class_end(); + } +} + +internalLinkTypeBotAddToChannel::internalLinkTypeBotAddToChannel() + : bot_username_() + , administrator_rights_() +{} + +internalLinkTypeBotAddToChannel::internalLinkTypeBotAddToChannel(string const &bot_username_, object_ptr<chatAdministratorRights> &&administrator_rights_) + : bot_username_(bot_username_) + , administrator_rights_(std::move(administrator_rights_)) +{} + +const std::int32_t internalLinkTypeBotAddToChannel::ID; + +void internalLinkTypeBotAddToChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeBotAddToChannel"); + s.store_field("bot_username", bot_username_); + s.store_object_field("administrator_rights", static_cast<const BaseObject *>(administrator_rights_.get())); + s.store_class_end(); + } +} + +internalLinkTypeChangePhoneNumber::internalLinkTypeChangePhoneNumber() { +} + +const std::int32_t internalLinkTypeChangePhoneNumber::ID; + +void internalLinkTypeChangePhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeChangePhoneNumber"); + s.store_class_end(); + } +} + +internalLinkTypeChatInvite::internalLinkTypeChatInvite() + : invite_link_() +{} + +internalLinkTypeChatInvite::internalLinkTypeChatInvite(string const &invite_link_) + : invite_link_(invite_link_) +{} + +const std::int32_t internalLinkTypeChatInvite::ID; + +void internalLinkTypeChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeChatInvite"); + s.store_field("invite_link", invite_link_); + s.store_class_end(); + } +} + +internalLinkTypeFilterSettings::internalLinkTypeFilterSettings() { +} + +const std::int32_t internalLinkTypeFilterSettings::ID; + +void internalLinkTypeFilterSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeFilterSettings"); + s.store_class_end(); + } +} + +internalLinkTypeGame::internalLinkTypeGame() + : bot_username_() + , game_short_name_() +{} + +internalLinkTypeGame::internalLinkTypeGame(string const &bot_username_, string const &game_short_name_) + : bot_username_(bot_username_) + , game_short_name_(game_short_name_) +{} + +const std::int32_t internalLinkTypeGame::ID; + +void internalLinkTypeGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeGame"); + s.store_field("bot_username", bot_username_); + s.store_field("game_short_name", game_short_name_); + s.store_class_end(); + } +} + +internalLinkTypeInstantView::internalLinkTypeInstantView() + : url_() + , fallback_url_() +{} + +internalLinkTypeInstantView::internalLinkTypeInstantView(string const &url_, string const &fallback_url_) + : url_(url_) + , fallback_url_(fallback_url_) +{} + +const std::int32_t internalLinkTypeInstantView::ID; + +void internalLinkTypeInstantView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeInstantView"); + s.store_field("url", url_); + s.store_field("fallback_url", fallback_url_); + s.store_class_end(); + } +} + +internalLinkTypeInvoice::internalLinkTypeInvoice() + : invoice_name_() +{} + +internalLinkTypeInvoice::internalLinkTypeInvoice(string const &invoice_name_) + : invoice_name_(invoice_name_) +{} + +const std::int32_t internalLinkTypeInvoice::ID; + +void internalLinkTypeInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeInvoice"); + s.store_field("invoice_name", invoice_name_); + s.store_class_end(); + } +} + +internalLinkTypeLanguagePack::internalLinkTypeLanguagePack() + : language_pack_id_() +{} + +internalLinkTypeLanguagePack::internalLinkTypeLanguagePack(string const &language_pack_id_) + : language_pack_id_(language_pack_id_) +{} + +const std::int32_t internalLinkTypeLanguagePack::ID; + +void internalLinkTypeLanguagePack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeLanguagePack"); + s.store_field("language_pack_id", language_pack_id_); + s.store_class_end(); + } +} + +internalLinkTypeLanguageSettings::internalLinkTypeLanguageSettings() { +} + +const std::int32_t internalLinkTypeLanguageSettings::ID; + +void internalLinkTypeLanguageSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeLanguageSettings"); + s.store_class_end(); + } +} + +internalLinkTypeMessage::internalLinkTypeMessage() + : url_() +{} + +internalLinkTypeMessage::internalLinkTypeMessage(string const &url_) + : url_(url_) +{} + +const std::int32_t internalLinkTypeMessage::ID; + +void internalLinkTypeMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeMessage"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +internalLinkTypeMessageDraft::internalLinkTypeMessageDraft() + : text_() + , contains_link_() +{} + +internalLinkTypeMessageDraft::internalLinkTypeMessageDraft(object_ptr<formattedText> &&text_, bool contains_link_) + : text_(std::move(text_)) + , contains_link_(contains_link_) +{} + +const std::int32_t internalLinkTypeMessageDraft::ID; + +void internalLinkTypeMessageDraft::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeMessageDraft"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("contains_link", contains_link_); + s.store_class_end(); + } +} + +internalLinkTypePassportDataRequest::internalLinkTypePassportDataRequest() + : bot_user_id_() + , scope_() + , public_key_() + , nonce_() + , callback_url_() +{} + +internalLinkTypePassportDataRequest::internalLinkTypePassportDataRequest(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_, string const &callback_url_) + : bot_user_id_(bot_user_id_) + , scope_(scope_) + , public_key_(public_key_) + , nonce_(nonce_) + , callback_url_(callback_url_) +{} + +const std::int32_t internalLinkTypePassportDataRequest::ID; + +void internalLinkTypePassportDataRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypePassportDataRequest"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("scope", scope_); + s.store_field("public_key", public_key_); + s.store_field("nonce", nonce_); + s.store_field("callback_url", callback_url_); + s.store_class_end(); + } +} + +internalLinkTypePhoneNumberConfirmation::internalLinkTypePhoneNumberConfirmation() + : hash_() + , phone_number_() +{} + +internalLinkTypePhoneNumberConfirmation::internalLinkTypePhoneNumberConfirmation(string const &hash_, string const &phone_number_) + : hash_(hash_) + , phone_number_(phone_number_) +{} + +const std::int32_t internalLinkTypePhoneNumberConfirmation::ID; + +void internalLinkTypePhoneNumberConfirmation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypePhoneNumberConfirmation"); + s.store_field("hash", hash_); + s.store_field("phone_number", phone_number_); + s.store_class_end(); + } +} + +internalLinkTypePremiumFeatures::internalLinkTypePremiumFeatures() + : referrer_() +{} + +internalLinkTypePremiumFeatures::internalLinkTypePremiumFeatures(string const &referrer_) + : referrer_(referrer_) +{} + +const std::int32_t internalLinkTypePremiumFeatures::ID; + +void internalLinkTypePremiumFeatures::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypePremiumFeatures"); + s.store_field("referrer", referrer_); + s.store_class_end(); + } +} + +internalLinkTypePrivacyAndSecuritySettings::internalLinkTypePrivacyAndSecuritySettings() { +} + +const std::int32_t internalLinkTypePrivacyAndSecuritySettings::ID; + +void internalLinkTypePrivacyAndSecuritySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypePrivacyAndSecuritySettings"); + s.store_class_end(); + } +} + +internalLinkTypeProxy::internalLinkTypeProxy() + : server_() + , port_() + , type_() +{} + +internalLinkTypeProxy::internalLinkTypeProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_) + : server_(server_) + , port_(port_) + , type_(std::move(type_)) +{} + +const std::int32_t internalLinkTypeProxy::ID; + +void internalLinkTypeProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeProxy"); + s.store_field("server", server_); + s.store_field("port", port_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +internalLinkTypePublicChat::internalLinkTypePublicChat() + : chat_username_() +{} + +internalLinkTypePublicChat::internalLinkTypePublicChat(string const &chat_username_) + : chat_username_(chat_username_) +{} + +const std::int32_t internalLinkTypePublicChat::ID; + +void internalLinkTypePublicChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypePublicChat"); + s.store_field("chat_username", chat_username_); + s.store_class_end(); + } +} + +internalLinkTypeQrCodeAuthentication::internalLinkTypeQrCodeAuthentication() { +} + +const std::int32_t internalLinkTypeQrCodeAuthentication::ID; + +void internalLinkTypeQrCodeAuthentication::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeQrCodeAuthentication"); + s.store_class_end(); + } +} + +internalLinkTypeRestorePurchases::internalLinkTypeRestorePurchases() { +} + +const std::int32_t internalLinkTypeRestorePurchases::ID; + +void internalLinkTypeRestorePurchases::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeRestorePurchases"); + s.store_class_end(); + } +} + +internalLinkTypeSettings::internalLinkTypeSettings() { +} + +const std::int32_t internalLinkTypeSettings::ID; + +void internalLinkTypeSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeSettings"); + s.store_class_end(); + } +} + +internalLinkTypeStickerSet::internalLinkTypeStickerSet() + : sticker_set_name_() +{} + +internalLinkTypeStickerSet::internalLinkTypeStickerSet(string const &sticker_set_name_) + : sticker_set_name_(sticker_set_name_) +{} + +const std::int32_t internalLinkTypeStickerSet::ID; + +void internalLinkTypeStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeStickerSet"); + s.store_field("sticker_set_name", sticker_set_name_); + s.store_class_end(); + } +} + +internalLinkTypeTheme::internalLinkTypeTheme() + : theme_name_() +{} + +internalLinkTypeTheme::internalLinkTypeTheme(string const &theme_name_) + : theme_name_(theme_name_) +{} + +const std::int32_t internalLinkTypeTheme::ID; + +void internalLinkTypeTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeTheme"); + s.store_field("theme_name", theme_name_); + s.store_class_end(); + } +} + +internalLinkTypeThemeSettings::internalLinkTypeThemeSettings() { +} + +const std::int32_t internalLinkTypeThemeSettings::ID; + +void internalLinkTypeThemeSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeThemeSettings"); + s.store_class_end(); + } +} + +internalLinkTypeUnknownDeepLink::internalLinkTypeUnknownDeepLink() + : link_() +{} + +internalLinkTypeUnknownDeepLink::internalLinkTypeUnknownDeepLink(string const &link_) + : link_(link_) +{} + +const std::int32_t internalLinkTypeUnknownDeepLink::ID; + +void internalLinkTypeUnknownDeepLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeUnknownDeepLink"); + s.store_field("link", link_); + s.store_class_end(); + } +} + +internalLinkTypeUnsupportedProxy::internalLinkTypeUnsupportedProxy() { +} + +const std::int32_t internalLinkTypeUnsupportedProxy::ID; + +void internalLinkTypeUnsupportedProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeUnsupportedProxy"); + s.store_class_end(); + } +} + +internalLinkTypeUserPhoneNumber::internalLinkTypeUserPhoneNumber() + : phone_number_() +{} + +internalLinkTypeUserPhoneNumber::internalLinkTypeUserPhoneNumber(string const &phone_number_) + : phone_number_(phone_number_) +{} + +const std::int32_t internalLinkTypeUserPhoneNumber::ID; + +void internalLinkTypeUserPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeUserPhoneNumber"); + s.store_field("phone_number", phone_number_); + s.store_class_end(); + } +} + +internalLinkTypeVideoChat::internalLinkTypeVideoChat() + : chat_username_() + , invite_hash_() + , is_live_stream_() +{} + +internalLinkTypeVideoChat::internalLinkTypeVideoChat(string const &chat_username_, string const &invite_hash_, bool is_live_stream_) + : chat_username_(chat_username_) + , invite_hash_(invite_hash_) + , is_live_stream_(is_live_stream_) +{} + +const std::int32_t internalLinkTypeVideoChat::ID; + +void internalLinkTypeVideoChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "internalLinkTypeVideoChat"); + s.store_field("chat_username", chat_username_); + s.store_field("invite_hash", invite_hash_); + s.store_field("is_live_stream", is_live_stream_); + s.store_class_end(); + } +} + +invoice::invoice() + : currency_() + , price_parts_() + , max_tip_amount_() + , suggested_tip_amounts_() + , recurring_payment_terms_of_service_url_() + , is_test_() + , need_name_() + , need_phone_number_() + , need_email_address_() + , need_shipping_address_() + , send_phone_number_to_provider_() + , send_email_address_to_provider_() + , is_flexible_() +{} + +invoice::invoice(string const ¤cy_, array<object_ptr<labeledPricePart>> &&price_parts_, int53 max_tip_amount_, array<int53> &&suggested_tip_amounts_, string const &recurring_payment_terms_of_service_url_, bool is_test_, bool need_name_, bool need_phone_number_, bool need_email_address_, bool need_shipping_address_, bool send_phone_number_to_provider_, bool send_email_address_to_provider_, bool is_flexible_) + : currency_(currency_) + , price_parts_(std::move(price_parts_)) + , max_tip_amount_(max_tip_amount_) + , suggested_tip_amounts_(std::move(suggested_tip_amounts_)) + , recurring_payment_terms_of_service_url_(recurring_payment_terms_of_service_url_) + , is_test_(is_test_) + , need_name_(need_name_) + , need_phone_number_(need_phone_number_) + , need_email_address_(need_email_address_) + , need_shipping_address_(need_shipping_address_) + , send_phone_number_to_provider_(send_phone_number_to_provider_) + , send_email_address_to_provider_(send_email_address_to_provider_) + , is_flexible_(is_flexible_) +{} + +const std::int32_t invoice::ID; + +void invoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "invoice"); + s.store_field("currency", currency_); + { s.store_vector_begin("price_parts", price_parts_.size()); for (const auto &_value : price_parts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("max_tip_amount", max_tip_amount_); + { s.store_vector_begin("suggested_tip_amounts", suggested_tip_amounts_.size()); for (const auto &_value : suggested_tip_amounts_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("recurring_payment_terms_of_service_url", recurring_payment_terms_of_service_url_); + s.store_field("is_test", is_test_); + s.store_field("need_name", need_name_); + s.store_field("need_phone_number", need_phone_number_); + s.store_field("need_email_address", need_email_address_); + s.store_field("need_shipping_address", need_shipping_address_); + s.store_field("send_phone_number_to_provider", send_phone_number_to_provider_); + s.store_field("send_email_address_to_provider", send_email_address_to_provider_); + s.store_field("is_flexible", is_flexible_); + s.store_class_end(); + } +} + +jsonObjectMember::jsonObjectMember() + : key_() + , value_() +{} + +jsonObjectMember::jsonObjectMember(string const &key_, object_ptr<JsonValue> &&value_) + : key_(key_) + , value_(std::move(value_)) +{} + +const std::int32_t jsonObjectMember::ID; + +void jsonObjectMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonObjectMember"); + s.store_field("key", key_); + s.store_object_field("value", static_cast<const BaseObject *>(value_.get())); + s.store_class_end(); + } +} + +jsonValueNull::jsonValueNull() { +} + +const std::int32_t jsonValueNull::ID; + +void jsonValueNull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonValueNull"); + s.store_class_end(); + } +} + +jsonValueBoolean::jsonValueBoolean() + : value_() +{} + +jsonValueBoolean::jsonValueBoolean(bool value_) + : value_(value_) +{} + +const std::int32_t jsonValueBoolean::ID; + +void jsonValueBoolean::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonValueBoolean"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +jsonValueNumber::jsonValueNumber() + : value_() +{} + +jsonValueNumber::jsonValueNumber(double value_) + : value_(value_) +{} + +const std::int32_t jsonValueNumber::ID; + +void jsonValueNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonValueNumber"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +jsonValueString::jsonValueString() + : value_() +{} + +jsonValueString::jsonValueString(string const &value_) + : value_(value_) +{} + +const std::int32_t jsonValueString::ID; + +void jsonValueString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonValueString"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +jsonValueArray::jsonValueArray() + : values_() +{} + +jsonValueArray::jsonValueArray(array<object_ptr<JsonValue>> &&values_) + : values_(std::move(values_)) +{} + +const std::int32_t jsonValueArray::ID; + +void jsonValueArray::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonValueArray"); + { s.store_vector_begin("values", values_.size()); for (const auto &_value : values_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +jsonValueObject::jsonValueObject() + : members_() +{} + +jsonValueObject::jsonValueObject(array<object_ptr<jsonObjectMember>> &&members_) + : members_(std::move(members_)) +{} + +const std::int32_t jsonValueObject::ID; + +void jsonValueObject::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonValueObject"); + { s.store_vector_begin("members", members_.size()); for (const auto &_value : members_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +keyboardButton::keyboardButton() + : text_() + , type_() +{} + +keyboardButton::keyboardButton(string const &text_, object_ptr<KeyboardButtonType> &&type_) + : text_(text_) + , type_(std::move(type_)) +{} + +const std::int32_t keyboardButton::ID; + +void keyboardButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButton"); + s.store_field("text", text_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +keyboardButtonTypeText::keyboardButtonTypeText() { +} + +const std::int32_t keyboardButtonTypeText::ID; + +void keyboardButtonTypeText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonTypeText"); + s.store_class_end(); + } +} + +keyboardButtonTypeRequestPhoneNumber::keyboardButtonTypeRequestPhoneNumber() { +} + +const std::int32_t keyboardButtonTypeRequestPhoneNumber::ID; + +void keyboardButtonTypeRequestPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonTypeRequestPhoneNumber"); + s.store_class_end(); + } +} + +keyboardButtonTypeRequestLocation::keyboardButtonTypeRequestLocation() { +} + +const std::int32_t keyboardButtonTypeRequestLocation::ID; + +void keyboardButtonTypeRequestLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonTypeRequestLocation"); + s.store_class_end(); + } +} + +keyboardButtonTypeRequestPoll::keyboardButtonTypeRequestPoll() + : force_regular_() + , force_quiz_() +{} + +keyboardButtonTypeRequestPoll::keyboardButtonTypeRequestPoll(bool force_regular_, bool force_quiz_) + : force_regular_(force_regular_) + , force_quiz_(force_quiz_) +{} + +const std::int32_t keyboardButtonTypeRequestPoll::ID; + +void keyboardButtonTypeRequestPoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonTypeRequestPoll"); + s.store_field("force_regular", force_regular_); + s.store_field("force_quiz", force_quiz_); + s.store_class_end(); + } +} + +keyboardButtonTypeWebApp::keyboardButtonTypeWebApp() + : url_() +{} + +keyboardButtonTypeWebApp::keyboardButtonTypeWebApp(string const &url_) + : url_(url_) +{} + +const std::int32_t keyboardButtonTypeWebApp::ID; + +void keyboardButtonTypeWebApp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonTypeWebApp"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +labeledPricePart::labeledPricePart() + : label_() + , amount_() +{} + +labeledPricePart::labeledPricePart(string const &label_, int53 amount_) + : label_(label_) + , amount_(amount_) +{} + +const std::int32_t labeledPricePart::ID; + +void labeledPricePart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "labeledPricePart"); + s.store_field("label", label_); + s.store_field("amount", amount_); + s.store_class_end(); + } +} + +languagePackInfo::languagePackInfo() + : id_() + , base_language_pack_id_() + , name_() + , native_name_() + , plural_code_() + , is_official_() + , is_rtl_() + , is_beta_() + , is_installed_() + , total_string_count_() + , translated_string_count_() + , local_string_count_() + , translation_url_() +{} + +languagePackInfo::languagePackInfo(string const &id_, string const &base_language_pack_id_, string const &name_, string const &native_name_, string const &plural_code_, bool is_official_, bool is_rtl_, bool is_beta_, bool is_installed_, int32 total_string_count_, int32 translated_string_count_, int32 local_string_count_, string const &translation_url_) + : id_(id_) + , base_language_pack_id_(base_language_pack_id_) + , name_(name_) + , native_name_(native_name_) + , plural_code_(plural_code_) + , is_official_(is_official_) + , is_rtl_(is_rtl_) + , is_beta_(is_beta_) + , is_installed_(is_installed_) + , total_string_count_(total_string_count_) + , translated_string_count_(translated_string_count_) + , local_string_count_(local_string_count_) + , translation_url_(translation_url_) +{} + +const std::int32_t languagePackInfo::ID; + +void languagePackInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "languagePackInfo"); + s.store_field("id", id_); + s.store_field("base_language_pack_id", base_language_pack_id_); + s.store_field("name", name_); + s.store_field("native_name", native_name_); + s.store_field("plural_code", plural_code_); + s.store_field("is_official", is_official_); + s.store_field("is_rtl", is_rtl_); + s.store_field("is_beta", is_beta_); + s.store_field("is_installed", is_installed_); + s.store_field("total_string_count", total_string_count_); + s.store_field("translated_string_count", translated_string_count_); + s.store_field("local_string_count", local_string_count_); + s.store_field("translation_url", translation_url_); + s.store_class_end(); + } +} + +languagePackString::languagePackString() + : key_() + , value_() +{} + +languagePackString::languagePackString(string const &key_, object_ptr<LanguagePackStringValue> &&value_) + : key_(key_) + , value_(std::move(value_)) +{} + +const std::int32_t languagePackString::ID; + +void languagePackString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "languagePackString"); + s.store_field("key", key_); + s.store_object_field("value", static_cast<const BaseObject *>(value_.get())); + s.store_class_end(); + } +} + +languagePackStringValueOrdinary::languagePackStringValueOrdinary() + : value_() +{} + +languagePackStringValueOrdinary::languagePackStringValueOrdinary(string const &value_) + : value_(value_) +{} + +const std::int32_t languagePackStringValueOrdinary::ID; + +void languagePackStringValueOrdinary::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "languagePackStringValueOrdinary"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +languagePackStringValuePluralized::languagePackStringValuePluralized() + : zero_value_() + , one_value_() + , two_value_() + , few_value_() + , many_value_() + , other_value_() +{} + +languagePackStringValuePluralized::languagePackStringValuePluralized(string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_) + : zero_value_(zero_value_) + , one_value_(one_value_) + , two_value_(two_value_) + , few_value_(few_value_) + , many_value_(many_value_) + , other_value_(other_value_) +{} + +const std::int32_t languagePackStringValuePluralized::ID; + +void languagePackStringValuePluralized::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "languagePackStringValuePluralized"); + s.store_field("zero_value", zero_value_); + s.store_field("one_value", one_value_); + s.store_field("two_value", two_value_); + s.store_field("few_value", few_value_); + s.store_field("many_value", many_value_); + s.store_field("other_value", other_value_); + s.store_class_end(); + } +} + +languagePackStringValueDeleted::languagePackStringValueDeleted() { +} + +const std::int32_t languagePackStringValueDeleted::ID; + +void languagePackStringValueDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "languagePackStringValueDeleted"); + s.store_class_end(); + } +} + +languagePackStrings::languagePackStrings() + : strings_() +{} + +languagePackStrings::languagePackStrings(array<object_ptr<languagePackString>> &&strings_) + : strings_(std::move(strings_)) +{} + +const std::int32_t languagePackStrings::ID; + +void languagePackStrings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "languagePackStrings"); + { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +localFile::localFile() + : path_() + , can_be_downloaded_() + , can_be_deleted_() + , is_downloading_active_() + , is_downloading_completed_() + , download_offset_() + , downloaded_prefix_size_() + , downloaded_size_() +{} + +localFile::localFile(string const &path_, bool can_be_downloaded_, bool can_be_deleted_, bool is_downloading_active_, bool is_downloading_completed_, int53 download_offset_, int53 downloaded_prefix_size_, int53 downloaded_size_) + : path_(path_) + , can_be_downloaded_(can_be_downloaded_) + , can_be_deleted_(can_be_deleted_) + , is_downloading_active_(is_downloading_active_) + , is_downloading_completed_(is_downloading_completed_) + , download_offset_(download_offset_) + , downloaded_prefix_size_(downloaded_prefix_size_) + , downloaded_size_(downloaded_size_) +{} + +const std::int32_t localFile::ID; + +void localFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "localFile"); + s.store_field("path", path_); + s.store_field("can_be_downloaded", can_be_downloaded_); + s.store_field("can_be_deleted", can_be_deleted_); + s.store_field("is_downloading_active", is_downloading_active_); + s.store_field("is_downloading_completed", is_downloading_completed_); + s.store_field("download_offset", download_offset_); + s.store_field("downloaded_prefix_size", downloaded_prefix_size_); + s.store_field("downloaded_size", downloaded_size_); + s.store_class_end(); + } +} + +localizationTargetInfo::localizationTargetInfo() + : language_packs_() +{} + +localizationTargetInfo::localizationTargetInfo(array<object_ptr<languagePackInfo>> &&language_packs_) + : language_packs_(std::move(language_packs_)) +{} + +const std::int32_t localizationTargetInfo::ID; + +void localizationTargetInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "localizationTargetInfo"); + { s.store_vector_begin("language_packs", language_packs_.size()); for (const auto &_value : language_packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +location::location() + : latitude_() + , longitude_() + , horizontal_accuracy_() +{} + +location::location(double latitude_, double longitude_, double horizontal_accuracy_) + : latitude_(latitude_) + , longitude_(longitude_) + , horizontal_accuracy_(horizontal_accuracy_) +{} + +const std::int32_t location::ID; + +void location::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "location"); + s.store_field("latitude", latitude_); + s.store_field("longitude", longitude_); + s.store_field("horizontal_accuracy", horizontal_accuracy_); + s.store_class_end(); + } +} + +logStreamDefault::logStreamDefault() { +} + +const std::int32_t logStreamDefault::ID; + +void logStreamDefault::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "logStreamDefault"); + s.store_class_end(); + } +} + +logStreamFile::logStreamFile() + : path_() + , max_file_size_() + , redirect_stderr_() +{} + +logStreamFile::logStreamFile(string const &path_, int53 max_file_size_, bool redirect_stderr_) + : path_(path_) + , max_file_size_(max_file_size_) + , redirect_stderr_(redirect_stderr_) +{} + +const std::int32_t logStreamFile::ID; + +void logStreamFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "logStreamFile"); + s.store_field("path", path_); + s.store_field("max_file_size", max_file_size_); + s.store_field("redirect_stderr", redirect_stderr_); + s.store_class_end(); + } +} + +logStreamEmpty::logStreamEmpty() { +} + +const std::int32_t logStreamEmpty::ID; + +void logStreamEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "logStreamEmpty"); + s.store_class_end(); + } +} + +logTags::logTags() + : tags_() +{} + +logTags::logTags(array<string> &&tags_) + : tags_(std::move(tags_)) +{} + +const std::int32_t logTags::ID; + +void logTags::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "logTags"); + { s.store_vector_begin("tags", tags_.size()); for (const auto &_value : tags_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +logVerbosityLevel::logVerbosityLevel() + : verbosity_level_() +{} + +logVerbosityLevel::logVerbosityLevel(int32 verbosity_level_) + : verbosity_level_(verbosity_level_) +{} + +const std::int32_t logVerbosityLevel::ID; + +void logVerbosityLevel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "logVerbosityLevel"); + s.store_field("verbosity_level", verbosity_level_); + s.store_class_end(); + } +} + +loginUrlInfoOpen::loginUrlInfoOpen() + : url_() + , skip_confirm_() +{} + +loginUrlInfoOpen::loginUrlInfoOpen(string const &url_, bool skip_confirm_) + : url_(url_) + , skip_confirm_(skip_confirm_) +{} + +const std::int32_t loginUrlInfoOpen::ID; + +void loginUrlInfoOpen::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "loginUrlInfoOpen"); + s.store_field("url", url_); + s.store_field("skip_confirm", skip_confirm_); + s.store_class_end(); + } +} + +loginUrlInfoRequestConfirmation::loginUrlInfoRequestConfirmation() + : url_() + , domain_() + , bot_user_id_() + , request_write_access_() +{} + +loginUrlInfoRequestConfirmation::loginUrlInfoRequestConfirmation(string const &url_, string const &domain_, int53 bot_user_id_, bool request_write_access_) + : url_(url_) + , domain_(domain_) + , bot_user_id_(bot_user_id_) + , request_write_access_(request_write_access_) +{} + +const std::int32_t loginUrlInfoRequestConfirmation::ID; + +void loginUrlInfoRequestConfirmation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "loginUrlInfoRequestConfirmation"); + s.store_field("url", url_); + s.store_field("domain", domain_); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("request_write_access", request_write_access_); + s.store_class_end(); + } +} + +maskPointForehead::maskPointForehead() { +} + +const std::int32_t maskPointForehead::ID; + +void maskPointForehead::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "maskPointForehead"); + s.store_class_end(); + } +} + +maskPointEyes::maskPointEyes() { +} + +const std::int32_t maskPointEyes::ID; + +void maskPointEyes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "maskPointEyes"); + s.store_class_end(); + } +} + +maskPointMouth::maskPointMouth() { +} + +const std::int32_t maskPointMouth::ID; + +void maskPointMouth::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "maskPointMouth"); + s.store_class_end(); + } +} + +maskPointChin::maskPointChin() { +} + +const std::int32_t maskPointChin::ID; + +void maskPointChin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "maskPointChin"); + s.store_class_end(); + } +} + +maskPosition::maskPosition() + : point_() + , x_shift_() + , y_shift_() + , scale_() +{} + +maskPosition::maskPosition(object_ptr<MaskPoint> &&point_, double x_shift_, double y_shift_, double scale_) + : point_(std::move(point_)) + , x_shift_(x_shift_) + , y_shift_(y_shift_) + , scale_(scale_) +{} + +const std::int32_t maskPosition::ID; + +void maskPosition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "maskPosition"); + s.store_object_field("point", static_cast<const BaseObject *>(point_.get())); + s.store_field("x_shift", x_shift_); + s.store_field("y_shift", y_shift_); + s.store_field("scale", scale_); + s.store_class_end(); + } +} + +message::message() + : id_() + , sender_id_() + , chat_id_() + , sending_state_() + , scheduling_state_() + , is_outgoing_() + , is_pinned_() + , can_be_edited_() + , can_be_forwarded_() + , can_be_saved_() + , can_be_deleted_only_for_self_() + , can_be_deleted_for_all_users_() + , can_get_added_reactions_() + , can_get_statistics_() + , can_get_message_thread_() + , can_get_viewers_() + , can_get_media_timestamp_links_() + , can_report_reactions_() + , has_timestamped_media_() + , is_channel_post_() + , is_topic_message_() + , contains_unread_mention_() + , date_() + , edit_date_() + , forward_info_() + , interaction_info_() + , unread_reactions_() + , reply_in_chat_id_() + , reply_to_message_id_() + , message_thread_id_() + , ttl_() + , ttl_expires_in_() + , via_bot_user_id_() + , author_signature_() + , media_album_id_() + , restriction_reason_() + , content_() + , reply_markup_() +{} + +message::message(int53 id_, object_ptr<MessageSender> &&sender_id_, int53 chat_id_, object_ptr<MessageSendingState> &&sending_state_, object_ptr<MessageSchedulingState> &&scheduling_state_, bool is_outgoing_, bool is_pinned_, bool can_be_edited_, bool can_be_forwarded_, bool can_be_saved_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_get_added_reactions_, bool can_get_statistics_, bool can_get_message_thread_, bool can_get_viewers_, bool can_get_media_timestamp_links_, bool can_report_reactions_, bool has_timestamped_media_, bool is_channel_post_, bool is_topic_message_, bool contains_unread_mention_, int32 date_, int32 edit_date_, object_ptr<messageForwardInfo> &&forward_info_, object_ptr<messageInteractionInfo> &&interaction_info_, array<object_ptr<unreadReaction>> &&unread_reactions_, int53 reply_in_chat_id_, int53 reply_to_message_id_, int53 message_thread_id_, int32 ttl_, double ttl_expires_in_, int53 via_bot_user_id_, string const &author_signature_, int64 media_album_id_, string const &restriction_reason_, object_ptr<MessageContent> &&content_, object_ptr<ReplyMarkup> &&reply_markup_) + : id_(id_) + , sender_id_(std::move(sender_id_)) + , chat_id_(chat_id_) + , sending_state_(std::move(sending_state_)) + , scheduling_state_(std::move(scheduling_state_)) + , is_outgoing_(is_outgoing_) + , is_pinned_(is_pinned_) + , can_be_edited_(can_be_edited_) + , can_be_forwarded_(can_be_forwarded_) + , can_be_saved_(can_be_saved_) + , can_be_deleted_only_for_self_(can_be_deleted_only_for_self_) + , can_be_deleted_for_all_users_(can_be_deleted_for_all_users_) + , can_get_added_reactions_(can_get_added_reactions_) + , can_get_statistics_(can_get_statistics_) + , can_get_message_thread_(can_get_message_thread_) + , can_get_viewers_(can_get_viewers_) + , can_get_media_timestamp_links_(can_get_media_timestamp_links_) + , can_report_reactions_(can_report_reactions_) + , has_timestamped_media_(has_timestamped_media_) + , is_channel_post_(is_channel_post_) + , is_topic_message_(is_topic_message_) + , contains_unread_mention_(contains_unread_mention_) + , date_(date_) + , edit_date_(edit_date_) + , forward_info_(std::move(forward_info_)) + , interaction_info_(std::move(interaction_info_)) + , unread_reactions_(std::move(unread_reactions_)) + , reply_in_chat_id_(reply_in_chat_id_) + , reply_to_message_id_(reply_to_message_id_) + , message_thread_id_(message_thread_id_) + , ttl_(ttl_) + , ttl_expires_in_(ttl_expires_in_) + , via_bot_user_id_(via_bot_user_id_) + , author_signature_(author_signature_) + , media_album_id_(media_album_id_) + , restriction_reason_(restriction_reason_) + , content_(std::move(content_)) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t message::ID; + +void message::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "message"); + s.store_field("id", id_); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_field("chat_id", chat_id_); + s.store_object_field("sending_state", static_cast<const BaseObject *>(sending_state_.get())); + s.store_object_field("scheduling_state", static_cast<const BaseObject *>(scheduling_state_.get())); + s.store_field("is_outgoing", is_outgoing_); + s.store_field("is_pinned", is_pinned_); + s.store_field("can_be_edited", can_be_edited_); + s.store_field("can_be_forwarded", can_be_forwarded_); + s.store_field("can_be_saved", can_be_saved_); + s.store_field("can_be_deleted_only_for_self", can_be_deleted_only_for_self_); + s.store_field("can_be_deleted_for_all_users", can_be_deleted_for_all_users_); + s.store_field("can_get_added_reactions", can_get_added_reactions_); + s.store_field("can_get_statistics", can_get_statistics_); + s.store_field("can_get_message_thread", can_get_message_thread_); + s.store_field("can_get_viewers", can_get_viewers_); + s.store_field("can_get_media_timestamp_links", can_get_media_timestamp_links_); + s.store_field("can_report_reactions", can_report_reactions_); + s.store_field("has_timestamped_media", has_timestamped_media_); + s.store_field("is_channel_post", is_channel_post_); + s.store_field("is_topic_message", is_topic_message_); + s.store_field("contains_unread_mention", contains_unread_mention_); + s.store_field("date", date_); + s.store_field("edit_date", edit_date_); + s.store_object_field("forward_info", static_cast<const BaseObject *>(forward_info_.get())); + s.store_object_field("interaction_info", static_cast<const BaseObject *>(interaction_info_.get())); + { s.store_vector_begin("unread_reactions", unread_reactions_.size()); for (const auto &_value : unread_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("reply_in_chat_id", reply_in_chat_id_); + s.store_field("reply_to_message_id", reply_to_message_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("ttl", ttl_); + s.store_field("ttl_expires_in", ttl_expires_in_); + s.store_field("via_bot_user_id", via_bot_user_id_); + s.store_field("author_signature", author_signature_); + s.store_field("media_album_id", media_album_id_); + s.store_field("restriction_reason", restriction_reason_); + s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_class_end(); + } +} + +messageCalendar::messageCalendar() + : total_count_() + , days_() +{} + +messageCalendar::messageCalendar(int32 total_count_, array<object_ptr<messageCalendarDay>> &&days_) + : total_count_(total_count_) + , days_(std::move(days_)) +{} + +const std::int32_t messageCalendar::ID; + +void messageCalendar::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageCalendar"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("days", days_.size()); for (const auto &_value : days_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageCalendarDay::messageCalendarDay() + : total_count_() + , message_() +{} + +messageCalendarDay::messageCalendarDay(int32 total_count_, object_ptr<message> &&message_) + : total_count_(total_count_) + , message_(std::move(message_)) +{} + +const std::int32_t messageCalendarDay::ID; + +void messageCalendarDay::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageCalendarDay"); + s.store_field("total_count", total_count_); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +messageText::messageText() + : text_() + , web_page_() +{} + +messageText::messageText(object_ptr<formattedText> &&text_, object_ptr<webPage> &&web_page_) + : text_(std::move(text_)) + , web_page_(std::move(web_page_)) +{} + +const std::int32_t messageText::ID; + +void messageText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageText"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_object_field("web_page", static_cast<const BaseObject *>(web_page_.get())); + s.store_class_end(); + } +} + +messageAnimation::messageAnimation() + : animation_() + , caption_() + , is_secret_() +{} + +messageAnimation::messageAnimation(object_ptr<animation> &&animation_, object_ptr<formattedText> &&caption_, bool is_secret_) + : animation_(std::move(animation_)) + , caption_(std::move(caption_)) + , is_secret_(is_secret_) +{} + +const std::int32_t messageAnimation::ID; + +void messageAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageAnimation"); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("is_secret", is_secret_); + s.store_class_end(); + } +} + +messageAudio::messageAudio() + : audio_() + , caption_() +{} + +messageAudio::messageAudio(object_ptr<audio> &&audio_, object_ptr<formattedText> &&caption_) + : audio_(std::move(audio_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t messageAudio::ID; + +void messageAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageAudio"); + s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +messageDocument::messageDocument() + : document_() + , caption_() +{} + +messageDocument::messageDocument(object_ptr<document> &&document_, object_ptr<formattedText> &&caption_) + : document_(std::move(document_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t messageDocument::ID; + +void messageDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageDocument"); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +messagePhoto::messagePhoto() + : photo_() + , caption_() + , is_secret_() +{} + +messagePhoto::messagePhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_, bool is_secret_) + : photo_(std::move(photo_)) + , caption_(std::move(caption_)) + , is_secret_(is_secret_) +{} + +const std::int32_t messagePhoto::ID; + +void messagePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("is_secret", is_secret_); + s.store_class_end(); + } +} + +messageExpiredPhoto::messageExpiredPhoto() { +} + +const std::int32_t messageExpiredPhoto::ID; + +void messageExpiredPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExpiredPhoto"); + s.store_class_end(); + } +} + +messageSticker::messageSticker() + : sticker_() + , is_premium_() +{} + +messageSticker::messageSticker(object_ptr<sticker> &&sticker_, bool is_premium_) + : sticker_(std::move(sticker_)) + , is_premium_(is_premium_) +{} + +const std::int32_t messageSticker::ID; + +void messageSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSticker"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_field("is_premium", is_premium_); + s.store_class_end(); + } +} + +messageVideo::messageVideo() + : video_() + , caption_() + , is_secret_() +{} + +messageVideo::messageVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_, bool is_secret_) + : video_(std::move(video_)) + , caption_(std::move(caption_)) + , is_secret_(is_secret_) +{} + +const std::int32_t messageVideo::ID; + +void messageVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageVideo"); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("is_secret", is_secret_); + s.store_class_end(); + } +} + +messageExpiredVideo::messageExpiredVideo() { +} + +const std::int32_t messageExpiredVideo::ID; + +void messageExpiredVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExpiredVideo"); + s.store_class_end(); + } +} + +messageVideoNote::messageVideoNote() + : video_note_() + , is_viewed_() + , is_secret_() +{} + +messageVideoNote::messageVideoNote(object_ptr<videoNote> &&video_note_, bool is_viewed_, bool is_secret_) + : video_note_(std::move(video_note_)) + , is_viewed_(is_viewed_) + , is_secret_(is_secret_) +{} + +const std::int32_t messageVideoNote::ID; + +void messageVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageVideoNote"); + s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get())); + s.store_field("is_viewed", is_viewed_); + s.store_field("is_secret", is_secret_); + s.store_class_end(); + } +} + +messageVoiceNote::messageVoiceNote() + : voice_note_() + , caption_() + , is_listened_() +{} + +messageVoiceNote::messageVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<formattedText> &&caption_, bool is_listened_) + : voice_note_(std::move(voice_note_)) + , caption_(std::move(caption_)) + , is_listened_(is_listened_) +{} + +const std::int32_t messageVoiceNote::ID; + +void messageVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageVoiceNote"); + s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("is_listened", is_listened_); + s.store_class_end(); + } +} + +messageLocation::messageLocation() + : location_() + , live_period_() + , expires_in_() + , heading_() + , proximity_alert_radius_() +{} + +messageLocation::messageLocation(object_ptr<location> &&location_, int32 live_period_, int32 expires_in_, int32 heading_, int32 proximity_alert_radius_) + : location_(std::move(location_)) + , live_period_(live_period_) + , expires_in_(expires_in_) + , heading_(heading_) + , proximity_alert_radius_(proximity_alert_radius_) +{} + +const std::int32_t messageLocation::ID; + +void messageLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageLocation"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("live_period", live_period_); + s.store_field("expires_in", expires_in_); + s.store_field("heading", heading_); + s.store_field("proximity_alert_radius", proximity_alert_radius_); + s.store_class_end(); + } +} + +messageVenue::messageVenue() + : venue_() +{} + +messageVenue::messageVenue(object_ptr<venue> &&venue_) + : venue_(std::move(venue_)) +{} + +const std::int32_t messageVenue::ID; + +void messageVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageVenue"); + s.store_object_field("venue", static_cast<const BaseObject *>(venue_.get())); + s.store_class_end(); + } +} + +messageContact::messageContact() + : contact_() +{} + +messageContact::messageContact(object_ptr<contact> &&contact_) + : contact_(std::move(contact_)) +{} + +const std::int32_t messageContact::ID; + +void messageContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageContact"); + s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get())); + s.store_class_end(); + } +} + +messageAnimatedEmoji::messageAnimatedEmoji() + : animated_emoji_() + , emoji_() +{} + +messageAnimatedEmoji::messageAnimatedEmoji(object_ptr<animatedEmoji> &&animated_emoji_, string const &emoji_) + : animated_emoji_(std::move(animated_emoji_)) + , emoji_(emoji_) +{} + +const std::int32_t messageAnimatedEmoji::ID; + +void messageAnimatedEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageAnimatedEmoji"); + s.store_object_field("animated_emoji", static_cast<const BaseObject *>(animated_emoji_.get())); + s.store_field("emoji", emoji_); + s.store_class_end(); + } +} + +messageDice::messageDice() + : initial_state_() + , final_state_() + , emoji_() + , value_() + , success_animation_frame_number_() +{} + +messageDice::messageDice(object_ptr<DiceStickers> &&initial_state_, object_ptr<DiceStickers> &&final_state_, string const &emoji_, int32 value_, int32 success_animation_frame_number_) + : initial_state_(std::move(initial_state_)) + , final_state_(std::move(final_state_)) + , emoji_(emoji_) + , value_(value_) + , success_animation_frame_number_(success_animation_frame_number_) +{} + +const std::int32_t messageDice::ID; + +void messageDice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageDice"); + s.store_object_field("initial_state", static_cast<const BaseObject *>(initial_state_.get())); + s.store_object_field("final_state", static_cast<const BaseObject *>(final_state_.get())); + s.store_field("emoji", emoji_); + s.store_field("value", value_); + s.store_field("success_animation_frame_number", success_animation_frame_number_); + s.store_class_end(); + } +} + +messageGame::messageGame() + : game_() +{} + +messageGame::messageGame(object_ptr<game> &&game_) + : game_(std::move(game_)) +{} + +const std::int32_t messageGame::ID; + +void messageGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageGame"); + s.store_object_field("game", static_cast<const BaseObject *>(game_.get())); + s.store_class_end(); + } +} + +messagePoll::messagePoll() + : poll_() +{} + +messagePoll::messagePoll(object_ptr<poll> &&poll_) + : poll_(std::move(poll_)) +{} + +const std::int32_t messagePoll::ID; + +void messagePoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePoll"); + s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get())); + s.store_class_end(); + } +} + +messageInvoice::messageInvoice() + : title_() + , description_() + , photo_() + , currency_() + , total_amount_() + , start_parameter_() + , is_test_() + , need_shipping_address_() + , receipt_message_id_() + , extended_media_() +{} + +messageInvoice::messageInvoice(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const ¤cy_, int53 total_amount_, string const &start_parameter_, bool is_test_, bool need_shipping_address_, int53 receipt_message_id_, object_ptr<MessageExtendedMedia> &&extended_media_) + : title_(title_) + , description_(std::move(description_)) + , photo_(std::move(photo_)) + , currency_(currency_) + , total_amount_(total_amount_) + , start_parameter_(start_parameter_) + , is_test_(is_test_) + , need_shipping_address_(need_shipping_address_) + , receipt_message_id_(receipt_message_id_) + , extended_media_(std::move(extended_media_)) +{} + +const std::int32_t messageInvoice::ID; + +void messageInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageInvoice"); + s.store_field("title", title_); + s.store_object_field("description", static_cast<const BaseObject *>(description_.get())); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_field("start_parameter", start_parameter_); + s.store_field("is_test", is_test_); + s.store_field("need_shipping_address", need_shipping_address_); + s.store_field("receipt_message_id", receipt_message_id_); + s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get())); + s.store_class_end(); + } +} + +messageCall::messageCall() + : is_video_() + , discard_reason_() + , duration_() +{} + +messageCall::messageCall(bool is_video_, object_ptr<CallDiscardReason> &&discard_reason_, int32 duration_) + : is_video_(is_video_) + , discard_reason_(std::move(discard_reason_)) + , duration_(duration_) +{} + +const std::int32_t messageCall::ID; + +void messageCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageCall"); + s.store_field("is_video", is_video_); + s.store_object_field("discard_reason", static_cast<const BaseObject *>(discard_reason_.get())); + s.store_field("duration", duration_); + s.store_class_end(); + } +} + +messageVideoChatScheduled::messageVideoChatScheduled() + : group_call_id_() + , start_date_() +{} + +messageVideoChatScheduled::messageVideoChatScheduled(int32 group_call_id_, int32 start_date_) + : group_call_id_(group_call_id_) + , start_date_(start_date_) +{} + +const std::int32_t messageVideoChatScheduled::ID; + +void messageVideoChatScheduled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageVideoChatScheduled"); + s.store_field("group_call_id", group_call_id_); + s.store_field("start_date", start_date_); + s.store_class_end(); + } +} + +messageVideoChatStarted::messageVideoChatStarted() + : group_call_id_() +{} + +messageVideoChatStarted::messageVideoChatStarted(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t messageVideoChatStarted::ID; + +void messageVideoChatStarted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageVideoChatStarted"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +messageVideoChatEnded::messageVideoChatEnded() + : duration_() +{} + +messageVideoChatEnded::messageVideoChatEnded(int32 duration_) + : duration_(duration_) +{} + +const std::int32_t messageVideoChatEnded::ID; + +void messageVideoChatEnded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageVideoChatEnded"); + s.store_field("duration", duration_); + s.store_class_end(); + } +} + +messageInviteVideoChatParticipants::messageInviteVideoChatParticipants() + : group_call_id_() + , user_ids_() +{} + +messageInviteVideoChatParticipants::messageInviteVideoChatParticipants(int32 group_call_id_, array<int53> &&user_ids_) + : group_call_id_(group_call_id_) + , user_ids_(std::move(user_ids_)) +{} + +const std::int32_t messageInviteVideoChatParticipants::ID; + +void messageInviteVideoChatParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageInviteVideoChatParticipants"); + s.store_field("group_call_id", group_call_id_); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageBasicGroupChatCreate::messageBasicGroupChatCreate() + : title_() + , member_user_ids_() +{} + +messageBasicGroupChatCreate::messageBasicGroupChatCreate(string const &title_, array<int53> &&member_user_ids_) + : title_(title_) + , member_user_ids_(std::move(member_user_ids_)) +{} + +const std::int32_t messageBasicGroupChatCreate::ID; + +void messageBasicGroupChatCreate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageBasicGroupChatCreate"); + s.store_field("title", title_); + { s.store_vector_begin("member_user_ids", member_user_ids_.size()); for (const auto &_value : member_user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageSupergroupChatCreate::messageSupergroupChatCreate() + : title_() +{} + +messageSupergroupChatCreate::messageSupergroupChatCreate(string const &title_) + : title_(title_) +{} + +const std::int32_t messageSupergroupChatCreate::ID; + +void messageSupergroupChatCreate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSupergroupChatCreate"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +messageChatChangeTitle::messageChatChangeTitle() + : title_() +{} + +messageChatChangeTitle::messageChatChangeTitle(string const &title_) + : title_(title_) +{} + +const std::int32_t messageChatChangeTitle::ID; + +void messageChatChangeTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatChangeTitle"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +messageChatChangePhoto::messageChatChangePhoto() + : photo_() +{} + +messageChatChangePhoto::messageChatChangePhoto(object_ptr<chatPhoto> &&photo_) + : photo_(std::move(photo_)) +{} + +const std::int32_t messageChatChangePhoto::ID; + +void messageChatChangePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatChangePhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +messageChatDeletePhoto::messageChatDeletePhoto() { +} + +const std::int32_t messageChatDeletePhoto::ID; + +void messageChatDeletePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatDeletePhoto"); + s.store_class_end(); + } +} + +messageChatAddMembers::messageChatAddMembers() + : member_user_ids_() +{} + +messageChatAddMembers::messageChatAddMembers(array<int53> &&member_user_ids_) + : member_user_ids_(std::move(member_user_ids_)) +{} + +const std::int32_t messageChatAddMembers::ID; + +void messageChatAddMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatAddMembers"); + { s.store_vector_begin("member_user_ids", member_user_ids_.size()); for (const auto &_value : member_user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageChatJoinByLink::messageChatJoinByLink() { +} + +const std::int32_t messageChatJoinByLink::ID; + +void messageChatJoinByLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatJoinByLink"); + s.store_class_end(); + } +} + +messageChatJoinByRequest::messageChatJoinByRequest() { +} + +const std::int32_t messageChatJoinByRequest::ID; + +void messageChatJoinByRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatJoinByRequest"); + s.store_class_end(); + } +} + +messageChatDeleteMember::messageChatDeleteMember() + : user_id_() +{} + +messageChatDeleteMember::messageChatDeleteMember(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t messageChatDeleteMember::ID; + +void messageChatDeleteMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatDeleteMember"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +messageChatUpgradeTo::messageChatUpgradeTo() + : supergroup_id_() +{} + +messageChatUpgradeTo::messageChatUpgradeTo(int53 supergroup_id_) + : supergroup_id_(supergroup_id_) +{} + +const std::int32_t messageChatUpgradeTo::ID; + +void messageChatUpgradeTo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatUpgradeTo"); + s.store_field("supergroup_id", supergroup_id_); + s.store_class_end(); + } +} + +messageChatUpgradeFrom::messageChatUpgradeFrom() + : title_() + , basic_group_id_() +{} + +messageChatUpgradeFrom::messageChatUpgradeFrom(string const &title_, int53 basic_group_id_) + : title_(title_) + , basic_group_id_(basic_group_id_) +{} + +const std::int32_t messageChatUpgradeFrom::ID; + +void messageChatUpgradeFrom::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatUpgradeFrom"); + s.store_field("title", title_); + s.store_field("basic_group_id", basic_group_id_); + s.store_class_end(); + } +} + +messagePinMessage::messagePinMessage() + : message_id_() +{} + +messagePinMessage::messagePinMessage(int53 message_id_) + : message_id_(message_id_) +{} + +const std::int32_t messagePinMessage::ID; + +void messagePinMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePinMessage"); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +messageScreenshotTaken::messageScreenshotTaken() { +} + +const std::int32_t messageScreenshotTaken::ID; + +void messageScreenshotTaken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageScreenshotTaken"); + s.store_class_end(); + } +} + +messageChatSetTheme::messageChatSetTheme() + : theme_name_() +{} + +messageChatSetTheme::messageChatSetTheme(string const &theme_name_) + : theme_name_(theme_name_) +{} + +const std::int32_t messageChatSetTheme::ID; + +void messageChatSetTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatSetTheme"); + s.store_field("theme_name", theme_name_); + s.store_class_end(); + } +} + +messageChatSetTtl::messageChatSetTtl() + : ttl_() +{} + +messageChatSetTtl::messageChatSetTtl(int32 ttl_) + : ttl_(ttl_) +{} + +const std::int32_t messageChatSetTtl::ID; + +void messageChatSetTtl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageChatSetTtl"); + s.store_field("ttl", ttl_); + s.store_class_end(); + } +} + +messageForumTopicCreated::messageForumTopicCreated() + : name_() + , icon_() +{} + +messageForumTopicCreated::messageForumTopicCreated(string const &name_, object_ptr<forumTopicIcon> &&icon_) + : name_(name_) + , icon_(std::move(icon_)) +{} + +const std::int32_t messageForumTopicCreated::ID; + +void messageForumTopicCreated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForumTopicCreated"); + s.store_field("name", name_); + s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get())); + s.store_class_end(); + } +} + +messageForumTopicEdited::messageForumTopicEdited() + : name_() + , edit_icon_custom_emoji_id_() + , icon_custom_emoji_id_() +{} + +messageForumTopicEdited::messageForumTopicEdited(string const &name_, bool edit_icon_custom_emoji_id_, int64 icon_custom_emoji_id_) + : name_(name_) + , edit_icon_custom_emoji_id_(edit_icon_custom_emoji_id_) + , icon_custom_emoji_id_(icon_custom_emoji_id_) +{} + +const std::int32_t messageForumTopicEdited::ID; + +void messageForumTopicEdited::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForumTopicEdited"); + s.store_field("name", name_); + s.store_field("edit_icon_custom_emoji_id", edit_icon_custom_emoji_id_); + s.store_field("icon_custom_emoji_id", icon_custom_emoji_id_); + s.store_class_end(); + } +} + +messageForumTopicIsClosedToggled::messageForumTopicIsClosedToggled() + : is_closed_() +{} + +messageForumTopicIsClosedToggled::messageForumTopicIsClosedToggled(bool is_closed_) + : is_closed_(is_closed_) +{} + +const std::int32_t messageForumTopicIsClosedToggled::ID; + +void messageForumTopicIsClosedToggled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForumTopicIsClosedToggled"); + s.store_field("is_closed", is_closed_); + s.store_class_end(); + } +} + +messageCustomServiceAction::messageCustomServiceAction() + : text_() +{} + +messageCustomServiceAction::messageCustomServiceAction(string const &text_) + : text_(text_) +{} + +const std::int32_t messageCustomServiceAction::ID; + +void messageCustomServiceAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageCustomServiceAction"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +messageGameScore::messageGameScore() + : game_message_id_() + , game_id_() + , score_() +{} + +messageGameScore::messageGameScore(int53 game_message_id_, int64 game_id_, int32 score_) + : game_message_id_(game_message_id_) + , game_id_(game_id_) + , score_(score_) +{} + +const std::int32_t messageGameScore::ID; + +void messageGameScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageGameScore"); + s.store_field("game_message_id", game_message_id_); + s.store_field("game_id", game_id_); + s.store_field("score", score_); + s.store_class_end(); + } +} + +messagePaymentSuccessful::messagePaymentSuccessful() + : invoice_chat_id_() + , invoice_message_id_() + , currency_() + , total_amount_() + , is_recurring_() + , is_first_recurring_() + , invoice_name_() +{} + +messagePaymentSuccessful::messagePaymentSuccessful(int53 invoice_chat_id_, int53 invoice_message_id_, string const ¤cy_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, string const &invoice_name_) + : invoice_chat_id_(invoice_chat_id_) + , invoice_message_id_(invoice_message_id_) + , currency_(currency_) + , total_amount_(total_amount_) + , is_recurring_(is_recurring_) + , is_first_recurring_(is_first_recurring_) + , invoice_name_(invoice_name_) +{} + +const std::int32_t messagePaymentSuccessful::ID; + +void messagePaymentSuccessful::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePaymentSuccessful"); + s.store_field("invoice_chat_id", invoice_chat_id_); + s.store_field("invoice_message_id", invoice_message_id_); + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_field("is_recurring", is_recurring_); + s.store_field("is_first_recurring", is_first_recurring_); + s.store_field("invoice_name", invoice_name_); + s.store_class_end(); + } +} + +messagePaymentSuccessfulBot::messagePaymentSuccessfulBot() + : currency_() + , total_amount_() + , is_recurring_() + , is_first_recurring_() + , invoice_payload_() + , shipping_option_id_() + , order_info_() + , telegram_payment_charge_id_() + , provider_payment_charge_id_() +{} + +messagePaymentSuccessfulBot::messagePaymentSuccessfulBot(string const ¤cy_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_, string const &telegram_payment_charge_id_, string const &provider_payment_charge_id_) + : currency_(currency_) + , total_amount_(total_amount_) + , is_recurring_(is_recurring_) + , is_first_recurring_(is_first_recurring_) + , invoice_payload_(std::move(invoice_payload_)) + , shipping_option_id_(shipping_option_id_) + , order_info_(std::move(order_info_)) + , telegram_payment_charge_id_(telegram_payment_charge_id_) + , provider_payment_charge_id_(provider_payment_charge_id_) +{} + +const std::int32_t messagePaymentSuccessfulBot::ID; + +void messagePaymentSuccessfulBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePaymentSuccessfulBot"); + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_field("is_recurring", is_recurring_); + s.store_field("is_first_recurring", is_first_recurring_); + s.store_bytes_field("invoice_payload", invoice_payload_); + s.store_field("shipping_option_id", shipping_option_id_); + s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get())); + s.store_field("telegram_payment_charge_id", telegram_payment_charge_id_); + s.store_field("provider_payment_charge_id", provider_payment_charge_id_); + s.store_class_end(); + } +} + +messageGiftedPremium::messageGiftedPremium() + : currency_() + , amount_() + , month_count_() + , sticker_() +{} + +messageGiftedPremium::messageGiftedPremium(string const ¤cy_, int53 amount_, int32 month_count_, object_ptr<sticker> &&sticker_) + : currency_(currency_) + , amount_(amount_) + , month_count_(month_count_) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t messageGiftedPremium::ID; + +void messageGiftedPremium::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageGiftedPremium"); + s.store_field("currency", currency_); + s.store_field("amount", amount_); + s.store_field("month_count", month_count_); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +messageContactRegistered::messageContactRegistered() { +} + +const std::int32_t messageContactRegistered::ID; + +void messageContactRegistered::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageContactRegistered"); + s.store_class_end(); + } +} + +messageWebsiteConnected::messageWebsiteConnected() + : domain_name_() +{} + +messageWebsiteConnected::messageWebsiteConnected(string const &domain_name_) + : domain_name_(domain_name_) +{} + +const std::int32_t messageWebsiteConnected::ID; + +void messageWebsiteConnected::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageWebsiteConnected"); + s.store_field("domain_name", domain_name_); + s.store_class_end(); + } +} + +messageWebAppDataSent::messageWebAppDataSent() + : button_text_() +{} + +messageWebAppDataSent::messageWebAppDataSent(string const &button_text_) + : button_text_(button_text_) +{} + +const std::int32_t messageWebAppDataSent::ID; + +void messageWebAppDataSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageWebAppDataSent"); + s.store_field("button_text", button_text_); + s.store_class_end(); + } +} + +messageWebAppDataReceived::messageWebAppDataReceived() + : button_text_() + , data_() +{} + +messageWebAppDataReceived::messageWebAppDataReceived(string const &button_text_, string const &data_) + : button_text_(button_text_) + , data_(data_) +{} + +const std::int32_t messageWebAppDataReceived::ID; + +void messageWebAppDataReceived::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageWebAppDataReceived"); + s.store_field("button_text", button_text_); + s.store_field("data", data_); + s.store_class_end(); + } +} + +messagePassportDataSent::messagePassportDataSent() + : types_() +{} + +messagePassportDataSent::messagePassportDataSent(array<object_ptr<PassportElementType>> &&types_) + : types_(std::move(types_)) +{} + +const std::int32_t messagePassportDataSent::ID; + +void messagePassportDataSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePassportDataSent"); + { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messagePassportDataReceived::messagePassportDataReceived() + : elements_() + , credentials_() +{} + +messagePassportDataReceived::messagePassportDataReceived(array<object_ptr<encryptedPassportElement>> &&elements_, object_ptr<encryptedCredentials> &&credentials_) + : elements_(std::move(elements_)) + , credentials_(std::move(credentials_)) +{} + +const std::int32_t messagePassportDataReceived::ID; + +void messagePassportDataReceived::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePassportDataReceived"); + { s.store_vector_begin("elements", elements_.size()); for (const auto &_value : elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get())); + s.store_class_end(); + } +} + +messageProximityAlertTriggered::messageProximityAlertTriggered() + : traveler_id_() + , watcher_id_() + , distance_() +{} + +messageProximityAlertTriggered::messageProximityAlertTriggered(object_ptr<MessageSender> &&traveler_id_, object_ptr<MessageSender> &&watcher_id_, int32 distance_) + : traveler_id_(std::move(traveler_id_)) + , watcher_id_(std::move(watcher_id_)) + , distance_(distance_) +{} + +const std::int32_t messageProximityAlertTriggered::ID; + +void messageProximityAlertTriggered::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageProximityAlertTriggered"); + s.store_object_field("traveler_id", static_cast<const BaseObject *>(traveler_id_.get())); + s.store_object_field("watcher_id", static_cast<const BaseObject *>(watcher_id_.get())); + s.store_field("distance", distance_); + s.store_class_end(); + } +} + +messageUnsupported::messageUnsupported() { +} + +const std::int32_t messageUnsupported::ID; + +void messageUnsupported::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageUnsupported"); + s.store_class_end(); + } +} + +messageCopyOptions::messageCopyOptions() + : send_copy_() + , replace_caption_() + , new_caption_() +{} + +messageCopyOptions::messageCopyOptions(bool send_copy_, bool replace_caption_, object_ptr<formattedText> &&new_caption_) + : send_copy_(send_copy_) + , replace_caption_(replace_caption_) + , new_caption_(std::move(new_caption_)) +{} + +const std::int32_t messageCopyOptions::ID; + +void messageCopyOptions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageCopyOptions"); + s.store_field("send_copy", send_copy_); + s.store_field("replace_caption", replace_caption_); + s.store_object_field("new_caption", static_cast<const BaseObject *>(new_caption_.get())); + s.store_class_end(); + } +} + +messageExtendedMediaPreview::messageExtendedMediaPreview() + : width_() + , height_() + , duration_() + , minithumbnail_() + , caption_() +{} + +messageExtendedMediaPreview::messageExtendedMediaPreview(int32 width_, int32 height_, int32 duration_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<formattedText> &&caption_) + : width_(width_) + , height_(height_) + , duration_(duration_) + , minithumbnail_(std::move(minithumbnail_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t messageExtendedMediaPreview::ID; + +void messageExtendedMediaPreview::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExtendedMediaPreview"); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_field("duration", duration_); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +messageExtendedMediaPhoto::messageExtendedMediaPhoto() + : photo_() + , caption_() +{} + +messageExtendedMediaPhoto::messageExtendedMediaPhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_) + : photo_(std::move(photo_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t messageExtendedMediaPhoto::ID; + +void messageExtendedMediaPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExtendedMediaPhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +messageExtendedMediaVideo::messageExtendedMediaVideo() + : video_() + , caption_() +{} + +messageExtendedMediaVideo::messageExtendedMediaVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_) + : video_(std::move(video_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t messageExtendedMediaVideo::ID; + +void messageExtendedMediaVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExtendedMediaVideo"); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +messageExtendedMediaUnsupported::messageExtendedMediaUnsupported() + : caption_() +{} + +messageExtendedMediaUnsupported::messageExtendedMediaUnsupported(object_ptr<formattedText> &&caption_) + : caption_(std::move(caption_)) +{} + +const std::int32_t messageExtendedMediaUnsupported::ID; + +void messageExtendedMediaUnsupported::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExtendedMediaUnsupported"); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +messageFileTypePrivate::messageFileTypePrivate() + : name_() +{} + +messageFileTypePrivate::messageFileTypePrivate(string const &name_) + : name_(name_) +{} + +const std::int32_t messageFileTypePrivate::ID; + +void messageFileTypePrivate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageFileTypePrivate"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +messageFileTypeGroup::messageFileTypeGroup() + : title_() +{} + +messageFileTypeGroup::messageFileTypeGroup(string const &title_) + : title_(title_) +{} + +const std::int32_t messageFileTypeGroup::ID; + +void messageFileTypeGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageFileTypeGroup"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +messageFileTypeUnknown::messageFileTypeUnknown() { +} + +const std::int32_t messageFileTypeUnknown::ID; + +void messageFileTypeUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageFileTypeUnknown"); + s.store_class_end(); + } +} + +messageForwardInfo::messageForwardInfo() + : origin_() + , date_() + , public_service_announcement_type_() + , from_chat_id_() + , from_message_id_() +{} + +messageForwardInfo::messageForwardInfo(object_ptr<MessageForwardOrigin> &&origin_, int32 date_, string const &public_service_announcement_type_, int53 from_chat_id_, int53 from_message_id_) + : origin_(std::move(origin_)) + , date_(date_) + , public_service_announcement_type_(public_service_announcement_type_) + , from_chat_id_(from_chat_id_) + , from_message_id_(from_message_id_) +{} + +const std::int32_t messageForwardInfo::ID; + +void messageForwardInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForwardInfo"); + s.store_object_field("origin", static_cast<const BaseObject *>(origin_.get())); + s.store_field("date", date_); + s.store_field("public_service_announcement_type", public_service_announcement_type_); + s.store_field("from_chat_id", from_chat_id_); + s.store_field("from_message_id", from_message_id_); + s.store_class_end(); + } +} + +messageForwardOriginUser::messageForwardOriginUser() + : sender_user_id_() +{} + +messageForwardOriginUser::messageForwardOriginUser(int53 sender_user_id_) + : sender_user_id_(sender_user_id_) +{} + +const std::int32_t messageForwardOriginUser::ID; + +void messageForwardOriginUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForwardOriginUser"); + s.store_field("sender_user_id", sender_user_id_); + s.store_class_end(); + } +} + +messageForwardOriginChat::messageForwardOriginChat() + : sender_chat_id_() + , author_signature_() +{} + +messageForwardOriginChat::messageForwardOriginChat(int53 sender_chat_id_, string const &author_signature_) + : sender_chat_id_(sender_chat_id_) + , author_signature_(author_signature_) +{} + +const std::int32_t messageForwardOriginChat::ID; + +void messageForwardOriginChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForwardOriginChat"); + s.store_field("sender_chat_id", sender_chat_id_); + s.store_field("author_signature", author_signature_); + s.store_class_end(); + } +} + +messageForwardOriginHiddenUser::messageForwardOriginHiddenUser() + : sender_name_() +{} + +messageForwardOriginHiddenUser::messageForwardOriginHiddenUser(string const &sender_name_) + : sender_name_(sender_name_) +{} + +const std::int32_t messageForwardOriginHiddenUser::ID; + +void messageForwardOriginHiddenUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForwardOriginHiddenUser"); + s.store_field("sender_name", sender_name_); + s.store_class_end(); + } +} + +messageForwardOriginChannel::messageForwardOriginChannel() + : chat_id_() + , message_id_() + , author_signature_() +{} + +messageForwardOriginChannel::messageForwardOriginChannel(int53 chat_id_, int53 message_id_, string const &author_signature_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , author_signature_(author_signature_) +{} + +const std::int32_t messageForwardOriginChannel::ID; + +void messageForwardOriginChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForwardOriginChannel"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("author_signature", author_signature_); + s.store_class_end(); + } +} + +messageForwardOriginMessageImport::messageForwardOriginMessageImport() + : sender_name_() +{} + +messageForwardOriginMessageImport::messageForwardOriginMessageImport(string const &sender_name_) + : sender_name_(sender_name_) +{} + +const std::int32_t messageForwardOriginMessageImport::ID; + +void messageForwardOriginMessageImport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageForwardOriginMessageImport"); + s.store_field("sender_name", sender_name_); + s.store_class_end(); + } +} + +messageInteractionInfo::messageInteractionInfo() + : view_count_() + , forward_count_() + , reply_info_() + , reactions_() +{} + +messageInteractionInfo::messageInteractionInfo(int32 view_count_, int32 forward_count_, object_ptr<messageReplyInfo> &&reply_info_, array<object_ptr<messageReaction>> &&reactions_) + : view_count_(view_count_) + , forward_count_(forward_count_) + , reply_info_(std::move(reply_info_)) + , reactions_(std::move(reactions_)) +{} + +const std::int32_t messageInteractionInfo::ID; + +void messageInteractionInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageInteractionInfo"); + s.store_field("view_count", view_count_); + s.store_field("forward_count", forward_count_); + s.store_object_field("reply_info", static_cast<const BaseObject *>(reply_info_.get())); + { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageLink::messageLink() + : link_() + , is_public_() +{} + +messageLink::messageLink(string const &link_, bool is_public_) + : link_(link_) + , is_public_(is_public_) +{} + +const std::int32_t messageLink::ID; + +void messageLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageLink"); + s.store_field("link", link_); + s.store_field("is_public", is_public_); + s.store_class_end(); + } +} + +messageLinkInfo::messageLinkInfo() + : is_public_() + , chat_id_() + , message_thread_id_() + , message_() + , media_timestamp_() + , for_album_() +{} + +messageLinkInfo::messageLinkInfo(bool is_public_, int53 chat_id_, int53 message_thread_id_, object_ptr<message> &&message_, int32 media_timestamp_, bool for_album_) + : is_public_(is_public_) + , chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , message_(std::move(message_)) + , media_timestamp_(media_timestamp_) + , for_album_(for_album_) +{} + +const std::int32_t messageLinkInfo::ID; + +void messageLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageLinkInfo"); + s.store_field("is_public", is_public_); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("media_timestamp", media_timestamp_); + s.store_field("for_album", for_album_); + s.store_class_end(); + } +} + +messagePosition::messagePosition() + : position_() + , message_id_() + , date_() +{} + +messagePosition::messagePosition(int32 position_, int53 message_id_, int32 date_) + : position_(position_) + , message_id_(message_id_) + , date_(date_) +{} + +const std::int32_t messagePosition::ID; + +void messagePosition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePosition"); + s.store_field("position", position_); + s.store_field("message_id", message_id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +messagePositions::messagePositions() + : total_count_() + , positions_() +{} + +messagePositions::messagePositions(int32 total_count_, array<object_ptr<messagePosition>> &&positions_) + : total_count_(total_count_) + , positions_(std::move(positions_)) +{} + +const std::int32_t messagePositions::ID; + +void messagePositions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePositions"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageReaction::messageReaction() + : type_() + , total_count_() + , is_chosen_() + , recent_sender_ids_() +{} + +messageReaction::messageReaction(object_ptr<ReactionType> &&type_, int32 total_count_, bool is_chosen_, array<object_ptr<MessageSender>> &&recent_sender_ids_) + : type_(std::move(type_)) + , total_count_(total_count_) + , is_chosen_(is_chosen_) + , recent_sender_ids_(std::move(recent_sender_ids_)) +{} + +const std::int32_t messageReaction::ID; + +void messageReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageReaction"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("total_count", total_count_); + s.store_field("is_chosen", is_chosen_); + { s.store_vector_begin("recent_sender_ids", recent_sender_ids_.size()); for (const auto &_value : recent_sender_ids_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageReplyInfo::messageReplyInfo() + : reply_count_() + , recent_replier_ids_() + , last_read_inbox_message_id_() + , last_read_outbox_message_id_() + , last_message_id_() +{} + +messageReplyInfo::messageReplyInfo(int32 reply_count_, array<object_ptr<MessageSender>> &&recent_replier_ids_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int53 last_message_id_) + : reply_count_(reply_count_) + , recent_replier_ids_(std::move(recent_replier_ids_)) + , last_read_inbox_message_id_(last_read_inbox_message_id_) + , last_read_outbox_message_id_(last_read_outbox_message_id_) + , last_message_id_(last_message_id_) +{} + +const std::int32_t messageReplyInfo::ID; + +void messageReplyInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageReplyInfo"); + s.store_field("reply_count", reply_count_); + { s.store_vector_begin("recent_replier_ids", recent_replier_ids_.size()); for (const auto &_value : recent_replier_ids_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_); + s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_); + s.store_field("last_message_id", last_message_id_); + s.store_class_end(); + } +} + +messageSchedulingStateSendAtDate::messageSchedulingStateSendAtDate() + : send_date_() +{} + +messageSchedulingStateSendAtDate::messageSchedulingStateSendAtDate(int32 send_date_) + : send_date_(send_date_) +{} + +const std::int32_t messageSchedulingStateSendAtDate::ID; + +void messageSchedulingStateSendAtDate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSchedulingStateSendAtDate"); + s.store_field("send_date", send_date_); + s.store_class_end(); + } +} + +messageSchedulingStateSendWhenOnline::messageSchedulingStateSendWhenOnline() { +} + +const std::int32_t messageSchedulingStateSendWhenOnline::ID; + +void messageSchedulingStateSendWhenOnline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSchedulingStateSendWhenOnline"); + s.store_class_end(); + } +} + +messageSendOptions::messageSendOptions() + : disable_notification_() + , from_background_() + , protect_content_() + , update_order_of_installed_sticker_sets_() + , scheduling_state_() +{} + +messageSendOptions::messageSendOptions(bool disable_notification_, bool from_background_, bool protect_content_, bool update_order_of_installed_sticker_sets_, object_ptr<MessageSchedulingState> &&scheduling_state_) + : disable_notification_(disable_notification_) + , from_background_(from_background_) + , protect_content_(protect_content_) + , update_order_of_installed_sticker_sets_(update_order_of_installed_sticker_sets_) + , scheduling_state_(std::move(scheduling_state_)) +{} + +const std::int32_t messageSendOptions::ID; + +void messageSendOptions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSendOptions"); + s.store_field("disable_notification", disable_notification_); + s.store_field("from_background", from_background_); + s.store_field("protect_content", protect_content_); + s.store_field("update_order_of_installed_sticker_sets", update_order_of_installed_sticker_sets_); + s.store_object_field("scheduling_state", static_cast<const BaseObject *>(scheduling_state_.get())); + s.store_class_end(); + } +} + +messageSenderUser::messageSenderUser() + : user_id_() +{} + +messageSenderUser::messageSenderUser(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t messageSenderUser::ID; + +void messageSenderUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSenderUser"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +messageSenderChat::messageSenderChat() + : chat_id_() +{} + +messageSenderChat::messageSenderChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t messageSenderChat::ID; + +void messageSenderChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSenderChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +messageSenders::messageSenders() + : total_count_() + , senders_() +{} + +messageSenders::messageSenders(int32 total_count_, array<object_ptr<MessageSender>> &&senders_) + : total_count_(total_count_) + , senders_(std::move(senders_)) +{} + +const std::int32_t messageSenders::ID; + +void messageSenders::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSenders"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("senders", senders_.size()); for (const auto &_value : senders_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messageSendingStatePending::messageSendingStatePending() { +} + +const std::int32_t messageSendingStatePending::ID; + +void messageSendingStatePending::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSendingStatePending"); + s.store_class_end(); + } +} + +messageSendingStateFailed::messageSendingStateFailed() + : error_code_() + , error_message_() + , can_retry_() + , need_another_sender_() + , retry_after_() +{} + +messageSendingStateFailed::messageSendingStateFailed(int32 error_code_, string const &error_message_, bool can_retry_, bool need_another_sender_, double retry_after_) + : error_code_(error_code_) + , error_message_(error_message_) + , can_retry_(can_retry_) + , need_another_sender_(need_another_sender_) + , retry_after_(retry_after_) +{} + +const std::int32_t messageSendingStateFailed::ID; + +void messageSendingStateFailed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageSendingStateFailed"); + s.store_field("error_code", error_code_); + s.store_field("error_message", error_message_); + s.store_field("can_retry", can_retry_); + s.store_field("need_another_sender", need_another_sender_); + s.store_field("retry_after", retry_after_); + s.store_class_end(); + } +} + +messageStatistics::messageStatistics() + : message_interaction_graph_() +{} + +messageStatistics::messageStatistics(object_ptr<StatisticalGraph> &&message_interaction_graph_) + : message_interaction_graph_(std::move(message_interaction_graph_)) +{} + +const std::int32_t messageStatistics::ID; + +void messageStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageStatistics"); + s.store_object_field("message_interaction_graph", static_cast<const BaseObject *>(message_interaction_graph_.get())); + s.store_class_end(); + } +} + +messageThreadInfo::messageThreadInfo() + : chat_id_() + , message_thread_id_() + , reply_info_() + , unread_message_count_() + , messages_() + , draft_message_() +{} + +messageThreadInfo::messageThreadInfo(int53 chat_id_, int53 message_thread_id_, object_ptr<messageReplyInfo> &&reply_info_, int32 unread_message_count_, array<object_ptr<message>> &&messages_, object_ptr<draftMessage> &&draft_message_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , reply_info_(std::move(reply_info_)) + , unread_message_count_(unread_message_count_) + , messages_(std::move(messages_)) + , draft_message_(std::move(draft_message_)) +{} + +const std::int32_t messageThreadInfo::ID; + +void messageThreadInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageThreadInfo"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_object_field("reply_info", static_cast<const BaseObject *>(reply_info_.get())); + s.store_field("unread_message_count", unread_message_count_); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get())); + s.store_class_end(); + } +} + +messages::messages() + : total_count_() + , messages_() +{} + +messages::messages(int32 total_count_, array<object_ptr<message>> &&messages_) + : total_count_(total_count_) + , messages_(std::move(messages_)) +{} + +const std::int32_t messages::ID; + +void messages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +minithumbnail::minithumbnail() + : width_() + , height_() + , data_() +{} + +minithumbnail::minithumbnail(int32 width_, int32 height_, bytes const &data_) + : width_(width_) + , height_(height_) + , data_(std::move(data_)) +{} + +const std::int32_t minithumbnail::ID; + +void minithumbnail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "minithumbnail"); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +networkStatistics::networkStatistics() + : since_date_() + , entries_() +{} + +networkStatistics::networkStatistics(int32 since_date_, array<object_ptr<NetworkStatisticsEntry>> &&entries_) + : since_date_(since_date_) + , entries_(std::move(entries_)) +{} + +const std::int32_t networkStatistics::ID; + +void networkStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkStatistics"); + s.store_field("since_date", since_date_); + { s.store_vector_begin("entries", entries_.size()); for (const auto &_value : entries_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +networkStatisticsEntryFile::networkStatisticsEntryFile() + : file_type_() + , network_type_() + , sent_bytes_() + , received_bytes_() +{} + +networkStatisticsEntryFile::networkStatisticsEntryFile(object_ptr<FileType> &&file_type_, object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_) + : file_type_(std::move(file_type_)) + , network_type_(std::move(network_type_)) + , sent_bytes_(sent_bytes_) + , received_bytes_(received_bytes_) +{} + +const std::int32_t networkStatisticsEntryFile::ID; + +void networkStatisticsEntryFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkStatisticsEntryFile"); + s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get())); + s.store_object_field("network_type", static_cast<const BaseObject *>(network_type_.get())); + s.store_field("sent_bytes", sent_bytes_); + s.store_field("received_bytes", received_bytes_); + s.store_class_end(); + } +} + +networkStatisticsEntryCall::networkStatisticsEntryCall() + : network_type_() + , sent_bytes_() + , received_bytes_() + , duration_() +{} + +networkStatisticsEntryCall::networkStatisticsEntryCall(object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_, double duration_) + : network_type_(std::move(network_type_)) + , sent_bytes_(sent_bytes_) + , received_bytes_(received_bytes_) + , duration_(duration_) +{} + +const std::int32_t networkStatisticsEntryCall::ID; + +void networkStatisticsEntryCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkStatisticsEntryCall"); + s.store_object_field("network_type", static_cast<const BaseObject *>(network_type_.get())); + s.store_field("sent_bytes", sent_bytes_); + s.store_field("received_bytes", received_bytes_); + s.store_field("duration", duration_); + s.store_class_end(); + } +} + +networkTypeNone::networkTypeNone() { +} + +const std::int32_t networkTypeNone::ID; + +void networkTypeNone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkTypeNone"); + s.store_class_end(); + } +} + +networkTypeMobile::networkTypeMobile() { +} + +const std::int32_t networkTypeMobile::ID; + +void networkTypeMobile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkTypeMobile"); + s.store_class_end(); + } +} + +networkTypeMobileRoaming::networkTypeMobileRoaming() { +} + +const std::int32_t networkTypeMobileRoaming::ID; + +void networkTypeMobileRoaming::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkTypeMobileRoaming"); + s.store_class_end(); + } +} + +networkTypeWiFi::networkTypeWiFi() { +} + +const std::int32_t networkTypeWiFi::ID; + +void networkTypeWiFi::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkTypeWiFi"); + s.store_class_end(); + } +} + +networkTypeOther::networkTypeOther() { +} + +const std::int32_t networkTypeOther::ID; + +void networkTypeOther::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "networkTypeOther"); + s.store_class_end(); + } +} + +notification::notification() + : id_() + , date_() + , is_silent_() + , type_() +{} + +notification::notification(int32 id_, int32 date_, bool is_silent_, object_ptr<NotificationType> &&type_) + : id_(id_) + , date_(date_) + , is_silent_(is_silent_) + , type_(std::move(type_)) +{} + +const std::int32_t notification::ID; + +void notification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notification"); + s.store_field("id", id_); + s.store_field("date", date_); + s.store_field("is_silent", is_silent_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +notificationGroup::notificationGroup() + : id_() + , type_() + , chat_id_() + , total_count_() + , notifications_() +{} + +notificationGroup::notificationGroup(int32 id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int32 total_count_, array<object_ptr<notification>> &¬ifications_) + : id_(id_) + , type_(std::move(type_)) + , chat_id_(chat_id_) + , total_count_(total_count_) + , notifications_(std::move(notifications_)) +{} + +const std::int32_t notificationGroup::ID; + +void notificationGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationGroup"); + s.store_field("id", id_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("chat_id", chat_id_); + s.store_field("total_count", total_count_); + { s.store_vector_begin("notifications", notifications_.size()); for (const auto &_value : notifications_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +notificationGroupTypeMessages::notificationGroupTypeMessages() { +} + +const std::int32_t notificationGroupTypeMessages::ID; + +void notificationGroupTypeMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationGroupTypeMessages"); + s.store_class_end(); + } +} + +notificationGroupTypeMentions::notificationGroupTypeMentions() { +} + +const std::int32_t notificationGroupTypeMentions::ID; + +void notificationGroupTypeMentions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationGroupTypeMentions"); + s.store_class_end(); + } +} + +notificationGroupTypeSecretChat::notificationGroupTypeSecretChat() { +} + +const std::int32_t notificationGroupTypeSecretChat::ID; + +void notificationGroupTypeSecretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationGroupTypeSecretChat"); + s.store_class_end(); + } +} + +notificationGroupTypeCalls::notificationGroupTypeCalls() { +} + +const std::int32_t notificationGroupTypeCalls::ID; + +void notificationGroupTypeCalls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationGroupTypeCalls"); + s.store_class_end(); + } +} + +notificationSettingsScopePrivateChats::notificationSettingsScopePrivateChats() { +} + +const std::int32_t notificationSettingsScopePrivateChats::ID; + +void notificationSettingsScopePrivateChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSettingsScopePrivateChats"); + s.store_class_end(); + } +} + +notificationSettingsScopeGroupChats::notificationSettingsScopeGroupChats() { +} + +const std::int32_t notificationSettingsScopeGroupChats::ID; + +void notificationSettingsScopeGroupChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSettingsScopeGroupChats"); + s.store_class_end(); + } +} + +notificationSettingsScopeChannelChats::notificationSettingsScopeChannelChats() { +} + +const std::int32_t notificationSettingsScopeChannelChats::ID; + +void notificationSettingsScopeChannelChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSettingsScopeChannelChats"); + s.store_class_end(); + } +} + +notificationSound::notificationSound() + : id_() + , duration_() + , date_() + , title_() + , data_() + , sound_() +{} + +notificationSound::notificationSound(int64 id_, int32 duration_, int32 date_, string const &title_, string const &data_, object_ptr<file> &&sound_) + : id_(id_) + , duration_(duration_) + , date_(date_) + , title_(title_) + , data_(data_) + , sound_(std::move(sound_)) +{} + +const std::int32_t notificationSound::ID; + +void notificationSound::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSound"); + s.store_field("id", id_); + s.store_field("duration", duration_); + s.store_field("date", date_); + s.store_field("title", title_); + s.store_field("data", data_); + s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get())); + s.store_class_end(); + } +} + +notificationSounds::notificationSounds() + : notification_sounds_() +{} + +notificationSounds::notificationSounds(array<object_ptr<notificationSound>> &¬ification_sounds_) + : notification_sounds_(std::move(notification_sounds_)) +{} + +const std::int32_t notificationSounds::ID; + +void notificationSounds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSounds"); + { s.store_vector_begin("notification_sounds", notification_sounds_.size()); for (const auto &_value : notification_sounds_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +notificationTypeNewMessage::notificationTypeNewMessage() + : message_() + , show_preview_() +{} + +notificationTypeNewMessage::notificationTypeNewMessage(object_ptr<message> &&message_, bool show_preview_) + : message_(std::move(message_)) + , show_preview_(show_preview_) +{} + +const std::int32_t notificationTypeNewMessage::ID; + +void notificationTypeNewMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationTypeNewMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("show_preview", show_preview_); + s.store_class_end(); + } +} + +notificationTypeNewSecretChat::notificationTypeNewSecretChat() { +} + +const std::int32_t notificationTypeNewSecretChat::ID; + +void notificationTypeNewSecretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationTypeNewSecretChat"); + s.store_class_end(); + } +} + +notificationTypeNewCall::notificationTypeNewCall() + : call_id_() +{} + +notificationTypeNewCall::notificationTypeNewCall(int32 call_id_) + : call_id_(call_id_) +{} + +const std::int32_t notificationTypeNewCall::ID; + +void notificationTypeNewCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationTypeNewCall"); + s.store_field("call_id", call_id_); + s.store_class_end(); + } +} + +notificationTypeNewPushMessage::notificationTypeNewPushMessage() + : message_id_() + , sender_id_() + , sender_name_() + , is_outgoing_() + , content_() +{} + +notificationTypeNewPushMessage::notificationTypeNewPushMessage(int53 message_id_, object_ptr<MessageSender> &&sender_id_, string const &sender_name_, bool is_outgoing_, object_ptr<PushMessageContent> &&content_) + : message_id_(message_id_) + , sender_id_(std::move(sender_id_)) + , sender_name_(sender_name_) + , is_outgoing_(is_outgoing_) + , content_(std::move(content_)) +{} + +const std::int32_t notificationTypeNewPushMessage::ID; + +void notificationTypeNewPushMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationTypeNewPushMessage"); + s.store_field("message_id", message_id_); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_field("sender_name", sender_name_); + s.store_field("is_outgoing", is_outgoing_); + s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); + s.store_class_end(); + } +} + +ok::ok() { +} + +const std::int32_t ok::ID; + +void ok::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "ok"); + s.store_class_end(); + } +} + +optionValueBoolean::optionValueBoolean() + : value_() +{} + +optionValueBoolean::optionValueBoolean(bool value_) + : value_(value_) +{} + +const std::int32_t optionValueBoolean::ID; + +void optionValueBoolean::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "optionValueBoolean"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +optionValueEmpty::optionValueEmpty() { +} + +const std::int32_t optionValueEmpty::ID; + +void optionValueEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "optionValueEmpty"); + s.store_class_end(); + } +} + +optionValueInteger::optionValueInteger() + : value_() +{} + +optionValueInteger::optionValueInteger(int64 value_) + : value_(value_) +{} + +const std::int32_t optionValueInteger::ID; + +void optionValueInteger::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "optionValueInteger"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +optionValueString::optionValueString() + : value_() +{} + +optionValueString::optionValueString(string const &value_) + : value_(value_) +{} + +const std::int32_t optionValueString::ID; + +void optionValueString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "optionValueString"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +orderInfo::orderInfo() + : name_() + , phone_number_() + , email_address_() + , shipping_address_() +{} + +orderInfo::orderInfo(string const &name_, string const &phone_number_, string const &email_address_, object_ptr<address> &&shipping_address_) + : name_(name_) + , phone_number_(phone_number_) + , email_address_(email_address_) + , shipping_address_(std::move(shipping_address_)) +{} + +const std::int32_t orderInfo::ID; + +void orderInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "orderInfo"); + s.store_field("name", name_); + s.store_field("phone_number", phone_number_); + s.store_field("email_address", email_address_); + s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get())); + s.store_class_end(); + } +} + +pageBlockTitle::pageBlockTitle() + : title_() +{} + +pageBlockTitle::pageBlockTitle(object_ptr<RichText> &&title_) + : title_(std::move(title_)) +{} + +const std::int32_t pageBlockTitle::ID; + +void pageBlockTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockTitle"); + s.store_object_field("title", static_cast<const BaseObject *>(title_.get())); + s.store_class_end(); + } +} + +pageBlockSubtitle::pageBlockSubtitle() + : subtitle_() +{} + +pageBlockSubtitle::pageBlockSubtitle(object_ptr<RichText> &&subtitle_) + : subtitle_(std::move(subtitle_)) +{} + +const std::int32_t pageBlockSubtitle::ID; + +void pageBlockSubtitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockSubtitle"); + s.store_object_field("subtitle", static_cast<const BaseObject *>(subtitle_.get())); + s.store_class_end(); + } +} + +pageBlockAuthorDate::pageBlockAuthorDate() + : author_() + , publish_date_() +{} + +pageBlockAuthorDate::pageBlockAuthorDate(object_ptr<RichText> &&author_, int32 publish_date_) + : author_(std::move(author_)) + , publish_date_(publish_date_) +{} + +const std::int32_t pageBlockAuthorDate::ID; + +void pageBlockAuthorDate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockAuthorDate"); + s.store_object_field("author", static_cast<const BaseObject *>(author_.get())); + s.store_field("publish_date", publish_date_); + s.store_class_end(); + } +} + +pageBlockHeader::pageBlockHeader() + : header_() +{} + +pageBlockHeader::pageBlockHeader(object_ptr<RichText> &&header_) + : header_(std::move(header_)) +{} + +const std::int32_t pageBlockHeader::ID; + +void pageBlockHeader::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockHeader"); + s.store_object_field("header", static_cast<const BaseObject *>(header_.get())); + s.store_class_end(); + } +} + +pageBlockSubheader::pageBlockSubheader() + : subheader_() +{} + +pageBlockSubheader::pageBlockSubheader(object_ptr<RichText> &&subheader_) + : subheader_(std::move(subheader_)) +{} + +const std::int32_t pageBlockSubheader::ID; + +void pageBlockSubheader::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockSubheader"); + s.store_object_field("subheader", static_cast<const BaseObject *>(subheader_.get())); + s.store_class_end(); + } +} + +pageBlockKicker::pageBlockKicker() + : kicker_() +{} + +pageBlockKicker::pageBlockKicker(object_ptr<RichText> &&kicker_) + : kicker_(std::move(kicker_)) +{} + +const std::int32_t pageBlockKicker::ID; + +void pageBlockKicker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockKicker"); + s.store_object_field("kicker", static_cast<const BaseObject *>(kicker_.get())); + s.store_class_end(); + } +} + +pageBlockParagraph::pageBlockParagraph() + : text_() +{} + +pageBlockParagraph::pageBlockParagraph(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t pageBlockParagraph::ID; + +void pageBlockParagraph::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockParagraph"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +pageBlockPreformatted::pageBlockPreformatted() + : text_() + , language_() +{} + +pageBlockPreformatted::pageBlockPreformatted(object_ptr<RichText> &&text_, string const &language_) + : text_(std::move(text_)) + , language_(language_) +{} + +const std::int32_t pageBlockPreformatted::ID; + +void pageBlockPreformatted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockPreformatted"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("language", language_); + s.store_class_end(); + } +} + +pageBlockFooter::pageBlockFooter() + : footer_() +{} + +pageBlockFooter::pageBlockFooter(object_ptr<RichText> &&footer_) + : footer_(std::move(footer_)) +{} + +const std::int32_t pageBlockFooter::ID; + +void pageBlockFooter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockFooter"); + s.store_object_field("footer", static_cast<const BaseObject *>(footer_.get())); + s.store_class_end(); + } +} + +pageBlockDivider::pageBlockDivider() { +} + +const std::int32_t pageBlockDivider::ID; + +void pageBlockDivider::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockDivider"); + s.store_class_end(); + } +} + +pageBlockAnchor::pageBlockAnchor() + : name_() +{} + +pageBlockAnchor::pageBlockAnchor(string const &name_) + : name_(name_) +{} + +const std::int32_t pageBlockAnchor::ID; + +void pageBlockAnchor::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockAnchor"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +pageBlockList::pageBlockList() + : items_() +{} + +pageBlockList::pageBlockList(array<object_ptr<pageBlockListItem>> &&items_) + : items_(std::move(items_)) +{} + +const std::int32_t pageBlockList::ID; + +void pageBlockList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockList"); + { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +pageBlockBlockQuote::pageBlockBlockQuote() + : text_() + , credit_() +{} + +pageBlockBlockQuote::pageBlockBlockQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_) + : text_(std::move(text_)) + , credit_(std::move(credit_)) +{} + +const std::int32_t pageBlockBlockQuote::ID; + +void pageBlockBlockQuote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockBlockQuote"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get())); + s.store_class_end(); + } +} + +pageBlockPullQuote::pageBlockPullQuote() + : text_() + , credit_() +{} + +pageBlockPullQuote::pageBlockPullQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_) + : text_(std::move(text_)) + , credit_(std::move(credit_)) +{} + +const std::int32_t pageBlockPullQuote::ID; + +void pageBlockPullQuote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockPullQuote"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get())); + s.store_class_end(); + } +} + +pageBlockAnimation::pageBlockAnimation() + : animation_() + , caption_() + , need_autoplay_() +{} + +pageBlockAnimation::pageBlockAnimation(object_ptr<animation> &&animation_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_) + : animation_(std::move(animation_)) + , caption_(std::move(caption_)) + , need_autoplay_(need_autoplay_) +{} + +const std::int32_t pageBlockAnimation::ID; + +void pageBlockAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockAnimation"); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("need_autoplay", need_autoplay_); + s.store_class_end(); + } +} + +pageBlockAudio::pageBlockAudio() + : audio_() + , caption_() +{} + +pageBlockAudio::pageBlockAudio(object_ptr<audio> &&audio_, object_ptr<pageBlockCaption> &&caption_) + : audio_(std::move(audio_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t pageBlockAudio::ID; + +void pageBlockAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockAudio"); + s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +pageBlockPhoto::pageBlockPhoto() + : photo_() + , caption_() + , url_() +{} + +pageBlockPhoto::pageBlockPhoto(object_ptr<photo> &&photo_, object_ptr<pageBlockCaption> &&caption_, string const &url_) + : photo_(std::move(photo_)) + , caption_(std::move(caption_)) + , url_(url_) +{} + +const std::int32_t pageBlockPhoto::ID; + +void pageBlockPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockPhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("url", url_); + s.store_class_end(); + } +} + +pageBlockVideo::pageBlockVideo() + : video_() + , caption_() + , need_autoplay_() + , is_looped_() +{} + +pageBlockVideo::pageBlockVideo(object_ptr<video> &&video_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_, bool is_looped_) + : video_(std::move(video_)) + , caption_(std::move(caption_)) + , need_autoplay_(need_autoplay_) + , is_looped_(is_looped_) +{} + +const std::int32_t pageBlockVideo::ID; + +void pageBlockVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockVideo"); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("need_autoplay", need_autoplay_); + s.store_field("is_looped", is_looped_); + s.store_class_end(); + } +} + +pageBlockVoiceNote::pageBlockVoiceNote() + : voice_note_() + , caption_() +{} + +pageBlockVoiceNote::pageBlockVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<pageBlockCaption> &&caption_) + : voice_note_(std::move(voice_note_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t pageBlockVoiceNote::ID; + +void pageBlockVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockVoiceNote"); + s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +pageBlockCover::pageBlockCover() + : cover_() +{} + +pageBlockCover::pageBlockCover(object_ptr<PageBlock> &&cover_) + : cover_(std::move(cover_)) +{} + +const std::int32_t pageBlockCover::ID; + +void pageBlockCover::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockCover"); + s.store_object_field("cover", static_cast<const BaseObject *>(cover_.get())); + s.store_class_end(); + } +} + +pageBlockEmbedded::pageBlockEmbedded() + : url_() + , html_() + , poster_photo_() + , width_() + , height_() + , caption_() + , is_full_width_() + , allow_scrolling_() +{} + +pageBlockEmbedded::pageBlockEmbedded(string const &url_, string const &html_, object_ptr<photo> &&poster_photo_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_, bool is_full_width_, bool allow_scrolling_) + : url_(url_) + , html_(html_) + , poster_photo_(std::move(poster_photo_)) + , width_(width_) + , height_(height_) + , caption_(std::move(caption_)) + , is_full_width_(is_full_width_) + , allow_scrolling_(allow_scrolling_) +{} + +const std::int32_t pageBlockEmbedded::ID; + +void pageBlockEmbedded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockEmbedded"); + s.store_field("url", url_); + s.store_field("html", html_); + s.store_object_field("poster_photo", static_cast<const BaseObject *>(poster_photo_.get())); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_field("is_full_width", is_full_width_); + s.store_field("allow_scrolling", allow_scrolling_); + s.store_class_end(); + } +} + +pageBlockEmbeddedPost::pageBlockEmbeddedPost() + : url_() + , author_() + , author_photo_() + , date_() + , page_blocks_() + , caption_() +{} + +pageBlockEmbeddedPost::pageBlockEmbeddedPost(string const &url_, string const &author_, object_ptr<photo> &&author_photo_, int32 date_, array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_) + : url_(url_) + , author_(author_) + , author_photo_(std::move(author_photo_)) + , date_(date_) + , page_blocks_(std::move(page_blocks_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t pageBlockEmbeddedPost::ID; + +void pageBlockEmbeddedPost::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockEmbeddedPost"); + s.store_field("url", url_); + s.store_field("author", author_); + s.store_object_field("author_photo", static_cast<const BaseObject *>(author_photo_.get())); + s.store_field("date", date_); + { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +pageBlockCollage::pageBlockCollage() + : page_blocks_() + , caption_() +{} + +pageBlockCollage::pageBlockCollage(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_) + : page_blocks_(std::move(page_blocks_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t pageBlockCollage::ID; + +void pageBlockCollage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockCollage"); + { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +pageBlockSlideshow::pageBlockSlideshow() + : page_blocks_() + , caption_() +{} + +pageBlockSlideshow::pageBlockSlideshow(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_) + : page_blocks_(std::move(page_blocks_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t pageBlockSlideshow::ID; + +void pageBlockSlideshow::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockSlideshow"); + { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +pageBlockChatLink::pageBlockChatLink() + : title_() + , photo_() + , username_() +{} + +pageBlockChatLink::pageBlockChatLink(string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &username_) + : title_(title_) + , photo_(std::move(photo_)) + , username_(username_) +{} + +const std::int32_t pageBlockChatLink::ID; + +void pageBlockChatLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockChatLink"); + s.store_field("title", title_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("username", username_); + s.store_class_end(); + } +} + +pageBlockTable::pageBlockTable() + : caption_() + , cells_() + , is_bordered_() + , is_striped_() +{} + +pageBlockTable::pageBlockTable(object_ptr<RichText> &&caption_, array<array<object_ptr<pageBlockTableCell>>> &&cells_, bool is_bordered_, bool is_striped_) + : caption_(std::move(caption_)) + , cells_(std::move(cells_)) + , is_bordered_(is_bordered_) + , is_striped_(is_striped_) +{} + +const std::int32_t pageBlockTable::ID; + +void pageBlockTable::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockTable"); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + { s.store_vector_begin("cells", cells_.size()); for (const auto &_value : cells_) { { s.store_vector_begin("", _value.size()); for (const auto &_value2 : _value) { s.store_object_field("", static_cast<const BaseObject *>(_value2.get())); } s.store_class_end(); } } s.store_class_end(); } + s.store_field("is_bordered", is_bordered_); + s.store_field("is_striped", is_striped_); + s.store_class_end(); + } +} + +pageBlockDetails::pageBlockDetails() + : header_() + , page_blocks_() + , is_open_() +{} + +pageBlockDetails::pageBlockDetails(object_ptr<RichText> &&header_, array<object_ptr<PageBlock>> &&page_blocks_, bool is_open_) + : header_(std::move(header_)) + , page_blocks_(std::move(page_blocks_)) + , is_open_(is_open_) +{} + +const std::int32_t pageBlockDetails::ID; + +void pageBlockDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockDetails"); + s.store_object_field("header", static_cast<const BaseObject *>(header_.get())); + { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("is_open", is_open_); + s.store_class_end(); + } +} + +pageBlockRelatedArticles::pageBlockRelatedArticles() + : header_() + , articles_() +{} + +pageBlockRelatedArticles::pageBlockRelatedArticles(object_ptr<RichText> &&header_, array<object_ptr<pageBlockRelatedArticle>> &&articles_) + : header_(std::move(header_)) + , articles_(std::move(articles_)) +{} + +const std::int32_t pageBlockRelatedArticles::ID; + +void pageBlockRelatedArticles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockRelatedArticles"); + s.store_object_field("header", static_cast<const BaseObject *>(header_.get())); + { s.store_vector_begin("articles", articles_.size()); for (const auto &_value : articles_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +pageBlockMap::pageBlockMap() + : location_() + , zoom_() + , width_() + , height_() + , caption_() +{} + +pageBlockMap::pageBlockMap(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_) + : location_(std::move(location_)) + , zoom_(zoom_) + , width_(width_) + , height_(height_) + , caption_(std::move(caption_)) +{} + +const std::int32_t pageBlockMap::ID; + +void pageBlockMap::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockMap"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("zoom", zoom_); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +pageBlockCaption::pageBlockCaption() + : text_() + , credit_() +{} + +pageBlockCaption::pageBlockCaption(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_) + : text_(std::move(text_)) + , credit_(std::move(credit_)) +{} + +const std::int32_t pageBlockCaption::ID; + +void pageBlockCaption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockCaption"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get())); + s.store_class_end(); + } +} + +pageBlockHorizontalAlignmentLeft::pageBlockHorizontalAlignmentLeft() { +} + +const std::int32_t pageBlockHorizontalAlignmentLeft::ID; + +void pageBlockHorizontalAlignmentLeft::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockHorizontalAlignmentLeft"); + s.store_class_end(); + } +} + +pageBlockHorizontalAlignmentCenter::pageBlockHorizontalAlignmentCenter() { +} + +const std::int32_t pageBlockHorizontalAlignmentCenter::ID; + +void pageBlockHorizontalAlignmentCenter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockHorizontalAlignmentCenter"); + s.store_class_end(); + } +} + +pageBlockHorizontalAlignmentRight::pageBlockHorizontalAlignmentRight() { +} + +const std::int32_t pageBlockHorizontalAlignmentRight::ID; + +void pageBlockHorizontalAlignmentRight::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockHorizontalAlignmentRight"); + s.store_class_end(); + } +} + +pageBlockListItem::pageBlockListItem() + : label_() + , page_blocks_() +{} + +pageBlockListItem::pageBlockListItem(string const &label_, array<object_ptr<PageBlock>> &&page_blocks_) + : label_(label_) + , page_blocks_(std::move(page_blocks_)) +{} + +const std::int32_t pageBlockListItem::ID; + +void pageBlockListItem::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockListItem"); + s.store_field("label", label_); + { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +pageBlockRelatedArticle::pageBlockRelatedArticle() + : url_() + , title_() + , description_() + , photo_() + , author_() + , publish_date_() +{} + +pageBlockRelatedArticle::pageBlockRelatedArticle(string const &url_, string const &title_, string const &description_, object_ptr<photo> &&photo_, string const &author_, int32 publish_date_) + : url_(url_) + , title_(title_) + , description_(description_) + , photo_(std::move(photo_)) + , author_(author_) + , publish_date_(publish_date_) +{} + +const std::int32_t pageBlockRelatedArticle::ID; + +void pageBlockRelatedArticle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockRelatedArticle"); + s.store_field("url", url_); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("author", author_); + s.store_field("publish_date", publish_date_); + s.store_class_end(); + } +} + +pageBlockTableCell::pageBlockTableCell() + : text_() + , is_header_() + , colspan_() + , rowspan_() + , align_() + , valign_() +{} + +pageBlockTableCell::pageBlockTableCell(object_ptr<RichText> &&text_, bool is_header_, int32 colspan_, int32 rowspan_, object_ptr<PageBlockHorizontalAlignment> &&align_, object_ptr<PageBlockVerticalAlignment> &&valign_) + : text_(std::move(text_)) + , is_header_(is_header_) + , colspan_(colspan_) + , rowspan_(rowspan_) + , align_(std::move(align_)) + , valign_(std::move(valign_)) +{} + +const std::int32_t pageBlockTableCell::ID; + +void pageBlockTableCell::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockTableCell"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("is_header", is_header_); + s.store_field("colspan", colspan_); + s.store_field("rowspan", rowspan_); + s.store_object_field("align", static_cast<const BaseObject *>(align_.get())); + s.store_object_field("valign", static_cast<const BaseObject *>(valign_.get())); + s.store_class_end(); + } +} + +pageBlockVerticalAlignmentTop::pageBlockVerticalAlignmentTop() { +} + +const std::int32_t pageBlockVerticalAlignmentTop::ID; + +void pageBlockVerticalAlignmentTop::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockVerticalAlignmentTop"); + s.store_class_end(); + } +} + +pageBlockVerticalAlignmentMiddle::pageBlockVerticalAlignmentMiddle() { +} + +const std::int32_t pageBlockVerticalAlignmentMiddle::ID; + +void pageBlockVerticalAlignmentMiddle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockVerticalAlignmentMiddle"); + s.store_class_end(); + } +} + +pageBlockVerticalAlignmentBottom::pageBlockVerticalAlignmentBottom() { +} + +const std::int32_t pageBlockVerticalAlignmentBottom::ID; + +void pageBlockVerticalAlignmentBottom::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockVerticalAlignmentBottom"); + s.store_class_end(); + } +} + +passportAuthorizationForm::passportAuthorizationForm() + : id_() + , required_elements_() + , privacy_policy_url_() +{} + +passportAuthorizationForm::passportAuthorizationForm(int32 id_, array<object_ptr<passportRequiredElement>> &&required_elements_, string const &privacy_policy_url_) + : id_(id_) + , required_elements_(std::move(required_elements_)) + , privacy_policy_url_(privacy_policy_url_) +{} + +const std::int32_t passportAuthorizationForm::ID; + +void passportAuthorizationForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportAuthorizationForm"); + s.store_field("id", id_); + { s.store_vector_begin("required_elements", required_elements_.size()); for (const auto &_value : required_elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("privacy_policy_url", privacy_policy_url_); + s.store_class_end(); + } +} + +passportElementPersonalDetails::passportElementPersonalDetails() + : personal_details_() +{} + +passportElementPersonalDetails::passportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_) + : personal_details_(std::move(personal_details_)) +{} + +const std::int32_t passportElementPersonalDetails::ID; + +void passportElementPersonalDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementPersonalDetails"); + s.store_object_field("personal_details", static_cast<const BaseObject *>(personal_details_.get())); + s.store_class_end(); + } +} + +passportElementPassport::passportElementPassport() + : passport_() +{} + +passportElementPassport::passportElementPassport(object_ptr<identityDocument> &&passport_) + : passport_(std::move(passport_)) +{} + +const std::int32_t passportElementPassport::ID; + +void passportElementPassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementPassport"); + s.store_object_field("passport", static_cast<const BaseObject *>(passport_.get())); + s.store_class_end(); + } +} + +passportElementDriverLicense::passportElementDriverLicense() + : driver_license_() +{} + +passportElementDriverLicense::passportElementDriverLicense(object_ptr<identityDocument> &&driver_license_) + : driver_license_(std::move(driver_license_)) +{} + +const std::int32_t passportElementDriverLicense::ID; + +void passportElementDriverLicense::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementDriverLicense"); + s.store_object_field("driver_license", static_cast<const BaseObject *>(driver_license_.get())); + s.store_class_end(); + } +} + +passportElementIdentityCard::passportElementIdentityCard() + : identity_card_() +{} + +passportElementIdentityCard::passportElementIdentityCard(object_ptr<identityDocument> &&identity_card_) + : identity_card_(std::move(identity_card_)) +{} + +const std::int32_t passportElementIdentityCard::ID; + +void passportElementIdentityCard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementIdentityCard"); + s.store_object_field("identity_card", static_cast<const BaseObject *>(identity_card_.get())); + s.store_class_end(); + } +} + +passportElementInternalPassport::passportElementInternalPassport() + : internal_passport_() +{} + +passportElementInternalPassport::passportElementInternalPassport(object_ptr<identityDocument> &&internal_passport_) + : internal_passport_(std::move(internal_passport_)) +{} + +const std::int32_t passportElementInternalPassport::ID; + +void passportElementInternalPassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementInternalPassport"); + s.store_object_field("internal_passport", static_cast<const BaseObject *>(internal_passport_.get())); + s.store_class_end(); + } +} + +passportElementAddress::passportElementAddress() + : address_() +{} + +passportElementAddress::passportElementAddress(object_ptr<address> &&address_) + : address_(std::move(address_)) +{} + +const std::int32_t passportElementAddress::ID; + +void passportElementAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementAddress"); + s.store_object_field("address", static_cast<const BaseObject *>(address_.get())); + s.store_class_end(); + } +} + +passportElementUtilityBill::passportElementUtilityBill() + : utility_bill_() +{} + +passportElementUtilityBill::passportElementUtilityBill(object_ptr<personalDocument> &&utility_bill_) + : utility_bill_(std::move(utility_bill_)) +{} + +const std::int32_t passportElementUtilityBill::ID; + +void passportElementUtilityBill::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementUtilityBill"); + s.store_object_field("utility_bill", static_cast<const BaseObject *>(utility_bill_.get())); + s.store_class_end(); + } +} + +passportElementBankStatement::passportElementBankStatement() + : bank_statement_() +{} + +passportElementBankStatement::passportElementBankStatement(object_ptr<personalDocument> &&bank_statement_) + : bank_statement_(std::move(bank_statement_)) +{} + +const std::int32_t passportElementBankStatement::ID; + +void passportElementBankStatement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementBankStatement"); + s.store_object_field("bank_statement", static_cast<const BaseObject *>(bank_statement_.get())); + s.store_class_end(); + } +} + +passportElementRentalAgreement::passportElementRentalAgreement() + : rental_agreement_() +{} + +passportElementRentalAgreement::passportElementRentalAgreement(object_ptr<personalDocument> &&rental_agreement_) + : rental_agreement_(std::move(rental_agreement_)) +{} + +const std::int32_t passportElementRentalAgreement::ID; + +void passportElementRentalAgreement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementRentalAgreement"); + s.store_object_field("rental_agreement", static_cast<const BaseObject *>(rental_agreement_.get())); + s.store_class_end(); + } +} + +passportElementPassportRegistration::passportElementPassportRegistration() + : passport_registration_() +{} + +passportElementPassportRegistration::passportElementPassportRegistration(object_ptr<personalDocument> &&passport_registration_) + : passport_registration_(std::move(passport_registration_)) +{} + +const std::int32_t passportElementPassportRegistration::ID; + +void passportElementPassportRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementPassportRegistration"); + s.store_object_field("passport_registration", static_cast<const BaseObject *>(passport_registration_.get())); + s.store_class_end(); + } +} + +passportElementTemporaryRegistration::passportElementTemporaryRegistration() + : temporary_registration_() +{} + +passportElementTemporaryRegistration::passportElementTemporaryRegistration(object_ptr<personalDocument> &&temporary_registration_) + : temporary_registration_(std::move(temporary_registration_)) +{} + +const std::int32_t passportElementTemporaryRegistration::ID; + +void passportElementTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTemporaryRegistration"); + s.store_object_field("temporary_registration", static_cast<const BaseObject *>(temporary_registration_.get())); + s.store_class_end(); + } +} + +passportElementPhoneNumber::passportElementPhoneNumber() + : phone_number_() +{} + +passportElementPhoneNumber::passportElementPhoneNumber(string const &phone_number_) + : phone_number_(phone_number_) +{} + +const std::int32_t passportElementPhoneNumber::ID; + +void passportElementPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementPhoneNumber"); + s.store_field("phone_number", phone_number_); + s.store_class_end(); + } +} + +passportElementEmailAddress::passportElementEmailAddress() + : email_address_() +{} + +passportElementEmailAddress::passportElementEmailAddress(string const &email_address_) + : email_address_(email_address_) +{} + +const std::int32_t passportElementEmailAddress::ID; + +void passportElementEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementEmailAddress"); + s.store_field("email_address", email_address_); + s.store_class_end(); + } +} + +passportElementError::passportElementError() + : type_() + , message_() + , source_() +{} + +passportElementError::passportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<PassportElementErrorSource> &&source_) + : type_(std::move(type_)) + , message_(message_) + , source_(std::move(source_)) +{} + +const std::int32_t passportElementError::ID; + +void passportElementError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementError"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("message", message_); + s.store_object_field("source", static_cast<const BaseObject *>(source_.get())); + s.store_class_end(); + } +} + +passportElementErrorSourceUnspecified::passportElementErrorSourceUnspecified() { +} + +const std::int32_t passportElementErrorSourceUnspecified::ID; + +void passportElementErrorSourceUnspecified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceUnspecified"); + s.store_class_end(); + } +} + +passportElementErrorSourceDataField::passportElementErrorSourceDataField() + : field_name_() +{} + +passportElementErrorSourceDataField::passportElementErrorSourceDataField(string const &field_name_) + : field_name_(field_name_) +{} + +const std::int32_t passportElementErrorSourceDataField::ID; + +void passportElementErrorSourceDataField::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceDataField"); + s.store_field("field_name", field_name_); + s.store_class_end(); + } +} + +passportElementErrorSourceFrontSide::passportElementErrorSourceFrontSide() { +} + +const std::int32_t passportElementErrorSourceFrontSide::ID; + +void passportElementErrorSourceFrontSide::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceFrontSide"); + s.store_class_end(); + } +} + +passportElementErrorSourceReverseSide::passportElementErrorSourceReverseSide() { +} + +const std::int32_t passportElementErrorSourceReverseSide::ID; + +void passportElementErrorSourceReverseSide::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceReverseSide"); + s.store_class_end(); + } +} + +passportElementErrorSourceSelfie::passportElementErrorSourceSelfie() { +} + +const std::int32_t passportElementErrorSourceSelfie::ID; + +void passportElementErrorSourceSelfie::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceSelfie"); + s.store_class_end(); + } +} + +passportElementErrorSourceTranslationFile::passportElementErrorSourceTranslationFile() + : file_index_() +{} + +passportElementErrorSourceTranslationFile::passportElementErrorSourceTranslationFile(int32 file_index_) + : file_index_(file_index_) +{} + +const std::int32_t passportElementErrorSourceTranslationFile::ID; + +void passportElementErrorSourceTranslationFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceTranslationFile"); + s.store_field("file_index", file_index_); + s.store_class_end(); + } +} + +passportElementErrorSourceTranslationFiles::passportElementErrorSourceTranslationFiles() { +} + +const std::int32_t passportElementErrorSourceTranslationFiles::ID; + +void passportElementErrorSourceTranslationFiles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceTranslationFiles"); + s.store_class_end(); + } +} + +passportElementErrorSourceFile::passportElementErrorSourceFile() + : file_index_() +{} + +passportElementErrorSourceFile::passportElementErrorSourceFile(int32 file_index_) + : file_index_(file_index_) +{} + +const std::int32_t passportElementErrorSourceFile::ID; + +void passportElementErrorSourceFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceFile"); + s.store_field("file_index", file_index_); + s.store_class_end(); + } +} + +passportElementErrorSourceFiles::passportElementErrorSourceFiles() { +} + +const std::int32_t passportElementErrorSourceFiles::ID; + +void passportElementErrorSourceFiles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementErrorSourceFiles"); + s.store_class_end(); + } +} + +passportElementTypePersonalDetails::passportElementTypePersonalDetails() { +} + +const std::int32_t passportElementTypePersonalDetails::ID; + +void passportElementTypePersonalDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypePersonalDetails"); + s.store_class_end(); + } +} + +passportElementTypePassport::passportElementTypePassport() { +} + +const std::int32_t passportElementTypePassport::ID; + +void passportElementTypePassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypePassport"); + s.store_class_end(); + } +} + +passportElementTypeDriverLicense::passportElementTypeDriverLicense() { +} + +const std::int32_t passportElementTypeDriverLicense::ID; + +void passportElementTypeDriverLicense::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeDriverLicense"); + s.store_class_end(); + } +} + +passportElementTypeIdentityCard::passportElementTypeIdentityCard() { +} + +const std::int32_t passportElementTypeIdentityCard::ID; + +void passportElementTypeIdentityCard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeIdentityCard"); + s.store_class_end(); + } +} + +passportElementTypeInternalPassport::passportElementTypeInternalPassport() { +} + +const std::int32_t passportElementTypeInternalPassport::ID; + +void passportElementTypeInternalPassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeInternalPassport"); + s.store_class_end(); + } +} + +passportElementTypeAddress::passportElementTypeAddress() { +} + +const std::int32_t passportElementTypeAddress::ID; + +void passportElementTypeAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeAddress"); + s.store_class_end(); + } +} + +passportElementTypeUtilityBill::passportElementTypeUtilityBill() { +} + +const std::int32_t passportElementTypeUtilityBill::ID; + +void passportElementTypeUtilityBill::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeUtilityBill"); + s.store_class_end(); + } +} + +passportElementTypeBankStatement::passportElementTypeBankStatement() { +} + +const std::int32_t passportElementTypeBankStatement::ID; + +void passportElementTypeBankStatement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeBankStatement"); + s.store_class_end(); + } +} + +passportElementTypeRentalAgreement::passportElementTypeRentalAgreement() { +} + +const std::int32_t passportElementTypeRentalAgreement::ID; + +void passportElementTypeRentalAgreement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeRentalAgreement"); + s.store_class_end(); + } +} + +passportElementTypePassportRegistration::passportElementTypePassportRegistration() { +} + +const std::int32_t passportElementTypePassportRegistration::ID; + +void passportElementTypePassportRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypePassportRegistration"); + s.store_class_end(); + } +} + +passportElementTypeTemporaryRegistration::passportElementTypeTemporaryRegistration() { +} + +const std::int32_t passportElementTypeTemporaryRegistration::ID; + +void passportElementTypeTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeTemporaryRegistration"); + s.store_class_end(); + } +} + +passportElementTypePhoneNumber::passportElementTypePhoneNumber() { +} + +const std::int32_t passportElementTypePhoneNumber::ID; + +void passportElementTypePhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypePhoneNumber"); + s.store_class_end(); + } +} + +passportElementTypeEmailAddress::passportElementTypeEmailAddress() { +} + +const std::int32_t passportElementTypeEmailAddress::ID; + +void passportElementTypeEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementTypeEmailAddress"); + s.store_class_end(); + } +} + +passportElements::passportElements() + : elements_() +{} + +passportElements::passportElements(array<object_ptr<PassportElement>> &&elements_) + : elements_(std::move(elements_)) +{} + +const std::int32_t passportElements::ID; + +void passportElements::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElements"); + { s.store_vector_begin("elements", elements_.size()); for (const auto &_value : elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +passportElementsWithErrors::passportElementsWithErrors() + : elements_() + , errors_() +{} + +passportElementsWithErrors::passportElementsWithErrors(array<object_ptr<PassportElement>> &&elements_, array<object_ptr<passportElementError>> &&errors_) + : elements_(std::move(elements_)) + , errors_(std::move(errors_)) +{} + +const std::int32_t passportElementsWithErrors::ID; + +void passportElementsWithErrors::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportElementsWithErrors"); + { s.store_vector_begin("elements", elements_.size()); for (const auto &_value : elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +passportRequiredElement::passportRequiredElement() + : suitable_elements_() +{} + +passportRequiredElement::passportRequiredElement(array<object_ptr<passportSuitableElement>> &&suitable_elements_) + : suitable_elements_(std::move(suitable_elements_)) +{} + +const std::int32_t passportRequiredElement::ID; + +void passportRequiredElement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportRequiredElement"); + { s.store_vector_begin("suitable_elements", suitable_elements_.size()); for (const auto &_value : suitable_elements_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +passportSuitableElement::passportSuitableElement() + : type_() + , is_selfie_required_() + , is_translation_required_() + , is_native_name_required_() +{} + +passportSuitableElement::passportSuitableElement(object_ptr<PassportElementType> &&type_, bool is_selfie_required_, bool is_translation_required_, bool is_native_name_required_) + : type_(std::move(type_)) + , is_selfie_required_(is_selfie_required_) + , is_translation_required_(is_translation_required_) + , is_native_name_required_(is_native_name_required_) +{} + +const std::int32_t passportSuitableElement::ID; + +void passportSuitableElement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passportSuitableElement"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("is_selfie_required", is_selfie_required_); + s.store_field("is_translation_required", is_translation_required_); + s.store_field("is_native_name_required", is_native_name_required_); + s.store_class_end(); + } +} + +passwordState::passwordState() + : has_password_() + , password_hint_() + , has_recovery_email_address_() + , has_passport_data_() + , recovery_email_address_code_info_() + , login_email_address_pattern_() + , pending_reset_date_() +{} + +passwordState::passwordState(bool has_password_, string const &password_hint_, bool has_recovery_email_address_, bool has_passport_data_, object_ptr<emailAddressAuthenticationCodeInfo> &&recovery_email_address_code_info_, string const &login_email_address_pattern_, int32 pending_reset_date_) + : has_password_(has_password_) + , password_hint_(password_hint_) + , has_recovery_email_address_(has_recovery_email_address_) + , has_passport_data_(has_passport_data_) + , recovery_email_address_code_info_(std::move(recovery_email_address_code_info_)) + , login_email_address_pattern_(login_email_address_pattern_) + , pending_reset_date_(pending_reset_date_) +{} + +const std::int32_t passwordState::ID; + +void passwordState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passwordState"); + s.store_field("has_password", has_password_); + s.store_field("password_hint", password_hint_); + s.store_field("has_recovery_email_address", has_recovery_email_address_); + s.store_field("has_passport_data", has_passport_data_); + s.store_object_field("recovery_email_address_code_info", static_cast<const BaseObject *>(recovery_email_address_code_info_.get())); + s.store_field("login_email_address_pattern", login_email_address_pattern_); + s.store_field("pending_reset_date", pending_reset_date_); + s.store_class_end(); + } +} + +paymentForm::paymentForm() + : id_() + , invoice_() + , seller_bot_user_id_() + , payment_provider_user_id_() + , payment_provider_() + , additional_payment_options_() + , saved_order_info_() + , saved_credentials_() + , can_save_credentials_() + , need_password_() + , product_title_() + , product_description_() + , product_photo_() +{} + +paymentForm::paymentForm(int64 id_, object_ptr<invoice> &&invoice_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<PaymentProvider> &&payment_provider_, array<object_ptr<paymentOption>> &&additional_payment_options_, object_ptr<orderInfo> &&saved_order_info_, array<object_ptr<savedCredentials>> &&saved_credentials_, bool can_save_credentials_, bool need_password_, string const &product_title_, object_ptr<formattedText> &&product_description_, object_ptr<photo> &&product_photo_) + : id_(id_) + , invoice_(std::move(invoice_)) + , seller_bot_user_id_(seller_bot_user_id_) + , payment_provider_user_id_(payment_provider_user_id_) + , payment_provider_(std::move(payment_provider_)) + , additional_payment_options_(std::move(additional_payment_options_)) + , saved_order_info_(std::move(saved_order_info_)) + , saved_credentials_(std::move(saved_credentials_)) + , can_save_credentials_(can_save_credentials_) + , need_password_(need_password_) + , product_title_(product_title_) + , product_description_(std::move(product_description_)) + , product_photo_(std::move(product_photo_)) +{} + +const std::int32_t paymentForm::ID; + +void paymentForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentForm"); + s.store_field("id", id_); + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_field("seller_bot_user_id", seller_bot_user_id_); + s.store_field("payment_provider_user_id", payment_provider_user_id_); + s.store_object_field("payment_provider", static_cast<const BaseObject *>(payment_provider_.get())); + { s.store_vector_begin("additional_payment_options", additional_payment_options_.size()); for (const auto &_value : additional_payment_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("saved_order_info", static_cast<const BaseObject *>(saved_order_info_.get())); + { s.store_vector_begin("saved_credentials", saved_credentials_.size()); for (const auto &_value : saved_credentials_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("can_save_credentials", can_save_credentials_); + s.store_field("need_password", need_password_); + s.store_field("product_title", product_title_); + s.store_object_field("product_description", static_cast<const BaseObject *>(product_description_.get())); + s.store_object_field("product_photo", static_cast<const BaseObject *>(product_photo_.get())); + s.store_class_end(); + } +} + +paymentOption::paymentOption() + : title_() + , url_() +{} + +paymentOption::paymentOption(string const &title_, string const &url_) + : title_(title_) + , url_(url_) +{} + +const std::int32_t paymentOption::ID; + +void paymentOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentOption"); + s.store_field("title", title_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +paymentProviderSmartGlocal::paymentProviderSmartGlocal() + : public_token_() +{} + +paymentProviderSmartGlocal::paymentProviderSmartGlocal(string const &public_token_) + : public_token_(public_token_) +{} + +const std::int32_t paymentProviderSmartGlocal::ID; + +void paymentProviderSmartGlocal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentProviderSmartGlocal"); + s.store_field("public_token", public_token_); + s.store_class_end(); + } +} + +paymentProviderStripe::paymentProviderStripe() + : publishable_key_() + , need_country_() + , need_postal_code_() + , need_cardholder_name_() +{} + +paymentProviderStripe::paymentProviderStripe(string const &publishable_key_, bool need_country_, bool need_postal_code_, bool need_cardholder_name_) + : publishable_key_(publishable_key_) + , need_country_(need_country_) + , need_postal_code_(need_postal_code_) + , need_cardholder_name_(need_cardholder_name_) +{} + +const std::int32_t paymentProviderStripe::ID; + +void paymentProviderStripe::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentProviderStripe"); + s.store_field("publishable_key", publishable_key_); + s.store_field("need_country", need_country_); + s.store_field("need_postal_code", need_postal_code_); + s.store_field("need_cardholder_name", need_cardholder_name_); + s.store_class_end(); + } +} + +paymentProviderOther::paymentProviderOther() + : url_() +{} + +paymentProviderOther::paymentProviderOther(string const &url_) + : url_(url_) +{} + +const std::int32_t paymentProviderOther::ID; + +void paymentProviderOther::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentProviderOther"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +paymentReceipt::paymentReceipt() + : title_() + , description_() + , photo_() + , date_() + , seller_bot_user_id_() + , payment_provider_user_id_() + , invoice_() + , order_info_() + , shipping_option_() + , credentials_title_() + , tip_amount_() +{} + +paymentReceipt::paymentReceipt(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, int32 date_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<invoice> &&invoice_, object_ptr<orderInfo> &&order_info_, object_ptr<shippingOption> &&shipping_option_, string const &credentials_title_, int53 tip_amount_) + : title_(title_) + , description_(std::move(description_)) + , photo_(std::move(photo_)) + , date_(date_) + , seller_bot_user_id_(seller_bot_user_id_) + , payment_provider_user_id_(payment_provider_user_id_) + , invoice_(std::move(invoice_)) + , order_info_(std::move(order_info_)) + , shipping_option_(std::move(shipping_option_)) + , credentials_title_(credentials_title_) + , tip_amount_(tip_amount_) +{} + +const std::int32_t paymentReceipt::ID; + +void paymentReceipt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentReceipt"); + s.store_field("title", title_); + s.store_object_field("description", static_cast<const BaseObject *>(description_.get())); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("date", date_); + s.store_field("seller_bot_user_id", seller_bot_user_id_); + s.store_field("payment_provider_user_id", payment_provider_user_id_); + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get())); + s.store_object_field("shipping_option", static_cast<const BaseObject *>(shipping_option_.get())); + s.store_field("credentials_title", credentials_title_); + s.store_field("tip_amount", tip_amount_); + s.store_class_end(); + } +} + +paymentResult::paymentResult() + : success_() + , verification_url_() +{} + +paymentResult::paymentResult(bool success_, string const &verification_url_) + : success_(success_) + , verification_url_(verification_url_) +{} + +const std::int32_t paymentResult::ID; + +void paymentResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentResult"); + s.store_field("success", success_); + s.store_field("verification_url", verification_url_); + s.store_class_end(); + } +} + +personalDetails::personalDetails() + : first_name_() + , middle_name_() + , last_name_() + , native_first_name_() + , native_middle_name_() + , native_last_name_() + , birthdate_() + , gender_() + , country_code_() + , residence_country_code_() +{} + +personalDetails::personalDetails(string const &first_name_, string const &middle_name_, string const &last_name_, string const &native_first_name_, string const &native_middle_name_, string const &native_last_name_, object_ptr<date> &&birthdate_, string const &gender_, string const &country_code_, string const &residence_country_code_) + : first_name_(first_name_) + , middle_name_(middle_name_) + , last_name_(last_name_) + , native_first_name_(native_first_name_) + , native_middle_name_(native_middle_name_) + , native_last_name_(native_last_name_) + , birthdate_(std::move(birthdate_)) + , gender_(gender_) + , country_code_(country_code_) + , residence_country_code_(residence_country_code_) +{} + +const std::int32_t personalDetails::ID; + +void personalDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "personalDetails"); + s.store_field("first_name", first_name_); + s.store_field("middle_name", middle_name_); + s.store_field("last_name", last_name_); + s.store_field("native_first_name", native_first_name_); + s.store_field("native_middle_name", native_middle_name_); + s.store_field("native_last_name", native_last_name_); + s.store_object_field("birthdate", static_cast<const BaseObject *>(birthdate_.get())); + s.store_field("gender", gender_); + s.store_field("country_code", country_code_); + s.store_field("residence_country_code", residence_country_code_); + s.store_class_end(); + } +} + +personalDocument::personalDocument() + : files_() + , translation_() +{} + +personalDocument::personalDocument(array<object_ptr<datedFile>> &&files_, array<object_ptr<datedFile>> &&translation_) + : files_(std::move(files_)) + , translation_(std::move(translation_)) +{} + +const std::int32_t personalDocument::ID; + +void personalDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "personalDocument"); + { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +phoneNumberAuthenticationSettings::phoneNumberAuthenticationSettings() + : allow_flash_call_() + , allow_missed_call_() + , is_current_phone_number_() + , allow_sms_retriever_api_() + , authentication_tokens_() +{} + +phoneNumberAuthenticationSettings::phoneNumberAuthenticationSettings(bool allow_flash_call_, bool allow_missed_call_, bool is_current_phone_number_, bool allow_sms_retriever_api_, array<string> &&authentication_tokens_) + : allow_flash_call_(allow_flash_call_) + , allow_missed_call_(allow_missed_call_) + , is_current_phone_number_(is_current_phone_number_) + , allow_sms_retriever_api_(allow_sms_retriever_api_) + , authentication_tokens_(std::move(authentication_tokens_)) +{} + +const std::int32_t phoneNumberAuthenticationSettings::ID; + +void phoneNumberAuthenticationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneNumberAuthenticationSettings"); + s.store_field("allow_flash_call", allow_flash_call_); + s.store_field("allow_missed_call", allow_missed_call_); + s.store_field("is_current_phone_number", is_current_phone_number_); + s.store_field("allow_sms_retriever_api", allow_sms_retriever_api_); + { s.store_vector_begin("authentication_tokens", authentication_tokens_.size()); for (const auto &_value : authentication_tokens_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +phoneNumberInfo::phoneNumberInfo() + : country_() + , country_calling_code_() + , formatted_phone_number_() +{} + +phoneNumberInfo::phoneNumberInfo(object_ptr<countryInfo> &&country_, string const &country_calling_code_, string const &formatted_phone_number_) + : country_(std::move(country_)) + , country_calling_code_(country_calling_code_) + , formatted_phone_number_(formatted_phone_number_) +{} + +const std::int32_t phoneNumberInfo::ID; + +void phoneNumberInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneNumberInfo"); + s.store_object_field("country", static_cast<const BaseObject *>(country_.get())); + s.store_field("country_calling_code", country_calling_code_); + s.store_field("formatted_phone_number", formatted_phone_number_); + s.store_class_end(); + } +} + +photo::photo() + : has_stickers_() + , minithumbnail_() + , sizes_() +{} + +photo::photo(bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_) + : has_stickers_(has_stickers_) + , minithumbnail_(std::move(minithumbnail_)) + , sizes_(std::move(sizes_)) +{} + +const std::int32_t photo::ID; + +void photo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photo"); + s.store_field("has_stickers", has_stickers_); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +photoSize::photoSize() + : type_() + , photo_() + , width_() + , height_() + , progressive_sizes_() +{} + +photoSize::photoSize(string const &type_, object_ptr<file> &&photo_, int32 width_, int32 height_, array<int32> &&progressive_sizes_) + : type_(type_) + , photo_(std::move(photo_)) + , width_(width_) + , height_(height_) + , progressive_sizes_(std::move(progressive_sizes_)) +{} + +const std::int32_t photoSize::ID; + +void photoSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoSize"); + s.store_field("type", type_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("width", width_); + s.store_field("height", height_); + { s.store_vector_begin("progressive_sizes", progressive_sizes_.size()); for (const auto &_value : progressive_sizes_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +point::point() + : x_() + , y_() +{} + +point::point(double x_, double y_) + : x_(x_) + , y_(y_) +{} + +const std::int32_t point::ID; + +void point::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "point"); + s.store_field("x", x_); + s.store_field("y", y_); + s.store_class_end(); + } +} + +poll::poll() + : id_() + , question_() + , options_() + , total_voter_count_() + , recent_voter_user_ids_() + , is_anonymous_() + , type_() + , open_period_() + , close_date_() + , is_closed_() +{} + +poll::poll(int64 id_, string const &question_, array<object_ptr<pollOption>> &&options_, int32 total_voter_count_, array<int53> &&recent_voter_user_ids_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_) + : id_(id_) + , question_(question_) + , options_(std::move(options_)) + , total_voter_count_(total_voter_count_) + , recent_voter_user_ids_(std::move(recent_voter_user_ids_)) + , is_anonymous_(is_anonymous_) + , type_(std::move(type_)) + , open_period_(open_period_) + , close_date_(close_date_) + , is_closed_(is_closed_) +{} + +const std::int32_t poll::ID; + +void poll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "poll"); + s.store_field("id", id_); + s.store_field("question", question_); + { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("total_voter_count", total_voter_count_); + { s.store_vector_begin("recent_voter_user_ids", recent_voter_user_ids_.size()); for (const auto &_value : recent_voter_user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("is_anonymous", is_anonymous_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("open_period", open_period_); + s.store_field("close_date", close_date_); + s.store_field("is_closed", is_closed_); + s.store_class_end(); + } +} + +pollOption::pollOption() + : text_() + , voter_count_() + , vote_percentage_() + , is_chosen_() + , is_being_chosen_() +{} + +pollOption::pollOption(string const &text_, int32 voter_count_, int32 vote_percentage_, bool is_chosen_, bool is_being_chosen_) + : text_(text_) + , voter_count_(voter_count_) + , vote_percentage_(vote_percentage_) + , is_chosen_(is_chosen_) + , is_being_chosen_(is_being_chosen_) +{} + +const std::int32_t pollOption::ID; + +void pollOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pollOption"); + s.store_field("text", text_); + s.store_field("voter_count", voter_count_); + s.store_field("vote_percentage", vote_percentage_); + s.store_field("is_chosen", is_chosen_); + s.store_field("is_being_chosen", is_being_chosen_); + s.store_class_end(); + } +} + +pollTypeRegular::pollTypeRegular() + : allow_multiple_answers_() +{} + +pollTypeRegular::pollTypeRegular(bool allow_multiple_answers_) + : allow_multiple_answers_(allow_multiple_answers_) +{} + +const std::int32_t pollTypeRegular::ID; + +void pollTypeRegular::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pollTypeRegular"); + s.store_field("allow_multiple_answers", allow_multiple_answers_); + s.store_class_end(); + } +} + +pollTypeQuiz::pollTypeQuiz() + : correct_option_id_() + , explanation_() +{} + +pollTypeQuiz::pollTypeQuiz(int32 correct_option_id_, object_ptr<formattedText> &&explanation_) + : correct_option_id_(correct_option_id_) + , explanation_(std::move(explanation_)) +{} + +const std::int32_t pollTypeQuiz::ID; + +void pollTypeQuiz::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pollTypeQuiz"); + s.store_field("correct_option_id", correct_option_id_); + s.store_object_field("explanation", static_cast<const BaseObject *>(explanation_.get())); + s.store_class_end(); + } +} + +premiumFeatureIncreasedLimits::premiumFeatureIncreasedLimits() { +} + +const std::int32_t premiumFeatureIncreasedLimits::ID; + +void premiumFeatureIncreasedLimits::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureIncreasedLimits"); + s.store_class_end(); + } +} + +premiumFeatureIncreasedUploadFileSize::premiumFeatureIncreasedUploadFileSize() { +} + +const std::int32_t premiumFeatureIncreasedUploadFileSize::ID; + +void premiumFeatureIncreasedUploadFileSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureIncreasedUploadFileSize"); + s.store_class_end(); + } +} + +premiumFeatureImprovedDownloadSpeed::premiumFeatureImprovedDownloadSpeed() { +} + +const std::int32_t premiumFeatureImprovedDownloadSpeed::ID; + +void premiumFeatureImprovedDownloadSpeed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureImprovedDownloadSpeed"); + s.store_class_end(); + } +} + +premiumFeatureVoiceRecognition::premiumFeatureVoiceRecognition() { +} + +const std::int32_t premiumFeatureVoiceRecognition::ID; + +void premiumFeatureVoiceRecognition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureVoiceRecognition"); + s.store_class_end(); + } +} + +premiumFeatureDisabledAds::premiumFeatureDisabledAds() { +} + +const std::int32_t premiumFeatureDisabledAds::ID; + +void premiumFeatureDisabledAds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureDisabledAds"); + s.store_class_end(); + } +} + +premiumFeatureUniqueReactions::premiumFeatureUniqueReactions() { +} + +const std::int32_t premiumFeatureUniqueReactions::ID; + +void premiumFeatureUniqueReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureUniqueReactions"); + s.store_class_end(); + } +} + +premiumFeatureUniqueStickers::premiumFeatureUniqueStickers() { +} + +const std::int32_t premiumFeatureUniqueStickers::ID; + +void premiumFeatureUniqueStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureUniqueStickers"); + s.store_class_end(); + } +} + +premiumFeatureCustomEmoji::premiumFeatureCustomEmoji() { +} + +const std::int32_t premiumFeatureCustomEmoji::ID; + +void premiumFeatureCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureCustomEmoji"); + s.store_class_end(); + } +} + +premiumFeatureAdvancedChatManagement::premiumFeatureAdvancedChatManagement() { +} + +const std::int32_t premiumFeatureAdvancedChatManagement::ID; + +void premiumFeatureAdvancedChatManagement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureAdvancedChatManagement"); + s.store_class_end(); + } +} + +premiumFeatureProfileBadge::premiumFeatureProfileBadge() { +} + +const std::int32_t premiumFeatureProfileBadge::ID; + +void premiumFeatureProfileBadge::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureProfileBadge"); + s.store_class_end(); + } +} + +premiumFeatureEmojiStatus::premiumFeatureEmojiStatus() { +} + +const std::int32_t premiumFeatureEmojiStatus::ID; + +void premiumFeatureEmojiStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureEmojiStatus"); + s.store_class_end(); + } +} + +premiumFeatureAnimatedProfilePhoto::premiumFeatureAnimatedProfilePhoto() { +} + +const std::int32_t premiumFeatureAnimatedProfilePhoto::ID; + +void premiumFeatureAnimatedProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureAnimatedProfilePhoto"); + s.store_class_end(); + } +} + +premiumFeatureForumTopicIcon::premiumFeatureForumTopicIcon() { +} + +const std::int32_t premiumFeatureForumTopicIcon::ID; + +void premiumFeatureForumTopicIcon::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureForumTopicIcon"); + s.store_class_end(); + } +} + +premiumFeatureAppIcons::premiumFeatureAppIcons() { +} + +const std::int32_t premiumFeatureAppIcons::ID; + +void premiumFeatureAppIcons::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatureAppIcons"); + s.store_class_end(); + } +} + +premiumFeaturePromotionAnimation::premiumFeaturePromotionAnimation() + : feature_() + , animation_() +{} + +premiumFeaturePromotionAnimation::premiumFeaturePromotionAnimation(object_ptr<PremiumFeature> &&feature_, object_ptr<animation> &&animation_) + : feature_(std::move(feature_)) + , animation_(std::move(animation_)) +{} + +const std::int32_t premiumFeaturePromotionAnimation::ID; + +void premiumFeaturePromotionAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeaturePromotionAnimation"); + s.store_object_field("feature", static_cast<const BaseObject *>(feature_.get())); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_class_end(); + } +} + +premiumFeatures::premiumFeatures() + : features_() + , limits_() + , payment_link_() +{} + +premiumFeatures::premiumFeatures(array<object_ptr<PremiumFeature>> &&features_, array<object_ptr<premiumLimit>> &&limits_, object_ptr<InternalLinkType> &&payment_link_) + : features_(std::move(features_)) + , limits_(std::move(limits_)) + , payment_link_(std::move(payment_link_)) +{} + +const std::int32_t premiumFeatures::ID; + +void premiumFeatures::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumFeatures"); + { s.store_vector_begin("features", features_.size()); for (const auto &_value : features_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("limits", limits_.size()); for (const auto &_value : limits_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("payment_link", static_cast<const BaseObject *>(payment_link_.get())); + s.store_class_end(); + } +} + +premiumLimit::premiumLimit() + : type_() + , default_value_() + , premium_value_() +{} + +premiumLimit::premiumLimit(object_ptr<PremiumLimitType> &&type_, int32 default_value_, int32 premium_value_) + : type_(std::move(type_)) + , default_value_(default_value_) + , premium_value_(premium_value_) +{} + +const std::int32_t premiumLimit::ID; + +void premiumLimit::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimit"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("default_value", default_value_); + s.store_field("premium_value", premium_value_); + s.store_class_end(); + } +} + +premiumLimitTypeSupergroupCount::premiumLimitTypeSupergroupCount() { +} + +const std::int32_t premiumLimitTypeSupergroupCount::ID; + +void premiumLimitTypeSupergroupCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeSupergroupCount"); + s.store_class_end(); + } +} + +premiumLimitTypePinnedChatCount::premiumLimitTypePinnedChatCount() { +} + +const std::int32_t premiumLimitTypePinnedChatCount::ID; + +void premiumLimitTypePinnedChatCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypePinnedChatCount"); + s.store_class_end(); + } +} + +premiumLimitTypeCreatedPublicChatCount::premiumLimitTypeCreatedPublicChatCount() { +} + +const std::int32_t premiumLimitTypeCreatedPublicChatCount::ID; + +void premiumLimitTypeCreatedPublicChatCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeCreatedPublicChatCount"); + s.store_class_end(); + } +} + +premiumLimitTypeSavedAnimationCount::premiumLimitTypeSavedAnimationCount() { +} + +const std::int32_t premiumLimitTypeSavedAnimationCount::ID; + +void premiumLimitTypeSavedAnimationCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeSavedAnimationCount"); + s.store_class_end(); + } +} + +premiumLimitTypeFavoriteStickerCount::premiumLimitTypeFavoriteStickerCount() { +} + +const std::int32_t premiumLimitTypeFavoriteStickerCount::ID; + +void premiumLimitTypeFavoriteStickerCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeFavoriteStickerCount"); + s.store_class_end(); + } +} + +premiumLimitTypeChatFilterCount::premiumLimitTypeChatFilterCount() { +} + +const std::int32_t premiumLimitTypeChatFilterCount::ID; + +void premiumLimitTypeChatFilterCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeChatFilterCount"); + s.store_class_end(); + } +} + +premiumLimitTypeChatFilterChosenChatCount::premiumLimitTypeChatFilterChosenChatCount() { +} + +const std::int32_t premiumLimitTypeChatFilterChosenChatCount::ID; + +void premiumLimitTypeChatFilterChosenChatCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeChatFilterChosenChatCount"); + s.store_class_end(); + } +} + +premiumLimitTypePinnedArchivedChatCount::premiumLimitTypePinnedArchivedChatCount() { +} + +const std::int32_t premiumLimitTypePinnedArchivedChatCount::ID; + +void premiumLimitTypePinnedArchivedChatCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypePinnedArchivedChatCount"); + s.store_class_end(); + } +} + +premiumLimitTypeCaptionLength::premiumLimitTypeCaptionLength() { +} + +const std::int32_t premiumLimitTypeCaptionLength::ID; + +void premiumLimitTypeCaptionLength::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeCaptionLength"); + s.store_class_end(); + } +} + +premiumLimitTypeBioLength::premiumLimitTypeBioLength() { +} + +const std::int32_t premiumLimitTypeBioLength::ID; + +void premiumLimitTypeBioLength::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumLimitTypeBioLength"); + s.store_class_end(); + } +} + +premiumPaymentOption::premiumPaymentOption() + : currency_() + , amount_() + , discount_percentage_() + , month_count_() + , store_product_id_() + , payment_link_() +{} + +premiumPaymentOption::premiumPaymentOption(string const ¤cy_, int53 amount_, int32 discount_percentage_, int32 month_count_, string const &store_product_id_, object_ptr<InternalLinkType> &&payment_link_) + : currency_(currency_) + , amount_(amount_) + , discount_percentage_(discount_percentage_) + , month_count_(month_count_) + , store_product_id_(store_product_id_) + , payment_link_(std::move(payment_link_)) +{} + +const std::int32_t premiumPaymentOption::ID; + +void premiumPaymentOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumPaymentOption"); + s.store_field("currency", currency_); + s.store_field("amount", amount_); + s.store_field("discount_percentage", discount_percentage_); + s.store_field("month_count", month_count_); + s.store_field("store_product_id", store_product_id_); + s.store_object_field("payment_link", static_cast<const BaseObject *>(payment_link_.get())); + s.store_class_end(); + } +} + +premiumSourceLimitExceeded::premiumSourceLimitExceeded() + : limit_type_() +{} + +premiumSourceLimitExceeded::premiumSourceLimitExceeded(object_ptr<PremiumLimitType> &&limit_type_) + : limit_type_(std::move(limit_type_)) +{} + +const std::int32_t premiumSourceLimitExceeded::ID; + +void premiumSourceLimitExceeded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumSourceLimitExceeded"); + s.store_object_field("limit_type", static_cast<const BaseObject *>(limit_type_.get())); + s.store_class_end(); + } +} + +premiumSourceFeature::premiumSourceFeature() + : feature_() +{} + +premiumSourceFeature::premiumSourceFeature(object_ptr<PremiumFeature> &&feature_) + : feature_(std::move(feature_)) +{} + +const std::int32_t premiumSourceFeature::ID; + +void premiumSourceFeature::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumSourceFeature"); + s.store_object_field("feature", static_cast<const BaseObject *>(feature_.get())); + s.store_class_end(); + } +} + +premiumSourceLink::premiumSourceLink() + : referrer_() +{} + +premiumSourceLink::premiumSourceLink(string const &referrer_) + : referrer_(referrer_) +{} + +const std::int32_t premiumSourceLink::ID; + +void premiumSourceLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumSourceLink"); + s.store_field("referrer", referrer_); + s.store_class_end(); + } +} + +premiumSourceSettings::premiumSourceSettings() { +} + +const std::int32_t premiumSourceSettings::ID; + +void premiumSourceSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumSourceSettings"); + s.store_class_end(); + } +} + +premiumState::premiumState() + : state_() + , payment_options_() + , animations_() +{} + +premiumState::premiumState(object_ptr<formattedText> &&state_, array<object_ptr<premiumPaymentOption>> &&payment_options_, array<object_ptr<premiumFeaturePromotionAnimation>> &&animations_) + : state_(std::move(state_)) + , payment_options_(std::move(payment_options_)) + , animations_(std::move(animations_)) +{} + +const std::int32_t premiumState::ID; + +void premiumState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumState"); + s.store_object_field("state", static_cast<const BaseObject *>(state_.get())); + { s.store_vector_begin("payment_options", payment_options_.size()); for (const auto &_value : payment_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("animations", animations_.size()); for (const auto &_value : animations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +profilePhoto::profilePhoto() + : id_() + , small_() + , big_() + , minithumbnail_() + , has_animation_() +{} + +profilePhoto::profilePhoto(int64 id_, object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_) + : id_(id_) + , small_(std::move(small_)) + , big_(std::move(big_)) + , minithumbnail_(std::move(minithumbnail_)) + , has_animation_(has_animation_) +{} + +const std::int32_t profilePhoto::ID; + +void profilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "profilePhoto"); + s.store_field("id", id_); + s.store_object_field("small", static_cast<const BaseObject *>(small_.get())); + s.store_object_field("big", static_cast<const BaseObject *>(big_.get())); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + s.store_field("has_animation", has_animation_); + s.store_class_end(); + } +} + +proxies::proxies() + : proxies_() +{} + +proxies::proxies(array<object_ptr<proxy>> &&proxies_) + : proxies_(std::move(proxies_)) +{} + +const std::int32_t proxies::ID; + +void proxies::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "proxies"); + { s.store_vector_begin("proxies", proxies_.size()); for (const auto &_value : proxies_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +proxy::proxy() + : id_() + , server_() + , port_() + , last_used_date_() + , is_enabled_() + , type_() +{} + +proxy::proxy(int32 id_, string const &server_, int32 port_, int32 last_used_date_, bool is_enabled_, object_ptr<ProxyType> &&type_) + : id_(id_) + , server_(server_) + , port_(port_) + , last_used_date_(last_used_date_) + , is_enabled_(is_enabled_) + , type_(std::move(type_)) +{} + +const std::int32_t proxy::ID; + +void proxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "proxy"); + s.store_field("id", id_); + s.store_field("server", server_); + s.store_field("port", port_); + s.store_field("last_used_date", last_used_date_); + s.store_field("is_enabled", is_enabled_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +proxyTypeSocks5::proxyTypeSocks5() + : username_() + , password_() +{} + +proxyTypeSocks5::proxyTypeSocks5(string const &username_, string const &password_) + : username_(username_) + , password_(password_) +{} + +const std::int32_t proxyTypeSocks5::ID; + +void proxyTypeSocks5::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "proxyTypeSocks5"); + s.store_field("username", username_); + s.store_field("password", password_); + s.store_class_end(); + } +} + +proxyTypeHttp::proxyTypeHttp() + : username_() + , password_() + , http_only_() +{} + +proxyTypeHttp::proxyTypeHttp(string const &username_, string const &password_, bool http_only_) + : username_(username_) + , password_(password_) + , http_only_(http_only_) +{} + +const std::int32_t proxyTypeHttp::ID; + +void proxyTypeHttp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "proxyTypeHttp"); + s.store_field("username", username_); + s.store_field("password", password_); + s.store_field("http_only", http_only_); + s.store_class_end(); + } +} + +proxyTypeMtproto::proxyTypeMtproto() + : secret_() +{} + +proxyTypeMtproto::proxyTypeMtproto(string const &secret_) + : secret_(secret_) +{} + +const std::int32_t proxyTypeMtproto::ID; + +void proxyTypeMtproto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "proxyTypeMtproto"); + s.store_field("secret", secret_); + s.store_class_end(); + } +} + +publicChatTypeHasUsername::publicChatTypeHasUsername() { +} + +const std::int32_t publicChatTypeHasUsername::ID; + +void publicChatTypeHasUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "publicChatTypeHasUsername"); + s.store_class_end(); + } +} + +publicChatTypeIsLocationBased::publicChatTypeIsLocationBased() { +} + +const std::int32_t publicChatTypeIsLocationBased::ID; + +void publicChatTypeIsLocationBased::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "publicChatTypeIsLocationBased"); + s.store_class_end(); + } +} + +pushMessageContentHidden::pushMessageContentHidden() + : is_pinned_() +{} + +pushMessageContentHidden::pushMessageContentHidden(bool is_pinned_) + : is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentHidden::ID; + +void pushMessageContentHidden::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentHidden"); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentAnimation::pushMessageContentAnimation() + : animation_() + , caption_() + , is_pinned_() +{} + +pushMessageContentAnimation::pushMessageContentAnimation(object_ptr<animation> &&animation_, string const &caption_, bool is_pinned_) + : animation_(std::move(animation_)) + , caption_(caption_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentAnimation::ID; + +void pushMessageContentAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentAnimation"); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_field("caption", caption_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentAudio::pushMessageContentAudio() + : audio_() + , is_pinned_() +{} + +pushMessageContentAudio::pushMessageContentAudio(object_ptr<audio> &&audio_, bool is_pinned_) + : audio_(std::move(audio_)) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentAudio::ID; + +void pushMessageContentAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentAudio"); + s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get())); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentContact::pushMessageContentContact() + : name_() + , is_pinned_() +{} + +pushMessageContentContact::pushMessageContentContact(string const &name_, bool is_pinned_) + : name_(name_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentContact::ID; + +void pushMessageContentContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentContact"); + s.store_field("name", name_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentContactRegistered::pushMessageContentContactRegistered() { +} + +const std::int32_t pushMessageContentContactRegistered::ID; + +void pushMessageContentContactRegistered::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentContactRegistered"); + s.store_class_end(); + } +} + +pushMessageContentDocument::pushMessageContentDocument() + : document_() + , is_pinned_() +{} + +pushMessageContentDocument::pushMessageContentDocument(object_ptr<document> &&document_, bool is_pinned_) + : document_(std::move(document_)) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentDocument::ID; + +void pushMessageContentDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentDocument"); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentGame::pushMessageContentGame() + : title_() + , is_pinned_() +{} + +pushMessageContentGame::pushMessageContentGame(string const &title_, bool is_pinned_) + : title_(title_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentGame::ID; + +void pushMessageContentGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentGame"); + s.store_field("title", title_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentGameScore::pushMessageContentGameScore() + : title_() + , score_() + , is_pinned_() +{} + +pushMessageContentGameScore::pushMessageContentGameScore(string const &title_, int32 score_, bool is_pinned_) + : title_(title_) + , score_(score_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentGameScore::ID; + +void pushMessageContentGameScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentGameScore"); + s.store_field("title", title_); + s.store_field("score", score_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentInvoice::pushMessageContentInvoice() + : price_() + , is_pinned_() +{} + +pushMessageContentInvoice::pushMessageContentInvoice(string const &price_, bool is_pinned_) + : price_(price_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentInvoice::ID; + +void pushMessageContentInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentInvoice"); + s.store_field("price", price_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentLocation::pushMessageContentLocation() + : is_live_() + , is_pinned_() +{} + +pushMessageContentLocation::pushMessageContentLocation(bool is_live_, bool is_pinned_) + : is_live_(is_live_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentLocation::ID; + +void pushMessageContentLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentLocation"); + s.store_field("is_live", is_live_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentPhoto::pushMessageContentPhoto() + : photo_() + , caption_() + , is_secret_() + , is_pinned_() +{} + +pushMessageContentPhoto::pushMessageContentPhoto(object_ptr<photo> &&photo_, string const &caption_, bool is_secret_, bool is_pinned_) + : photo_(std::move(photo_)) + , caption_(caption_) + , is_secret_(is_secret_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentPhoto::ID; + +void pushMessageContentPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentPhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("caption", caption_); + s.store_field("is_secret", is_secret_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentPoll::pushMessageContentPoll() + : question_() + , is_regular_() + , is_pinned_() +{} + +pushMessageContentPoll::pushMessageContentPoll(string const &question_, bool is_regular_, bool is_pinned_) + : question_(question_) + , is_regular_(is_regular_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentPoll::ID; + +void pushMessageContentPoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentPoll"); + s.store_field("question", question_); + s.store_field("is_regular", is_regular_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentScreenshotTaken::pushMessageContentScreenshotTaken() { +} + +const std::int32_t pushMessageContentScreenshotTaken::ID; + +void pushMessageContentScreenshotTaken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentScreenshotTaken"); + s.store_class_end(); + } +} + +pushMessageContentSticker::pushMessageContentSticker() + : sticker_() + , emoji_() + , is_pinned_() +{} + +pushMessageContentSticker::pushMessageContentSticker(object_ptr<sticker> &&sticker_, string const &emoji_, bool is_pinned_) + : sticker_(std::move(sticker_)) + , emoji_(emoji_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentSticker::ID; + +void pushMessageContentSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentSticker"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_field("emoji", emoji_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentText::pushMessageContentText() + : text_() + , is_pinned_() +{} + +pushMessageContentText::pushMessageContentText(string const &text_, bool is_pinned_) + : text_(text_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentText::ID; + +void pushMessageContentText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentText"); + s.store_field("text", text_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentVideo::pushMessageContentVideo() + : video_() + , caption_() + , is_secret_() + , is_pinned_() +{} + +pushMessageContentVideo::pushMessageContentVideo(object_ptr<video> &&video_, string const &caption_, bool is_secret_, bool is_pinned_) + : video_(std::move(video_)) + , caption_(caption_) + , is_secret_(is_secret_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentVideo::ID; + +void pushMessageContentVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentVideo"); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_field("caption", caption_); + s.store_field("is_secret", is_secret_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentVideoNote::pushMessageContentVideoNote() + : video_note_() + , is_pinned_() +{} + +pushMessageContentVideoNote::pushMessageContentVideoNote(object_ptr<videoNote> &&video_note_, bool is_pinned_) + : video_note_(std::move(video_note_)) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentVideoNote::ID; + +void pushMessageContentVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentVideoNote"); + s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get())); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentVoiceNote::pushMessageContentVoiceNote() + : voice_note_() + , is_pinned_() +{} + +pushMessageContentVoiceNote::pushMessageContentVoiceNote(object_ptr<voiceNote> &&voice_note_, bool is_pinned_) + : voice_note_(std::move(voice_note_)) + , is_pinned_(is_pinned_) +{} + +const std::int32_t pushMessageContentVoiceNote::ID; + +void pushMessageContentVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentVoiceNote"); + s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get())); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +pushMessageContentBasicGroupChatCreate::pushMessageContentBasicGroupChatCreate() { +} + +const std::int32_t pushMessageContentBasicGroupChatCreate::ID; + +void pushMessageContentBasicGroupChatCreate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentBasicGroupChatCreate"); + s.store_class_end(); + } +} + +pushMessageContentChatAddMembers::pushMessageContentChatAddMembers() + : member_name_() + , is_current_user_() + , is_returned_() +{} + +pushMessageContentChatAddMembers::pushMessageContentChatAddMembers(string const &member_name_, bool is_current_user_, bool is_returned_) + : member_name_(member_name_) + , is_current_user_(is_current_user_) + , is_returned_(is_returned_) +{} + +const std::int32_t pushMessageContentChatAddMembers::ID; + +void pushMessageContentChatAddMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentChatAddMembers"); + s.store_field("member_name", member_name_); + s.store_field("is_current_user", is_current_user_); + s.store_field("is_returned", is_returned_); + s.store_class_end(); + } +} + +pushMessageContentChatChangePhoto::pushMessageContentChatChangePhoto() { +} + +const std::int32_t pushMessageContentChatChangePhoto::ID; + +void pushMessageContentChatChangePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentChatChangePhoto"); + s.store_class_end(); + } +} + +pushMessageContentChatChangeTitle::pushMessageContentChatChangeTitle() + : title_() +{} + +pushMessageContentChatChangeTitle::pushMessageContentChatChangeTitle(string const &title_) + : title_(title_) +{} + +const std::int32_t pushMessageContentChatChangeTitle::ID; + +void pushMessageContentChatChangeTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentChatChangeTitle"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +pushMessageContentChatSetTheme::pushMessageContentChatSetTheme() + : theme_name_() +{} + +pushMessageContentChatSetTheme::pushMessageContentChatSetTheme(string const &theme_name_) + : theme_name_(theme_name_) +{} + +const std::int32_t pushMessageContentChatSetTheme::ID; + +void pushMessageContentChatSetTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentChatSetTheme"); + s.store_field("theme_name", theme_name_); + s.store_class_end(); + } +} + +pushMessageContentChatDeleteMember::pushMessageContentChatDeleteMember() + : member_name_() + , is_current_user_() + , is_left_() +{} + +pushMessageContentChatDeleteMember::pushMessageContentChatDeleteMember(string const &member_name_, bool is_current_user_, bool is_left_) + : member_name_(member_name_) + , is_current_user_(is_current_user_) + , is_left_(is_left_) +{} + +const std::int32_t pushMessageContentChatDeleteMember::ID; + +void pushMessageContentChatDeleteMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentChatDeleteMember"); + s.store_field("member_name", member_name_); + s.store_field("is_current_user", is_current_user_); + s.store_field("is_left", is_left_); + s.store_class_end(); + } +} + +pushMessageContentChatJoinByLink::pushMessageContentChatJoinByLink() { +} + +const std::int32_t pushMessageContentChatJoinByLink::ID; + +void pushMessageContentChatJoinByLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentChatJoinByLink"); + s.store_class_end(); + } +} + +pushMessageContentChatJoinByRequest::pushMessageContentChatJoinByRequest() { +} + +const std::int32_t pushMessageContentChatJoinByRequest::ID; + +void pushMessageContentChatJoinByRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentChatJoinByRequest"); + s.store_class_end(); + } +} + +pushMessageContentRecurringPayment::pushMessageContentRecurringPayment() + : amount_() +{} + +pushMessageContentRecurringPayment::pushMessageContentRecurringPayment(string const &amount_) + : amount_(amount_) +{} + +const std::int32_t pushMessageContentRecurringPayment::ID; + +void pushMessageContentRecurringPayment::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentRecurringPayment"); + s.store_field("amount", amount_); + s.store_class_end(); + } +} + +pushMessageContentMessageForwards::pushMessageContentMessageForwards() + : total_count_() +{} + +pushMessageContentMessageForwards::pushMessageContentMessageForwards(int32 total_count_) + : total_count_(total_count_) +{} + +const std::int32_t pushMessageContentMessageForwards::ID; + +void pushMessageContentMessageForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentMessageForwards"); + s.store_field("total_count", total_count_); + s.store_class_end(); + } +} + +pushMessageContentMediaAlbum::pushMessageContentMediaAlbum() + : total_count_() + , has_photos_() + , has_videos_() + , has_audios_() + , has_documents_() +{} + +pushMessageContentMediaAlbum::pushMessageContentMediaAlbum(int32 total_count_, bool has_photos_, bool has_videos_, bool has_audios_, bool has_documents_) + : total_count_(total_count_) + , has_photos_(has_photos_) + , has_videos_(has_videos_) + , has_audios_(has_audios_) + , has_documents_(has_documents_) +{} + +const std::int32_t pushMessageContentMediaAlbum::ID; + +void pushMessageContentMediaAlbum::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushMessageContentMediaAlbum"); + s.store_field("total_count", total_count_); + s.store_field("has_photos", has_photos_); + s.store_field("has_videos", has_videos_); + s.store_field("has_audios", has_audios_); + s.store_field("has_documents", has_documents_); + s.store_class_end(); + } +} + +pushReceiverId::pushReceiverId() + : id_() +{} + +pushReceiverId::pushReceiverId(int64 id_) + : id_(id_) +{} + +const std::int32_t pushReceiverId::ID; + +void pushReceiverId::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pushReceiverId"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +reactionTypeEmoji::reactionTypeEmoji() + : emoji_() +{} + +reactionTypeEmoji::reactionTypeEmoji(string const &emoji_) + : emoji_(emoji_) +{} + +const std::int32_t reactionTypeEmoji::ID; + +void reactionTypeEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reactionTypeEmoji"); + s.store_field("emoji", emoji_); + s.store_class_end(); + } +} + +reactionTypeCustomEmoji::reactionTypeCustomEmoji() + : custom_emoji_id_() +{} + +reactionTypeCustomEmoji::reactionTypeCustomEmoji(int64 custom_emoji_id_) + : custom_emoji_id_(custom_emoji_id_) +{} + +const std::int32_t reactionTypeCustomEmoji::ID; + +void reactionTypeCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reactionTypeCustomEmoji"); + s.store_field("custom_emoji_id", custom_emoji_id_); + s.store_class_end(); + } +} + +recommendedChatFilter::recommendedChatFilter() + : filter_() + , description_() +{} + +recommendedChatFilter::recommendedChatFilter(object_ptr<chatFilter> &&filter_, string const &description_) + : filter_(std::move(filter_)) + , description_(description_) +{} + +const std::int32_t recommendedChatFilter::ID; + +void recommendedChatFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recommendedChatFilter"); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("description", description_); + s.store_class_end(); + } +} + +recommendedChatFilters::recommendedChatFilters() + : chat_filters_() +{} + +recommendedChatFilters::recommendedChatFilters(array<object_ptr<recommendedChatFilter>> &&chat_filters_) + : chat_filters_(std::move(chat_filters_)) +{} + +const std::int32_t recommendedChatFilters::ID; + +void recommendedChatFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recommendedChatFilters"); + { s.store_vector_begin("chat_filters", chat_filters_.size()); for (const auto &_value : chat_filters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +recoveryEmailAddress::recoveryEmailAddress() + : recovery_email_address_() +{} + +recoveryEmailAddress::recoveryEmailAddress(string const &recovery_email_address_) + : recovery_email_address_(recovery_email_address_) +{} + +const std::int32_t recoveryEmailAddress::ID; + +void recoveryEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recoveryEmailAddress"); + s.store_field("recovery_email_address", recovery_email_address_); + s.store_class_end(); + } +} + +remoteFile::remoteFile() + : id_() + , unique_id_() + , is_uploading_active_() + , is_uploading_completed_() + , uploaded_size_() +{} + +remoteFile::remoteFile(string const &id_, string const &unique_id_, bool is_uploading_active_, bool is_uploading_completed_, int53 uploaded_size_) + : id_(id_) + , unique_id_(unique_id_) + , is_uploading_active_(is_uploading_active_) + , is_uploading_completed_(is_uploading_completed_) + , uploaded_size_(uploaded_size_) +{} + +const std::int32_t remoteFile::ID; + +void remoteFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "remoteFile"); + s.store_field("id", id_); + s.store_field("unique_id", unique_id_); + s.store_field("is_uploading_active", is_uploading_active_); + s.store_field("is_uploading_completed", is_uploading_completed_); + s.store_field("uploaded_size", uploaded_size_); + s.store_class_end(); + } +} + +replyMarkupRemoveKeyboard::replyMarkupRemoveKeyboard() + : is_personal_() +{} + +replyMarkupRemoveKeyboard::replyMarkupRemoveKeyboard(bool is_personal_) + : is_personal_(is_personal_) +{} + +const std::int32_t replyMarkupRemoveKeyboard::ID; + +void replyMarkupRemoveKeyboard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyMarkupRemoveKeyboard"); + s.store_field("is_personal", is_personal_); + s.store_class_end(); + } +} + +replyMarkupForceReply::replyMarkupForceReply() + : is_personal_() + , input_field_placeholder_() +{} + +replyMarkupForceReply::replyMarkupForceReply(bool is_personal_, string const &input_field_placeholder_) + : is_personal_(is_personal_) + , input_field_placeholder_(input_field_placeholder_) +{} + +const std::int32_t replyMarkupForceReply::ID; + +void replyMarkupForceReply::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyMarkupForceReply"); + s.store_field("is_personal", is_personal_); + s.store_field("input_field_placeholder", input_field_placeholder_); + s.store_class_end(); + } +} + +replyMarkupShowKeyboard::replyMarkupShowKeyboard() + : rows_() + , resize_keyboard_() + , one_time_() + , is_personal_() + , input_field_placeholder_() +{} + +replyMarkupShowKeyboard::replyMarkupShowKeyboard(array<array<object_ptr<keyboardButton>>> &&rows_, bool resize_keyboard_, bool one_time_, bool is_personal_, string const &input_field_placeholder_) + : rows_(std::move(rows_)) + , resize_keyboard_(resize_keyboard_) + , one_time_(one_time_) + , is_personal_(is_personal_) + , input_field_placeholder_(input_field_placeholder_) +{} + +const std::int32_t replyMarkupShowKeyboard::ID; + +void replyMarkupShowKeyboard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyMarkupShowKeyboard"); + { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { { s.store_vector_begin("", _value.size()); for (const auto &_value2 : _value) { s.store_object_field("", static_cast<const BaseObject *>(_value2.get())); } s.store_class_end(); } } s.store_class_end(); } + s.store_field("resize_keyboard", resize_keyboard_); + s.store_field("one_time", one_time_); + s.store_field("is_personal", is_personal_); + s.store_field("input_field_placeholder", input_field_placeholder_); + s.store_class_end(); + } +} + +replyMarkupInlineKeyboard::replyMarkupInlineKeyboard() + : rows_() +{} + +replyMarkupInlineKeyboard::replyMarkupInlineKeyboard(array<array<object_ptr<inlineKeyboardButton>>> &&rows_) + : rows_(std::move(rows_)) +{} + +const std::int32_t replyMarkupInlineKeyboard::ID; + +void replyMarkupInlineKeyboard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyMarkupInlineKeyboard"); + { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { { s.store_vector_begin("", _value.size()); for (const auto &_value2 : _value) { s.store_object_field("", static_cast<const BaseObject *>(_value2.get())); } s.store_class_end(); } } s.store_class_end(); } + s.store_class_end(); + } +} + +resetPasswordResultOk::resetPasswordResultOk() { +} + +const std::int32_t resetPasswordResultOk::ID; + +void resetPasswordResultOk::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resetPasswordResultOk"); + s.store_class_end(); + } +} + +resetPasswordResultPending::resetPasswordResultPending() + : pending_reset_date_() +{} + +resetPasswordResultPending::resetPasswordResultPending(int32 pending_reset_date_) + : pending_reset_date_(pending_reset_date_) +{} + +const std::int32_t resetPasswordResultPending::ID; + +void resetPasswordResultPending::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resetPasswordResultPending"); + s.store_field("pending_reset_date", pending_reset_date_); + s.store_class_end(); + } +} + +resetPasswordResultDeclined::resetPasswordResultDeclined() + : retry_date_() +{} + +resetPasswordResultDeclined::resetPasswordResultDeclined(int32 retry_date_) + : retry_date_(retry_date_) +{} + +const std::int32_t resetPasswordResultDeclined::ID; + +void resetPasswordResultDeclined::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resetPasswordResultDeclined"); + s.store_field("retry_date", retry_date_); + s.store_class_end(); + } +} + +richTextPlain::richTextPlain() + : text_() +{} + +richTextPlain::richTextPlain(string const &text_) + : text_(text_) +{} + +const std::int32_t richTextPlain::ID; + +void richTextPlain::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextPlain"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +richTextBold::richTextBold() + : text_() +{} + +richTextBold::richTextBold(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextBold::ID; + +void richTextBold::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextBold"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextItalic::richTextItalic() + : text_() +{} + +richTextItalic::richTextItalic(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextItalic::ID; + +void richTextItalic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextItalic"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextUnderline::richTextUnderline() + : text_() +{} + +richTextUnderline::richTextUnderline(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextUnderline::ID; + +void richTextUnderline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextUnderline"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextStrikethrough::richTextStrikethrough() + : text_() +{} + +richTextStrikethrough::richTextStrikethrough(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextStrikethrough::ID; + +void richTextStrikethrough::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextStrikethrough"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextFixed::richTextFixed() + : text_() +{} + +richTextFixed::richTextFixed(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextFixed::ID; + +void richTextFixed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextFixed"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextUrl::richTextUrl() + : text_() + , url_() + , is_cached_() +{} + +richTextUrl::richTextUrl(object_ptr<RichText> &&text_, string const &url_, bool is_cached_) + : text_(std::move(text_)) + , url_(url_) + , is_cached_(is_cached_) +{} + +const std::int32_t richTextUrl::ID; + +void richTextUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextUrl"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("url", url_); + s.store_field("is_cached", is_cached_); + s.store_class_end(); + } +} + +richTextEmailAddress::richTextEmailAddress() + : text_() + , email_address_() +{} + +richTextEmailAddress::richTextEmailAddress(object_ptr<RichText> &&text_, string const &email_address_) + : text_(std::move(text_)) + , email_address_(email_address_) +{} + +const std::int32_t richTextEmailAddress::ID; + +void richTextEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextEmailAddress"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("email_address", email_address_); + s.store_class_end(); + } +} + +richTextSubscript::richTextSubscript() + : text_() +{} + +richTextSubscript::richTextSubscript(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextSubscript::ID; + +void richTextSubscript::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextSubscript"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextSuperscript::richTextSuperscript() + : text_() +{} + +richTextSuperscript::richTextSuperscript(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextSuperscript::ID; + +void richTextSuperscript::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextSuperscript"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextMarked::richTextMarked() + : text_() +{} + +richTextMarked::richTextMarked(object_ptr<RichText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t richTextMarked::ID; + +void richTextMarked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextMarked"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +richTextPhoneNumber::richTextPhoneNumber() + : text_() + , phone_number_() +{} + +richTextPhoneNumber::richTextPhoneNumber(object_ptr<RichText> &&text_, string const &phone_number_) + : text_(std::move(text_)) + , phone_number_(phone_number_) +{} + +const std::int32_t richTextPhoneNumber::ID; + +void richTextPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextPhoneNumber"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("phone_number", phone_number_); + s.store_class_end(); + } +} + +richTextIcon::richTextIcon() + : document_() + , width_() + , height_() +{} + +richTextIcon::richTextIcon(object_ptr<document> &&document_, int32 width_, int32 height_) + : document_(std::move(document_)) + , width_(width_) + , height_(height_) +{} + +const std::int32_t richTextIcon::ID; + +void richTextIcon::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextIcon"); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_class_end(); + } +} + +richTextReference::richTextReference() + : text_() + , anchor_name_() + , url_() +{} + +richTextReference::richTextReference(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_) + : text_(std::move(text_)) + , anchor_name_(anchor_name_) + , url_(url_) +{} + +const std::int32_t richTextReference::ID; + +void richTextReference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextReference"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("anchor_name", anchor_name_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +richTextAnchor::richTextAnchor() + : name_() +{} + +richTextAnchor::richTextAnchor(string const &name_) + : name_(name_) +{} + +const std::int32_t richTextAnchor::ID; + +void richTextAnchor::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextAnchor"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +richTextAnchorLink::richTextAnchorLink() + : text_() + , anchor_name_() + , url_() +{} + +richTextAnchorLink::richTextAnchorLink(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_) + : text_(std::move(text_)) + , anchor_name_(anchor_name_) + , url_(url_) +{} + +const std::int32_t richTextAnchorLink::ID; + +void richTextAnchorLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTextAnchorLink"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("anchor_name", anchor_name_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +richTexts::richTexts() + : texts_() +{} + +richTexts::richTexts(array<object_ptr<RichText>> &&texts_) + : texts_(std::move(texts_)) +{} + +const std::int32_t richTexts::ID; + +void richTexts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "richTexts"); + { s.store_vector_begin("texts", texts_.size()); for (const auto &_value : texts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +rtmpUrl::rtmpUrl() + : url_() + , stream_key_() +{} + +rtmpUrl::rtmpUrl(string const &url_, string const &stream_key_) + : url_(url_) + , stream_key_(stream_key_) +{} + +const std::int32_t rtmpUrl::ID; + +void rtmpUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rtmpUrl"); + s.store_field("url", url_); + s.store_field("stream_key", stream_key_); + s.store_class_end(); + } +} + +savedCredentials::savedCredentials() + : id_() + , title_() +{} + +savedCredentials::savedCredentials(string const &id_, string const &title_) + : id_(id_) + , title_(title_) +{} + +const std::int32_t savedCredentials::ID; + +void savedCredentials::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "savedCredentials"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +scopeNotificationSettings::scopeNotificationSettings() + : mute_for_() + , sound_id_() + , show_preview_() + , disable_pinned_message_notifications_() + , disable_mention_notifications_() +{} + +scopeNotificationSettings::scopeNotificationSettings(int32 mute_for_, int64 sound_id_, bool show_preview_, bool disable_pinned_message_notifications_, bool disable_mention_notifications_) + : mute_for_(mute_for_) + , sound_id_(sound_id_) + , show_preview_(show_preview_) + , disable_pinned_message_notifications_(disable_pinned_message_notifications_) + , disable_mention_notifications_(disable_mention_notifications_) +{} + +const std::int32_t scopeNotificationSettings::ID; + +void scopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "scopeNotificationSettings"); + s.store_field("mute_for", mute_for_); + s.store_field("sound_id", sound_id_); + s.store_field("show_preview", show_preview_); + s.store_field("disable_pinned_message_notifications", disable_pinned_message_notifications_); + s.store_field("disable_mention_notifications", disable_mention_notifications_); + s.store_class_end(); + } +} + +searchMessagesFilterEmpty::searchMessagesFilterEmpty() { +} + +const std::int32_t searchMessagesFilterEmpty::ID; + +void searchMessagesFilterEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterEmpty"); + s.store_class_end(); + } +} + +searchMessagesFilterAnimation::searchMessagesFilterAnimation() { +} + +const std::int32_t searchMessagesFilterAnimation::ID; + +void searchMessagesFilterAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterAnimation"); + s.store_class_end(); + } +} + +searchMessagesFilterAudio::searchMessagesFilterAudio() { +} + +const std::int32_t searchMessagesFilterAudio::ID; + +void searchMessagesFilterAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterAudio"); + s.store_class_end(); + } +} + +searchMessagesFilterDocument::searchMessagesFilterDocument() { +} + +const std::int32_t searchMessagesFilterDocument::ID; + +void searchMessagesFilterDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterDocument"); + s.store_class_end(); + } +} + +searchMessagesFilterPhoto::searchMessagesFilterPhoto() { +} + +const std::int32_t searchMessagesFilterPhoto::ID; + +void searchMessagesFilterPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterPhoto"); + s.store_class_end(); + } +} + +searchMessagesFilterVideo::searchMessagesFilterVideo() { +} + +const std::int32_t searchMessagesFilterVideo::ID; + +void searchMessagesFilterVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterVideo"); + s.store_class_end(); + } +} + +searchMessagesFilterVoiceNote::searchMessagesFilterVoiceNote() { +} + +const std::int32_t searchMessagesFilterVoiceNote::ID; + +void searchMessagesFilterVoiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterVoiceNote"); + s.store_class_end(); + } +} + +searchMessagesFilterPhotoAndVideo::searchMessagesFilterPhotoAndVideo() { +} + +const std::int32_t searchMessagesFilterPhotoAndVideo::ID; + +void searchMessagesFilterPhotoAndVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterPhotoAndVideo"); + s.store_class_end(); + } +} + +searchMessagesFilterUrl::searchMessagesFilterUrl() { +} + +const std::int32_t searchMessagesFilterUrl::ID; + +void searchMessagesFilterUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterUrl"); + s.store_class_end(); + } +} + +searchMessagesFilterChatPhoto::searchMessagesFilterChatPhoto() { +} + +const std::int32_t searchMessagesFilterChatPhoto::ID; + +void searchMessagesFilterChatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterChatPhoto"); + s.store_class_end(); + } +} + +searchMessagesFilterVideoNote::searchMessagesFilterVideoNote() { +} + +const std::int32_t searchMessagesFilterVideoNote::ID; + +void searchMessagesFilterVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterVideoNote"); + s.store_class_end(); + } +} + +searchMessagesFilterVoiceAndVideoNote::searchMessagesFilterVoiceAndVideoNote() { +} + +const std::int32_t searchMessagesFilterVoiceAndVideoNote::ID; + +void searchMessagesFilterVoiceAndVideoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterVoiceAndVideoNote"); + s.store_class_end(); + } +} + +searchMessagesFilterMention::searchMessagesFilterMention() { +} + +const std::int32_t searchMessagesFilterMention::ID; + +void searchMessagesFilterMention::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterMention"); + s.store_class_end(); + } +} + +searchMessagesFilterUnreadMention::searchMessagesFilterUnreadMention() { +} + +const std::int32_t searchMessagesFilterUnreadMention::ID; + +void searchMessagesFilterUnreadMention::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterUnreadMention"); + s.store_class_end(); + } +} + +searchMessagesFilterUnreadReaction::searchMessagesFilterUnreadReaction() { +} + +const std::int32_t searchMessagesFilterUnreadReaction::ID; + +void searchMessagesFilterUnreadReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterUnreadReaction"); + s.store_class_end(); + } +} + +searchMessagesFilterFailedToSend::searchMessagesFilterFailedToSend() { +} + +const std::int32_t searchMessagesFilterFailedToSend::ID; + +void searchMessagesFilterFailedToSend::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterFailedToSend"); + s.store_class_end(); + } +} + +searchMessagesFilterPinned::searchMessagesFilterPinned() { +} + +const std::int32_t searchMessagesFilterPinned::ID; + +void searchMessagesFilterPinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessagesFilterPinned"); + s.store_class_end(); + } +} + +seconds::seconds() + : seconds_() +{} + +seconds::seconds(double seconds_) + : seconds_(seconds_) +{} + +const std::int32_t seconds::ID; + +void seconds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "seconds"); + s.store_field("seconds", seconds_); + s.store_class_end(); + } +} + +secretChat::secretChat() + : id_() + , user_id_() + , state_() + , is_outbound_() + , key_hash_() + , layer_() +{} + +secretChat::secretChat(int32 id_, int53 user_id_, object_ptr<SecretChatState> &&state_, bool is_outbound_, bytes const &key_hash_, int32 layer_) + : id_(id_) + , user_id_(user_id_) + , state_(std::move(state_)) + , is_outbound_(is_outbound_) + , key_hash_(std::move(key_hash_)) + , layer_(layer_) +{} + +const std::int32_t secretChat::ID; + +void secretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secretChat"); + s.store_field("id", id_); + s.store_field("user_id", user_id_); + s.store_object_field("state", static_cast<const BaseObject *>(state_.get())); + s.store_field("is_outbound", is_outbound_); + s.store_bytes_field("key_hash", key_hash_); + s.store_field("layer", layer_); + s.store_class_end(); + } +} + +secretChatStatePending::secretChatStatePending() { +} + +const std::int32_t secretChatStatePending::ID; + +void secretChatStatePending::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secretChatStatePending"); + s.store_class_end(); + } +} + +secretChatStateReady::secretChatStateReady() { +} + +const std::int32_t secretChatStateReady::ID; + +void secretChatStateReady::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secretChatStateReady"); + s.store_class_end(); + } +} + +secretChatStateClosed::secretChatStateClosed() { +} + +const std::int32_t secretChatStateClosed::ID; + +void secretChatStateClosed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secretChatStateClosed"); + s.store_class_end(); + } +} + +sentWebAppMessage::sentWebAppMessage() + : inline_message_id_() +{} + +sentWebAppMessage::sentWebAppMessage(string const &inline_message_id_) + : inline_message_id_(inline_message_id_) +{} + +const std::int32_t sentWebAppMessage::ID; + +void sentWebAppMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sentWebAppMessage"); + s.store_field("inline_message_id", inline_message_id_); + s.store_class_end(); + } +} + +session::session() + : id_() + , is_current_() + , is_password_pending_() + , can_accept_secret_chats_() + , can_accept_calls_() + , type_() + , api_id_() + , application_name_() + , application_version_() + , is_official_application_() + , device_model_() + , platform_() + , system_version_() + , log_in_date_() + , last_active_date_() + , ip_() + , country_() + , region_() +{} + +session::session(int64 id_, bool is_current_, bool is_password_pending_, bool can_accept_secret_chats_, bool can_accept_calls_, object_ptr<SessionType> &&type_, int32 api_id_, string const &application_name_, string const &application_version_, bool is_official_application_, string const &device_model_, string const &platform_, string const &system_version_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &country_, string const ®ion_) + : id_(id_) + , is_current_(is_current_) + , is_password_pending_(is_password_pending_) + , can_accept_secret_chats_(can_accept_secret_chats_) + , can_accept_calls_(can_accept_calls_) + , type_(std::move(type_)) + , api_id_(api_id_) + , application_name_(application_name_) + , application_version_(application_version_) + , is_official_application_(is_official_application_) + , device_model_(device_model_) + , platform_(platform_) + , system_version_(system_version_) + , log_in_date_(log_in_date_) + , last_active_date_(last_active_date_) + , ip_(ip_) + , country_(country_) + , region_(region_) +{} + +const std::int32_t session::ID; + +void session::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "session"); + s.store_field("id", id_); + s.store_field("is_current", is_current_); + s.store_field("is_password_pending", is_password_pending_); + s.store_field("can_accept_secret_chats", can_accept_secret_chats_); + s.store_field("can_accept_calls", can_accept_calls_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("api_id", api_id_); + s.store_field("application_name", application_name_); + s.store_field("application_version", application_version_); + s.store_field("is_official_application", is_official_application_); + s.store_field("device_model", device_model_); + s.store_field("platform", platform_); + s.store_field("system_version", system_version_); + s.store_field("log_in_date", log_in_date_); + s.store_field("last_active_date", last_active_date_); + s.store_field("ip", ip_); + s.store_field("country", country_); + s.store_field("region", region_); + s.store_class_end(); + } +} + +sessionTypeAndroid::sessionTypeAndroid() { +} + +const std::int32_t sessionTypeAndroid::ID; + +void sessionTypeAndroid::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeAndroid"); + s.store_class_end(); + } +} + +sessionTypeApple::sessionTypeApple() { +} + +const std::int32_t sessionTypeApple::ID; + +void sessionTypeApple::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeApple"); + s.store_class_end(); + } +} + +sessionTypeBrave::sessionTypeBrave() { +} + +const std::int32_t sessionTypeBrave::ID; + +void sessionTypeBrave::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeBrave"); + s.store_class_end(); + } +} + +sessionTypeChrome::sessionTypeChrome() { +} + +const std::int32_t sessionTypeChrome::ID; + +void sessionTypeChrome::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeChrome"); + s.store_class_end(); + } +} + +sessionTypeEdge::sessionTypeEdge() { +} + +const std::int32_t sessionTypeEdge::ID; + +void sessionTypeEdge::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeEdge"); + s.store_class_end(); + } +} + +sessionTypeFirefox::sessionTypeFirefox() { +} + +const std::int32_t sessionTypeFirefox::ID; + +void sessionTypeFirefox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeFirefox"); + s.store_class_end(); + } +} + +sessionTypeIpad::sessionTypeIpad() { +} + +const std::int32_t sessionTypeIpad::ID; + +void sessionTypeIpad::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeIpad"); + s.store_class_end(); + } +} + +sessionTypeIphone::sessionTypeIphone() { +} + +const std::int32_t sessionTypeIphone::ID; + +void sessionTypeIphone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeIphone"); + s.store_class_end(); + } +} + +sessionTypeLinux::sessionTypeLinux() { +} + +const std::int32_t sessionTypeLinux::ID; + +void sessionTypeLinux::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeLinux"); + s.store_class_end(); + } +} + +sessionTypeMac::sessionTypeMac() { +} + +const std::int32_t sessionTypeMac::ID; + +void sessionTypeMac::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeMac"); + s.store_class_end(); + } +} + +sessionTypeOpera::sessionTypeOpera() { +} + +const std::int32_t sessionTypeOpera::ID; + +void sessionTypeOpera::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeOpera"); + s.store_class_end(); + } +} + +sessionTypeSafari::sessionTypeSafari() { +} + +const std::int32_t sessionTypeSafari::ID; + +void sessionTypeSafari::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeSafari"); + s.store_class_end(); + } +} + +sessionTypeUbuntu::sessionTypeUbuntu() { +} + +const std::int32_t sessionTypeUbuntu::ID; + +void sessionTypeUbuntu::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeUbuntu"); + s.store_class_end(); + } +} + +sessionTypeUnknown::sessionTypeUnknown() { +} + +const std::int32_t sessionTypeUnknown::ID; + +void sessionTypeUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeUnknown"); + s.store_class_end(); + } +} + +sessionTypeVivaldi::sessionTypeVivaldi() { +} + +const std::int32_t sessionTypeVivaldi::ID; + +void sessionTypeVivaldi::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeVivaldi"); + s.store_class_end(); + } +} + +sessionTypeWindows::sessionTypeWindows() { +} + +const std::int32_t sessionTypeWindows::ID; + +void sessionTypeWindows::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeWindows"); + s.store_class_end(); + } +} + +sessionTypeXbox::sessionTypeXbox() { +} + +const std::int32_t sessionTypeXbox::ID; + +void sessionTypeXbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessionTypeXbox"); + s.store_class_end(); + } +} + +sessions::sessions() + : sessions_() + , inactive_session_ttl_days_() +{} + +sessions::sessions(array<object_ptr<session>> &&sessions_, int32 inactive_session_ttl_days_) + : sessions_(std::move(sessions_)) + , inactive_session_ttl_days_(inactive_session_ttl_days_) +{} + +const std::int32_t sessions::ID; + +void sessions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sessions"); + { s.store_vector_begin("sessions", sessions_.size()); for (const auto &_value : sessions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("inactive_session_ttl_days", inactive_session_ttl_days_); + s.store_class_end(); + } +} + +shippingOption::shippingOption() + : id_() + , title_() + , price_parts_() +{} + +shippingOption::shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPricePart>> &&price_parts_) + : id_(id_) + , title_(title_) + , price_parts_(std::move(price_parts_)) +{} + +const std::int32_t shippingOption::ID; + +void shippingOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "shippingOption"); + s.store_field("id", id_); + s.store_field("title", title_); + { s.store_vector_begin("price_parts", price_parts_.size()); for (const auto &_value : price_parts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +speechRecognitionResultPending::speechRecognitionResultPending() + : partial_text_() +{} + +speechRecognitionResultPending::speechRecognitionResultPending(string const &partial_text_) + : partial_text_(partial_text_) +{} + +const std::int32_t speechRecognitionResultPending::ID; + +void speechRecognitionResultPending::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "speechRecognitionResultPending"); + s.store_field("partial_text", partial_text_); + s.store_class_end(); + } +} + +speechRecognitionResultText::speechRecognitionResultText() + : text_() +{} + +speechRecognitionResultText::speechRecognitionResultText(string const &text_) + : text_(text_) +{} + +const std::int32_t speechRecognitionResultText::ID; + +void speechRecognitionResultText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "speechRecognitionResultText"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +speechRecognitionResultError::speechRecognitionResultError() + : error_() +{} + +speechRecognitionResultError::speechRecognitionResultError(object_ptr<error> &&error_) + : error_(std::move(error_)) +{} + +const std::int32_t speechRecognitionResultError::ID; + +void speechRecognitionResultError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "speechRecognitionResultError"); + s.store_object_field("error", static_cast<const BaseObject *>(error_.get())); + s.store_class_end(); + } +} + +sponsoredMessage::sponsoredMessage() + : message_id_() + , is_recommended_() + , sponsor_chat_id_() + , sponsor_chat_info_() + , show_chat_photo_() + , link_() + , content_() +{} + +sponsoredMessage::sponsoredMessage(int53 message_id_, bool is_recommended_, int53 sponsor_chat_id_, object_ptr<chatInviteLinkInfo> &&sponsor_chat_info_, bool show_chat_photo_, object_ptr<InternalLinkType> &&link_, object_ptr<MessageContent> &&content_) + : message_id_(message_id_) + , is_recommended_(is_recommended_) + , sponsor_chat_id_(sponsor_chat_id_) + , sponsor_chat_info_(std::move(sponsor_chat_info_)) + , show_chat_photo_(show_chat_photo_) + , link_(std::move(link_)) + , content_(std::move(content_)) +{} + +const std::int32_t sponsoredMessage::ID; + +void sponsoredMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sponsoredMessage"); + s.store_field("message_id", message_id_); + s.store_field("is_recommended", is_recommended_); + s.store_field("sponsor_chat_id", sponsor_chat_id_); + s.store_object_field("sponsor_chat_info", static_cast<const BaseObject *>(sponsor_chat_info_.get())); + s.store_field("show_chat_photo", show_chat_photo_); + s.store_object_field("link", static_cast<const BaseObject *>(link_.get())); + s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); + s.store_class_end(); + } +} + +sponsoredMessages::sponsoredMessages() + : messages_() + , messages_between_() +{} + +sponsoredMessages::sponsoredMessages(array<object_ptr<sponsoredMessage>> &&messages_, int32 messages_between_) + : messages_(std::move(messages_)) + , messages_between_(messages_between_) +{} + +const std::int32_t sponsoredMessages::ID; + +void sponsoredMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sponsoredMessages"); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("messages_between", messages_between_); + s.store_class_end(); + } +} + +statisticalGraphData::statisticalGraphData() + : json_data_() + , zoom_token_() +{} + +statisticalGraphData::statisticalGraphData(string const &json_data_, string const &zoom_token_) + : json_data_(json_data_) + , zoom_token_(zoom_token_) +{} + +const std::int32_t statisticalGraphData::ID; + +void statisticalGraphData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statisticalGraphData"); + s.store_field("json_data", json_data_); + s.store_field("zoom_token", zoom_token_); + s.store_class_end(); + } +} + +statisticalGraphAsync::statisticalGraphAsync() + : token_() +{} + +statisticalGraphAsync::statisticalGraphAsync(string const &token_) + : token_(token_) +{} + +const std::int32_t statisticalGraphAsync::ID; + +void statisticalGraphAsync::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statisticalGraphAsync"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +statisticalGraphError::statisticalGraphError() + : error_message_() +{} + +statisticalGraphError::statisticalGraphError(string const &error_message_) + : error_message_(error_message_) +{} + +const std::int32_t statisticalGraphError::ID; + +void statisticalGraphError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statisticalGraphError"); + s.store_field("error_message", error_message_); + s.store_class_end(); + } +} + +statisticalValue::statisticalValue() + : value_() + , previous_value_() + , growth_rate_percentage_() +{} + +statisticalValue::statisticalValue(double value_, double previous_value_, double growth_rate_percentage_) + : value_(value_) + , previous_value_(previous_value_) + , growth_rate_percentage_(growth_rate_percentage_) +{} + +const std::int32_t statisticalValue::ID; + +void statisticalValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statisticalValue"); + s.store_field("value", value_); + s.store_field("previous_value", previous_value_); + s.store_field("growth_rate_percentage", growth_rate_percentage_); + s.store_class_end(); + } +} + +sticker::sticker() + : set_id_() + , width_() + , height_() + , emoji_() + , format_() + , type_() + , mask_position_() + , custom_emoji_id_() + , outline_() + , thumbnail_() + , is_premium_() + , premium_animation_() + , sticker_() +{} + +sticker::sticker(int64 set_id_, int32 width_, int32 height_, string const &emoji_, object_ptr<StickerFormat> &&format_, object_ptr<StickerType> &&type_, object_ptr<maskPosition> &&mask_position_, int64 custom_emoji_id_, array<object_ptr<closedVectorPath>> &&outline_, object_ptr<thumbnail> &&thumbnail_, bool is_premium_, object_ptr<file> &&premium_animation_, object_ptr<file> &&sticker_) + : set_id_(set_id_) + , width_(width_) + , height_(height_) + , emoji_(emoji_) + , format_(std::move(format_)) + , type_(std::move(type_)) + , mask_position_(std::move(mask_position_)) + , custom_emoji_id_(custom_emoji_id_) + , outline_(std::move(outline_)) + , thumbnail_(std::move(thumbnail_)) + , is_premium_(is_premium_) + , premium_animation_(std::move(premium_animation_)) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t sticker::ID; + +void sticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sticker"); + s.store_field("set_id", set_id_); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_field("emoji", emoji_); + s.store_object_field("format", static_cast<const BaseObject *>(format_.get())); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_object_field("mask_position", static_cast<const BaseObject *>(mask_position_.get())); + s.store_field("custom_emoji_id", custom_emoji_id_); + { s.store_vector_begin("outline", outline_.size()); for (const auto &_value : outline_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_field("is_premium", is_premium_); + s.store_object_field("premium_animation", static_cast<const BaseObject *>(premium_animation_.get())); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +stickerFormatWebp::stickerFormatWebp() { +} + +const std::int32_t stickerFormatWebp::ID; + +void stickerFormatWebp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerFormatWebp"); + s.store_class_end(); + } +} + +stickerFormatTgs::stickerFormatTgs() { +} + +const std::int32_t stickerFormatTgs::ID; + +void stickerFormatTgs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerFormatTgs"); + s.store_class_end(); + } +} + +stickerFormatWebm::stickerFormatWebm() { +} + +const std::int32_t stickerFormatWebm::ID; + +void stickerFormatWebm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerFormatWebm"); + s.store_class_end(); + } +} + +stickerSet::stickerSet() + : id_() + , title_() + , name_() + , thumbnail_() + , thumbnail_outline_() + , is_installed_() + , is_archived_() + , is_official_() + , sticker_format_() + , sticker_type_() + , is_viewed_() + , stickers_() + , emojis_() +{} + +stickerSet::stickerSet(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, array<object_ptr<sticker>> &&stickers_, array<object_ptr<emojis>> &&emojis_) + : id_(id_) + , title_(title_) + , name_(name_) + , thumbnail_(std::move(thumbnail_)) + , thumbnail_outline_(std::move(thumbnail_outline_)) + , is_installed_(is_installed_) + , is_archived_(is_archived_) + , is_official_(is_official_) + , sticker_format_(std::move(sticker_format_)) + , sticker_type_(std::move(sticker_type_)) + , is_viewed_(is_viewed_) + , stickers_(std::move(stickers_)) + , emojis_(std::move(emojis_)) +{} + +const std::int32_t stickerSet::ID; + +void stickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerSet"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("name", name_); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + { s.store_vector_begin("thumbnail_outline", thumbnail_outline_.size()); for (const auto &_value : thumbnail_outline_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("is_installed", is_installed_); + s.store_field("is_archived", is_archived_); + s.store_field("is_official", is_official_); + s.store_object_field("sticker_format", static_cast<const BaseObject *>(sticker_format_.get())); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_field("is_viewed", is_viewed_); + { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +stickerSetInfo::stickerSetInfo() + : id_() + , title_() + , name_() + , thumbnail_() + , thumbnail_outline_() + , is_installed_() + , is_archived_() + , is_official_() + , sticker_format_() + , sticker_type_() + , is_viewed_() + , size_() + , covers_() +{} + +stickerSetInfo::stickerSetInfo(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, int32 size_, array<object_ptr<sticker>> &&covers_) + : id_(id_) + , title_(title_) + , name_(name_) + , thumbnail_(std::move(thumbnail_)) + , thumbnail_outline_(std::move(thumbnail_outline_)) + , is_installed_(is_installed_) + , is_archived_(is_archived_) + , is_official_(is_official_) + , sticker_format_(std::move(sticker_format_)) + , sticker_type_(std::move(sticker_type_)) + , is_viewed_(is_viewed_) + , size_(size_) + , covers_(std::move(covers_)) +{} + +const std::int32_t stickerSetInfo::ID; + +void stickerSetInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerSetInfo"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_field("name", name_); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + { s.store_vector_begin("thumbnail_outline", thumbnail_outline_.size()); for (const auto &_value : thumbnail_outline_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("is_installed", is_installed_); + s.store_field("is_archived", is_archived_); + s.store_field("is_official", is_official_); + s.store_object_field("sticker_format", static_cast<const BaseObject *>(sticker_format_.get())); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_field("is_viewed", is_viewed_); + s.store_field("size", size_); + { s.store_vector_begin("covers", covers_.size()); for (const auto &_value : covers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +stickerSets::stickerSets() + : total_count_() + , sets_() +{} + +stickerSets::stickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_) + : total_count_(total_count_) + , sets_(std::move(sets_)) +{} + +const std::int32_t stickerSets::ID; + +void stickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerSets"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +stickerTypeRegular::stickerTypeRegular() { +} + +const std::int32_t stickerTypeRegular::ID; + +void stickerTypeRegular::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerTypeRegular"); + s.store_class_end(); + } +} + +stickerTypeMask::stickerTypeMask() { +} + +const std::int32_t stickerTypeMask::ID; + +void stickerTypeMask::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerTypeMask"); + s.store_class_end(); + } +} + +stickerTypeCustomEmoji::stickerTypeCustomEmoji() { +} + +const std::int32_t stickerTypeCustomEmoji::ID; + +void stickerTypeCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerTypeCustomEmoji"); + s.store_class_end(); + } +} + +stickers::stickers() + : stickers_() +{} + +stickers::stickers(array<object_ptr<sticker>> &&stickers_) + : stickers_(std::move(stickers_)) +{} + +const std::int32_t stickers::ID; + +void stickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers"); + { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +storageStatistics::storageStatistics() + : size_() + , count_() + , by_chat_() +{} + +storageStatistics::storageStatistics(int53 size_, int32 count_, array<object_ptr<storageStatisticsByChat>> &&by_chat_) + : size_(size_) + , count_(count_) + , by_chat_(std::move(by_chat_)) +{} + +const std::int32_t storageStatistics::ID; + +void storageStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storageStatistics"); + s.store_field("size", size_); + s.store_field("count", count_); + { s.store_vector_begin("by_chat", by_chat_.size()); for (const auto &_value : by_chat_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +storageStatisticsByChat::storageStatisticsByChat() + : chat_id_() + , size_() + , count_() + , by_file_type_() +{} + +storageStatisticsByChat::storageStatisticsByChat(int53 chat_id_, int53 size_, int32 count_, array<object_ptr<storageStatisticsByFileType>> &&by_file_type_) + : chat_id_(chat_id_) + , size_(size_) + , count_(count_) + , by_file_type_(std::move(by_file_type_)) +{} + +const std::int32_t storageStatisticsByChat::ID; + +void storageStatisticsByChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storageStatisticsByChat"); + s.store_field("chat_id", chat_id_); + s.store_field("size", size_); + s.store_field("count", count_); + { s.store_vector_begin("by_file_type", by_file_type_.size()); for (const auto &_value : by_file_type_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +storageStatisticsByFileType::storageStatisticsByFileType() + : file_type_() + , size_() + , count_() +{} + +storageStatisticsByFileType::storageStatisticsByFileType(object_ptr<FileType> &&file_type_, int53 size_, int32 count_) + : file_type_(std::move(file_type_)) + , size_(size_) + , count_(count_) +{} + +const std::int32_t storageStatisticsByFileType::ID; + +void storageStatisticsByFileType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storageStatisticsByFileType"); + s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get())); + s.store_field("size", size_); + s.store_field("count", count_); + s.store_class_end(); + } +} + +storageStatisticsFast::storageStatisticsFast() + : files_size_() + , file_count_() + , database_size_() + , language_pack_database_size_() + , log_size_() +{} + +storageStatisticsFast::storageStatisticsFast(int53 files_size_, int32 file_count_, int53 database_size_, int53 language_pack_database_size_, int53 log_size_) + : files_size_(files_size_) + , file_count_(file_count_) + , database_size_(database_size_) + , language_pack_database_size_(language_pack_database_size_) + , log_size_(log_size_) +{} + +const std::int32_t storageStatisticsFast::ID; + +void storageStatisticsFast::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storageStatisticsFast"); + s.store_field("files_size", files_size_); + s.store_field("file_count", file_count_); + s.store_field("database_size", database_size_); + s.store_field("language_pack_database_size", language_pack_database_size_); + s.store_field("log_size", log_size_); + s.store_class_end(); + } +} + +storePaymentPurposePremiumSubscription::storePaymentPurposePremiumSubscription() + : is_restore_() +{} + +storePaymentPurposePremiumSubscription::storePaymentPurposePremiumSubscription(bool is_restore_) + : is_restore_(is_restore_) +{} + +const std::int32_t storePaymentPurposePremiumSubscription::ID; + +void storePaymentPurposePremiumSubscription::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storePaymentPurposePremiumSubscription"); + s.store_field("is_restore", is_restore_); + s.store_class_end(); + } +} + +storePaymentPurposeGiftedPremium::storePaymentPurposeGiftedPremium() + : user_id_() + , currency_() + , amount_() +{} + +storePaymentPurposeGiftedPremium::storePaymentPurposeGiftedPremium(int53 user_id_, string const ¤cy_, int53 amount_) + : user_id_(user_id_) + , currency_(currency_) + , amount_(amount_) +{} + +const std::int32_t storePaymentPurposeGiftedPremium::ID; + +void storePaymentPurposeGiftedPremium::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storePaymentPurposeGiftedPremium"); + s.store_field("user_id", user_id_); + s.store_field("currency", currency_); + s.store_field("amount", amount_); + s.store_class_end(); + } +} + +suggestedActionEnableArchiveAndMuteNewChats::suggestedActionEnableArchiveAndMuteNewChats() { +} + +const std::int32_t suggestedActionEnableArchiveAndMuteNewChats::ID; + +void suggestedActionEnableArchiveAndMuteNewChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "suggestedActionEnableArchiveAndMuteNewChats"); + s.store_class_end(); + } +} + +suggestedActionCheckPassword::suggestedActionCheckPassword() { +} + +const std::int32_t suggestedActionCheckPassword::ID; + +void suggestedActionCheckPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "suggestedActionCheckPassword"); + s.store_class_end(); + } +} + +suggestedActionCheckPhoneNumber::suggestedActionCheckPhoneNumber() { +} + +const std::int32_t suggestedActionCheckPhoneNumber::ID; + +void suggestedActionCheckPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "suggestedActionCheckPhoneNumber"); + s.store_class_end(); + } +} + +suggestedActionViewChecksHint::suggestedActionViewChecksHint() { +} + +const std::int32_t suggestedActionViewChecksHint::ID; + +void suggestedActionViewChecksHint::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "suggestedActionViewChecksHint"); + s.store_class_end(); + } +} + +suggestedActionConvertToBroadcastGroup::suggestedActionConvertToBroadcastGroup() + : supergroup_id_() +{} + +suggestedActionConvertToBroadcastGroup::suggestedActionConvertToBroadcastGroup(int53 supergroup_id_) + : supergroup_id_(supergroup_id_) +{} + +const std::int32_t suggestedActionConvertToBroadcastGroup::ID; + +void suggestedActionConvertToBroadcastGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "suggestedActionConvertToBroadcastGroup"); + s.store_field("supergroup_id", supergroup_id_); + s.store_class_end(); + } +} + +suggestedActionSetPassword::suggestedActionSetPassword() + : authorization_delay_() +{} + +suggestedActionSetPassword::suggestedActionSetPassword(int32 authorization_delay_) + : authorization_delay_(authorization_delay_) +{} + +const std::int32_t suggestedActionSetPassword::ID; + +void suggestedActionSetPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "suggestedActionSetPassword"); + s.store_field("authorization_delay", authorization_delay_); + s.store_class_end(); + } +} + +supergroup::supergroup() + : id_() + , usernames_() + , date_() + , status_() + , member_count_() + , has_linked_chat_() + , has_location_() + , sign_messages_() + , join_to_send_messages_() + , join_by_request_() + , is_slow_mode_enabled_() + , is_channel_() + , is_broadcast_group_() + , is_forum_() + , is_verified_() + , restriction_reason_() + , is_scam_() + , is_fake_() +{} + +supergroup::supergroup(int53 id_, object_ptr<usernames> &&usernames_, int32 date_, object_ptr<ChatMemberStatus> &&status_, int32 member_count_, bool has_linked_chat_, bool has_location_, bool sign_messages_, bool join_to_send_messages_, bool join_by_request_, bool is_slow_mode_enabled_, bool is_channel_, bool is_broadcast_group_, bool is_forum_, bool is_verified_, string const &restriction_reason_, bool is_scam_, bool is_fake_) + : id_(id_) + , usernames_(std::move(usernames_)) + , date_(date_) + , status_(std::move(status_)) + , member_count_(member_count_) + , has_linked_chat_(has_linked_chat_) + , has_location_(has_location_) + , sign_messages_(sign_messages_) + , join_to_send_messages_(join_to_send_messages_) + , join_by_request_(join_by_request_) + , is_slow_mode_enabled_(is_slow_mode_enabled_) + , is_channel_(is_channel_) + , is_broadcast_group_(is_broadcast_group_) + , is_forum_(is_forum_) + , is_verified_(is_verified_) + , restriction_reason_(restriction_reason_) + , is_scam_(is_scam_) + , is_fake_(is_fake_) +{} + +const std::int32_t supergroup::ID; + +void supergroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroup"); + s.store_field("id", id_); + s.store_object_field("usernames", static_cast<const BaseObject *>(usernames_.get())); + s.store_field("date", date_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_field("member_count", member_count_); + s.store_field("has_linked_chat", has_linked_chat_); + s.store_field("has_location", has_location_); + s.store_field("sign_messages", sign_messages_); + s.store_field("join_to_send_messages", join_to_send_messages_); + s.store_field("join_by_request", join_by_request_); + s.store_field("is_slow_mode_enabled", is_slow_mode_enabled_); + s.store_field("is_channel", is_channel_); + s.store_field("is_broadcast_group", is_broadcast_group_); + s.store_field("is_forum", is_forum_); + s.store_field("is_verified", is_verified_); + s.store_field("restriction_reason", restriction_reason_); + s.store_field("is_scam", is_scam_); + s.store_field("is_fake", is_fake_); + s.store_class_end(); + } +} + +supergroupFullInfo::supergroupFullInfo() + : photo_() + , description_() + , member_count_() + , administrator_count_() + , restricted_count_() + , banned_count_() + , linked_chat_id_() + , slow_mode_delay_() + , slow_mode_delay_expires_in_() + , can_get_members_() + , can_set_username_() + , can_set_sticker_set_() + , can_set_location_() + , can_get_statistics_() + , is_all_history_available_() + , sticker_set_id_() + , location_() + , invite_link_() + , bot_commands_() + , upgraded_from_basic_group_id_() + , upgraded_from_max_message_id_() +{} + +supergroupFullInfo::supergroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int32 member_count_, int32 administrator_count_, int32 restricted_count_, int32 banned_count_, int53 linked_chat_id_, int32 slow_mode_delay_, double slow_mode_delay_expires_in_, bool can_get_members_, bool can_set_username_, bool can_set_sticker_set_, bool can_set_location_, bool can_get_statistics_, bool is_all_history_available_, int64 sticker_set_id_, object_ptr<chatLocation> &&location_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_, int53 upgraded_from_basic_group_id_, int53 upgraded_from_max_message_id_) + : photo_(std::move(photo_)) + , description_(description_) + , member_count_(member_count_) + , administrator_count_(administrator_count_) + , restricted_count_(restricted_count_) + , banned_count_(banned_count_) + , linked_chat_id_(linked_chat_id_) + , slow_mode_delay_(slow_mode_delay_) + , slow_mode_delay_expires_in_(slow_mode_delay_expires_in_) + , can_get_members_(can_get_members_) + , can_set_username_(can_set_username_) + , can_set_sticker_set_(can_set_sticker_set_) + , can_set_location_(can_set_location_) + , can_get_statistics_(can_get_statistics_) + , is_all_history_available_(is_all_history_available_) + , sticker_set_id_(sticker_set_id_) + , location_(std::move(location_)) + , invite_link_(std::move(invite_link_)) + , bot_commands_(std::move(bot_commands_)) + , upgraded_from_basic_group_id_(upgraded_from_basic_group_id_) + , upgraded_from_max_message_id_(upgraded_from_max_message_id_) +{} + +const std::int32_t supergroupFullInfo::ID; + +void supergroupFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupFullInfo"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("description", description_); + s.store_field("member_count", member_count_); + s.store_field("administrator_count", administrator_count_); + s.store_field("restricted_count", restricted_count_); + s.store_field("banned_count", banned_count_); + s.store_field("linked_chat_id", linked_chat_id_); + s.store_field("slow_mode_delay", slow_mode_delay_); + s.store_field("slow_mode_delay_expires_in", slow_mode_delay_expires_in_); + s.store_field("can_get_members", can_get_members_); + s.store_field("can_set_username", can_set_username_); + s.store_field("can_set_sticker_set", can_set_sticker_set_); + s.store_field("can_set_location", can_set_location_); + s.store_field("can_get_statistics", can_get_statistics_); + s.store_field("is_all_history_available", is_all_history_available_); + s.store_field("sticker_set_id", sticker_set_id_); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + { s.store_vector_begin("bot_commands", bot_commands_.size()); for (const auto &_value : bot_commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("upgraded_from_basic_group_id", upgraded_from_basic_group_id_); + s.store_field("upgraded_from_max_message_id", upgraded_from_max_message_id_); + s.store_class_end(); + } +} + +supergroupMembersFilterRecent::supergroupMembersFilterRecent() { +} + +const std::int32_t supergroupMembersFilterRecent::ID; + +void supergroupMembersFilterRecent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterRecent"); + s.store_class_end(); + } +} + +supergroupMembersFilterContacts::supergroupMembersFilterContacts() + : query_() +{} + +supergroupMembersFilterContacts::supergroupMembersFilterContacts(string const &query_) + : query_(query_) +{} + +const std::int32_t supergroupMembersFilterContacts::ID; + +void supergroupMembersFilterContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterContacts"); + s.store_field("query", query_); + s.store_class_end(); + } +} + +supergroupMembersFilterAdministrators::supergroupMembersFilterAdministrators() { +} + +const std::int32_t supergroupMembersFilterAdministrators::ID; + +void supergroupMembersFilterAdministrators::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterAdministrators"); + s.store_class_end(); + } +} + +supergroupMembersFilterSearch::supergroupMembersFilterSearch() + : query_() +{} + +supergroupMembersFilterSearch::supergroupMembersFilterSearch(string const &query_) + : query_(query_) +{} + +const std::int32_t supergroupMembersFilterSearch::ID; + +void supergroupMembersFilterSearch::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterSearch"); + s.store_field("query", query_); + s.store_class_end(); + } +} + +supergroupMembersFilterRestricted::supergroupMembersFilterRestricted() + : query_() +{} + +supergroupMembersFilterRestricted::supergroupMembersFilterRestricted(string const &query_) + : query_(query_) +{} + +const std::int32_t supergroupMembersFilterRestricted::ID; + +void supergroupMembersFilterRestricted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterRestricted"); + s.store_field("query", query_); + s.store_class_end(); + } +} + +supergroupMembersFilterBanned::supergroupMembersFilterBanned() + : query_() +{} + +supergroupMembersFilterBanned::supergroupMembersFilterBanned(string const &query_) + : query_(query_) +{} + +const std::int32_t supergroupMembersFilterBanned::ID; + +void supergroupMembersFilterBanned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterBanned"); + s.store_field("query", query_); + s.store_class_end(); + } +} + +supergroupMembersFilterMention::supergroupMembersFilterMention() + : query_() + , message_thread_id_() +{} + +supergroupMembersFilterMention::supergroupMembersFilterMention(string const &query_, int53 message_thread_id_) + : query_(query_) + , message_thread_id_(message_thread_id_) +{} + +const std::int32_t supergroupMembersFilterMention::ID; + +void supergroupMembersFilterMention::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterMention"); + s.store_field("query", query_); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +supergroupMembersFilterBots::supergroupMembersFilterBots() { +} + +const std::int32_t supergroupMembersFilterBots::ID; + +void supergroupMembersFilterBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "supergroupMembersFilterBots"); + s.store_class_end(); + } +} + +tMeUrl::tMeUrl() + : url_() + , type_() +{} + +tMeUrl::tMeUrl(string const &url_, object_ptr<TMeUrlType> &&type_) + : url_(url_) + , type_(std::move(type_)) +{} + +const std::int32_t tMeUrl::ID; + +void tMeUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "tMeUrl"); + s.store_field("url", url_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +tMeUrlTypeUser::tMeUrlTypeUser() + : user_id_() +{} + +tMeUrlTypeUser::tMeUrlTypeUser(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t tMeUrlTypeUser::ID; + +void tMeUrlTypeUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "tMeUrlTypeUser"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +tMeUrlTypeSupergroup::tMeUrlTypeSupergroup() + : supergroup_id_() +{} + +tMeUrlTypeSupergroup::tMeUrlTypeSupergroup(int53 supergroup_id_) + : supergroup_id_(supergroup_id_) +{} + +const std::int32_t tMeUrlTypeSupergroup::ID; + +void tMeUrlTypeSupergroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "tMeUrlTypeSupergroup"); + s.store_field("supergroup_id", supergroup_id_); + s.store_class_end(); + } +} + +tMeUrlTypeChatInvite::tMeUrlTypeChatInvite() + : info_() +{} + +tMeUrlTypeChatInvite::tMeUrlTypeChatInvite(object_ptr<chatInviteLinkInfo> &&info_) + : info_(std::move(info_)) +{} + +const std::int32_t tMeUrlTypeChatInvite::ID; + +void tMeUrlTypeChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "tMeUrlTypeChatInvite"); + s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); + s.store_class_end(); + } +} + +tMeUrlTypeStickerSet::tMeUrlTypeStickerSet() + : sticker_set_id_() +{} + +tMeUrlTypeStickerSet::tMeUrlTypeStickerSet(int64 sticker_set_id_) + : sticker_set_id_(sticker_set_id_) +{} + +const std::int32_t tMeUrlTypeStickerSet::ID; + +void tMeUrlTypeStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "tMeUrlTypeStickerSet"); + s.store_field("sticker_set_id", sticker_set_id_); + s.store_class_end(); + } +} + +tMeUrls::tMeUrls() + : urls_() +{} + +tMeUrls::tMeUrls(array<object_ptr<tMeUrl>> &&urls_) + : urls_(std::move(urls_)) +{} + +const std::int32_t tMeUrls::ID; + +void tMeUrls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "tMeUrls"); + { s.store_vector_begin("urls", urls_.size()); for (const auto &_value : urls_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +targetChatCurrent::targetChatCurrent() { +} + +const std::int32_t targetChatCurrent::ID; + +void targetChatCurrent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "targetChatCurrent"); + s.store_class_end(); + } +} + +targetChatChosen::targetChatChosen() + : allow_user_chats_() + , allow_bot_chats_() + , allow_group_chats_() + , allow_channel_chats_() +{} + +targetChatChosen::targetChatChosen(bool allow_user_chats_, bool allow_bot_chats_, bool allow_group_chats_, bool allow_channel_chats_) + : allow_user_chats_(allow_user_chats_) + , allow_bot_chats_(allow_bot_chats_) + , allow_group_chats_(allow_group_chats_) + , allow_channel_chats_(allow_channel_chats_) +{} + +const std::int32_t targetChatChosen::ID; + +void targetChatChosen::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "targetChatChosen"); + s.store_field("allow_user_chats", allow_user_chats_); + s.store_field("allow_bot_chats", allow_bot_chats_); + s.store_field("allow_group_chats", allow_group_chats_); + s.store_field("allow_channel_chats", allow_channel_chats_); + s.store_class_end(); + } +} + +targetChatInternalLink::targetChatInternalLink() + : link_() +{} + +targetChatInternalLink::targetChatInternalLink(object_ptr<InternalLinkType> &&link_) + : link_(std::move(link_)) +{} + +const std::int32_t targetChatInternalLink::ID; + +void targetChatInternalLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "targetChatInternalLink"); + s.store_object_field("link", static_cast<const BaseObject *>(link_.get())); + s.store_class_end(); + } +} + +temporaryPasswordState::temporaryPasswordState() + : has_password_() + , valid_for_() +{} + +temporaryPasswordState::temporaryPasswordState(bool has_password_, int32 valid_for_) + : has_password_(has_password_) + , valid_for_(valid_for_) +{} + +const std::int32_t temporaryPasswordState::ID; + +void temporaryPasswordState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "temporaryPasswordState"); + s.store_field("has_password", has_password_); + s.store_field("valid_for", valid_for_); + s.store_class_end(); + } +} + +termsOfService::termsOfService() + : text_() + , min_user_age_() + , show_popup_() +{} + +termsOfService::termsOfService(object_ptr<formattedText> &&text_, int32 min_user_age_, bool show_popup_) + : text_(std::move(text_)) + , min_user_age_(min_user_age_) + , show_popup_(show_popup_) +{} + +const std::int32_t termsOfService::ID; + +void termsOfService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "termsOfService"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("min_user_age", min_user_age_); + s.store_field("show_popup", show_popup_); + s.store_class_end(); + } +} + +testBytes::testBytes() + : value_() +{} + +testBytes::testBytes(bytes const &value_) + : value_(std::move(value_)) +{} + +const std::int32_t testBytes::ID; + +void testBytes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testBytes"); + s.store_bytes_field("value", value_); + s.store_class_end(); + } +} + +testInt::testInt() + : value_() +{} + +testInt::testInt(int32 value_) + : value_(value_) +{} + +const std::int32_t testInt::ID; + +void testInt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testInt"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +testString::testString() + : value_() +{} + +testString::testString(string const &value_) + : value_(value_) +{} + +const std::int32_t testString::ID; + +void testString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testString"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +testVectorInt::testVectorInt() + : value_() +{} + +testVectorInt::testVectorInt(array<int32> &&value_) + : value_(std::move(value_)) +{} + +const std::int32_t testVectorInt::ID; + +void testVectorInt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testVectorInt"); + { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +testVectorIntObject::testVectorIntObject() + : value_() +{} + +testVectorIntObject::testVectorIntObject(array<object_ptr<testInt>> &&value_) + : value_(std::move(value_)) +{} + +const std::int32_t testVectorIntObject::ID; + +void testVectorIntObject::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testVectorIntObject"); + { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +testVectorString::testVectorString() + : value_() +{} + +testVectorString::testVectorString(array<string> &&value_) + : value_(std::move(value_)) +{} + +const std::int32_t testVectorString::ID; + +void testVectorString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testVectorString"); + { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +testVectorStringObject::testVectorStringObject() + : value_() +{} + +testVectorStringObject::testVectorStringObject(array<object_ptr<testString>> &&value_) + : value_(std::move(value_)) +{} + +const std::int32_t testVectorStringObject::ID; + +void testVectorStringObject::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testVectorStringObject"); + { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +text::text() + : text_() +{} + +text::text(string const &text_) + : text_(text_) +{} + +const std::int32_t text::ID; + +void text::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "text"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +textEntities::textEntities() + : entities_() +{} + +textEntities::textEntities(array<object_ptr<textEntity>> &&entities_) + : entities_(std::move(entities_)) +{} + +const std::int32_t textEntities::ID; + +void textEntities::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntities"); + { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +textEntity::textEntity() + : offset_() + , length_() + , type_() +{} + +textEntity::textEntity(int32 offset_, int32 length_, object_ptr<TextEntityType> &&type_) + : offset_(offset_) + , length_(length_) + , type_(std::move(type_)) +{} + +const std::int32_t textEntity::ID; + +void textEntity::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntity"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +textEntityTypeMention::textEntityTypeMention() { +} + +const std::int32_t textEntityTypeMention::ID; + +void textEntityTypeMention::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeMention"); + s.store_class_end(); + } +} + +textEntityTypeHashtag::textEntityTypeHashtag() { +} + +const std::int32_t textEntityTypeHashtag::ID; + +void textEntityTypeHashtag::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeHashtag"); + s.store_class_end(); + } +} + +textEntityTypeCashtag::textEntityTypeCashtag() { +} + +const std::int32_t textEntityTypeCashtag::ID; + +void textEntityTypeCashtag::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeCashtag"); + s.store_class_end(); + } +} + +textEntityTypeBotCommand::textEntityTypeBotCommand() { +} + +const std::int32_t textEntityTypeBotCommand::ID; + +void textEntityTypeBotCommand::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeBotCommand"); + s.store_class_end(); + } +} + +textEntityTypeUrl::textEntityTypeUrl() { +} + +const std::int32_t textEntityTypeUrl::ID; + +void textEntityTypeUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeUrl"); + s.store_class_end(); + } +} + +textEntityTypeEmailAddress::textEntityTypeEmailAddress() { +} + +const std::int32_t textEntityTypeEmailAddress::ID; + +void textEntityTypeEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeEmailAddress"); + s.store_class_end(); + } +} + +textEntityTypePhoneNumber::textEntityTypePhoneNumber() { +} + +const std::int32_t textEntityTypePhoneNumber::ID; + +void textEntityTypePhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypePhoneNumber"); + s.store_class_end(); + } +} + +textEntityTypeBankCardNumber::textEntityTypeBankCardNumber() { +} + +const std::int32_t textEntityTypeBankCardNumber::ID; + +void textEntityTypeBankCardNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeBankCardNumber"); + s.store_class_end(); + } +} + +textEntityTypeBold::textEntityTypeBold() { +} + +const std::int32_t textEntityTypeBold::ID; + +void textEntityTypeBold::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeBold"); + s.store_class_end(); + } +} + +textEntityTypeItalic::textEntityTypeItalic() { +} + +const std::int32_t textEntityTypeItalic::ID; + +void textEntityTypeItalic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeItalic"); + s.store_class_end(); + } +} + +textEntityTypeUnderline::textEntityTypeUnderline() { +} + +const std::int32_t textEntityTypeUnderline::ID; + +void textEntityTypeUnderline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeUnderline"); + s.store_class_end(); + } +} + +textEntityTypeStrikethrough::textEntityTypeStrikethrough() { +} + +const std::int32_t textEntityTypeStrikethrough::ID; + +void textEntityTypeStrikethrough::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeStrikethrough"); + s.store_class_end(); + } +} + +textEntityTypeSpoiler::textEntityTypeSpoiler() { +} + +const std::int32_t textEntityTypeSpoiler::ID; + +void textEntityTypeSpoiler::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeSpoiler"); + s.store_class_end(); + } +} + +textEntityTypeCode::textEntityTypeCode() { +} + +const std::int32_t textEntityTypeCode::ID; + +void textEntityTypeCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeCode"); + s.store_class_end(); + } +} + +textEntityTypePre::textEntityTypePre() { +} + +const std::int32_t textEntityTypePre::ID; + +void textEntityTypePre::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypePre"); + s.store_class_end(); + } +} + +textEntityTypePreCode::textEntityTypePreCode() + : language_() +{} + +textEntityTypePreCode::textEntityTypePreCode(string const &language_) + : language_(language_) +{} + +const std::int32_t textEntityTypePreCode::ID; + +void textEntityTypePreCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypePreCode"); + s.store_field("language", language_); + s.store_class_end(); + } +} + +textEntityTypeTextUrl::textEntityTypeTextUrl() + : url_() +{} + +textEntityTypeTextUrl::textEntityTypeTextUrl(string const &url_) + : url_(url_) +{} + +const std::int32_t textEntityTypeTextUrl::ID; + +void textEntityTypeTextUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeTextUrl"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +textEntityTypeMentionName::textEntityTypeMentionName() + : user_id_() +{} + +textEntityTypeMentionName::textEntityTypeMentionName(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t textEntityTypeMentionName::ID; + +void textEntityTypeMentionName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeMentionName"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +textEntityTypeCustomEmoji::textEntityTypeCustomEmoji() + : custom_emoji_id_() +{} + +textEntityTypeCustomEmoji::textEntityTypeCustomEmoji(int64 custom_emoji_id_) + : custom_emoji_id_(custom_emoji_id_) +{} + +const std::int32_t textEntityTypeCustomEmoji::ID; + +void textEntityTypeCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeCustomEmoji"); + s.store_field("custom_emoji_id", custom_emoji_id_); + s.store_class_end(); + } +} + +textEntityTypeMediaTimestamp::textEntityTypeMediaTimestamp() + : media_timestamp_() +{} + +textEntityTypeMediaTimestamp::textEntityTypeMediaTimestamp(int32 media_timestamp_) + : media_timestamp_(media_timestamp_) +{} + +const std::int32_t textEntityTypeMediaTimestamp::ID; + +void textEntityTypeMediaTimestamp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEntityTypeMediaTimestamp"); + s.store_field("media_timestamp", media_timestamp_); + s.store_class_end(); + } +} + +textParseModeMarkdown::textParseModeMarkdown() + : version_() +{} + +textParseModeMarkdown::textParseModeMarkdown(int32 version_) + : version_(version_) +{} + +const std::int32_t textParseModeMarkdown::ID; + +void textParseModeMarkdown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textParseModeMarkdown"); + s.store_field("version", version_); + s.store_class_end(); + } +} + +textParseModeHTML::textParseModeHTML() { +} + +const std::int32_t textParseModeHTML::ID; + +void textParseModeHTML::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textParseModeHTML"); + s.store_class_end(); + } +} + +themeParameters::themeParameters() + : background_color_() + , secondary_background_color_() + , text_color_() + , hint_color_() + , link_color_() + , button_color_() + , button_text_color_() +{} + +themeParameters::themeParameters(int32 background_color_, int32 secondary_background_color_, int32 text_color_, int32 hint_color_, int32 link_color_, int32 button_color_, int32 button_text_color_) + : background_color_(background_color_) + , secondary_background_color_(secondary_background_color_) + , text_color_(text_color_) + , hint_color_(hint_color_) + , link_color_(link_color_) + , button_color_(button_color_) + , button_text_color_(button_text_color_) +{} + +const std::int32_t themeParameters::ID; + +void themeParameters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "themeParameters"); + s.store_field("background_color", background_color_); + s.store_field("secondary_background_color", secondary_background_color_); + s.store_field("text_color", text_color_); + s.store_field("hint_color", hint_color_); + s.store_field("link_color", link_color_); + s.store_field("button_color", button_color_); + s.store_field("button_text_color", button_text_color_); + s.store_class_end(); + } +} + +themeSettings::themeSettings() + : accent_color_() + , background_() + , outgoing_message_fill_() + , animate_outgoing_message_fill_() + , outgoing_message_accent_color_() +{} + +themeSettings::themeSettings(int32 accent_color_, object_ptr<background> &&background_, object_ptr<BackgroundFill> &&outgoing_message_fill_, bool animate_outgoing_message_fill_, int32 outgoing_message_accent_color_) + : accent_color_(accent_color_) + , background_(std::move(background_)) + , outgoing_message_fill_(std::move(outgoing_message_fill_)) + , animate_outgoing_message_fill_(animate_outgoing_message_fill_) + , outgoing_message_accent_color_(outgoing_message_accent_color_) +{} + +const std::int32_t themeSettings::ID; + +void themeSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "themeSettings"); + s.store_field("accent_color", accent_color_); + s.store_object_field("background", static_cast<const BaseObject *>(background_.get())); + s.store_object_field("outgoing_message_fill", static_cast<const BaseObject *>(outgoing_message_fill_.get())); + s.store_field("animate_outgoing_message_fill", animate_outgoing_message_fill_); + s.store_field("outgoing_message_accent_color", outgoing_message_accent_color_); + s.store_class_end(); + } +} + +thumbnail::thumbnail() + : format_() + , width_() + , height_() + , file_() +{} + +thumbnail::thumbnail(object_ptr<ThumbnailFormat> &&format_, int32 width_, int32 height_, object_ptr<file> &&file_) + : format_(std::move(format_)) + , width_(width_) + , height_(height_) + , file_(std::move(file_)) +{} + +const std::int32_t thumbnail::ID; + +void thumbnail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnail"); + s.store_object_field("format", static_cast<const BaseObject *>(format_.get())); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_class_end(); + } +} + +thumbnailFormatJpeg::thumbnailFormatJpeg() { +} + +const std::int32_t thumbnailFormatJpeg::ID; + +void thumbnailFormatJpeg::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnailFormatJpeg"); + s.store_class_end(); + } +} + +thumbnailFormatGif::thumbnailFormatGif() { +} + +const std::int32_t thumbnailFormatGif::ID; + +void thumbnailFormatGif::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnailFormatGif"); + s.store_class_end(); + } +} + +thumbnailFormatMpeg4::thumbnailFormatMpeg4() { +} + +const std::int32_t thumbnailFormatMpeg4::ID; + +void thumbnailFormatMpeg4::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnailFormatMpeg4"); + s.store_class_end(); + } +} + +thumbnailFormatPng::thumbnailFormatPng() { +} + +const std::int32_t thumbnailFormatPng::ID; + +void thumbnailFormatPng::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnailFormatPng"); + s.store_class_end(); + } +} + +thumbnailFormatTgs::thumbnailFormatTgs() { +} + +const std::int32_t thumbnailFormatTgs::ID; + +void thumbnailFormatTgs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnailFormatTgs"); + s.store_class_end(); + } +} + +thumbnailFormatWebm::thumbnailFormatWebm() { +} + +const std::int32_t thumbnailFormatWebm::ID; + +void thumbnailFormatWebm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnailFormatWebm"); + s.store_class_end(); + } +} + +thumbnailFormatWebp::thumbnailFormatWebp() { +} + +const std::int32_t thumbnailFormatWebp::ID; + +void thumbnailFormatWebp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "thumbnailFormatWebp"); + s.store_class_end(); + } +} + +topChatCategoryUsers::topChatCategoryUsers() { +} + +const std::int32_t topChatCategoryUsers::ID; + +void topChatCategoryUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topChatCategoryUsers"); + s.store_class_end(); + } +} + +topChatCategoryBots::topChatCategoryBots() { +} + +const std::int32_t topChatCategoryBots::ID; + +void topChatCategoryBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topChatCategoryBots"); + s.store_class_end(); + } +} + +topChatCategoryGroups::topChatCategoryGroups() { +} + +const std::int32_t topChatCategoryGroups::ID; + +void topChatCategoryGroups::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topChatCategoryGroups"); + s.store_class_end(); + } +} + +topChatCategoryChannels::topChatCategoryChannels() { +} + +const std::int32_t topChatCategoryChannels::ID; + +void topChatCategoryChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topChatCategoryChannels"); + s.store_class_end(); + } +} + +topChatCategoryInlineBots::topChatCategoryInlineBots() { +} + +const std::int32_t topChatCategoryInlineBots::ID; + +void topChatCategoryInlineBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topChatCategoryInlineBots"); + s.store_class_end(); + } +} + +topChatCategoryCalls::topChatCategoryCalls() { +} + +const std::int32_t topChatCategoryCalls::ID; + +void topChatCategoryCalls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topChatCategoryCalls"); + s.store_class_end(); + } +} + +topChatCategoryForwardChats::topChatCategoryForwardChats() { +} + +const std::int32_t topChatCategoryForwardChats::ID; + +void topChatCategoryForwardChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topChatCategoryForwardChats"); + s.store_class_end(); + } +} + +trendingStickerSets::trendingStickerSets() + : total_count_() + , sets_() + , is_premium_() +{} + +trendingStickerSets::trendingStickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_, bool is_premium_) + : total_count_(total_count_) + , sets_(std::move(sets_)) + , is_premium_(is_premium_) +{} + +const std::int32_t trendingStickerSets::ID; + +void trendingStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "trendingStickerSets"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("is_premium", is_premium_); + s.store_class_end(); + } +} + +unreadReaction::unreadReaction() + : type_() + , sender_id_() + , is_big_() +{} + +unreadReaction::unreadReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_, bool is_big_) + : type_(std::move(type_)) + , sender_id_(std::move(sender_id_)) + , is_big_(is_big_) +{} + +const std::int32_t unreadReaction::ID; + +void unreadReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "unreadReaction"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_field("is_big", is_big_); + s.store_class_end(); + } +} + +updateAuthorizationState::updateAuthorizationState() + : authorization_state_() +{} + +updateAuthorizationState::updateAuthorizationState(object_ptr<AuthorizationState> &&authorization_state_) + : authorization_state_(std::move(authorization_state_)) +{} + +const std::int32_t updateAuthorizationState::ID; + +void updateAuthorizationState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateAuthorizationState"); + s.store_object_field("authorization_state", static_cast<const BaseObject *>(authorization_state_.get())); + s.store_class_end(); + } +} + +updateNewMessage::updateNewMessage() + : message_() +{} + +updateNewMessage::updateNewMessage(object_ptr<message> &&message_) + : message_(std::move(message_)) +{} + +const std::int32_t updateNewMessage::ID; + +void updateNewMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +updateMessageSendAcknowledged::updateMessageSendAcknowledged() + : chat_id_() + , message_id_() +{} + +updateMessageSendAcknowledged::updateMessageSendAcknowledged(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t updateMessageSendAcknowledged::ID; + +void updateMessageSendAcknowledged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageSendAcknowledged"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +updateMessageSendSucceeded::updateMessageSendSucceeded() + : message_() + , old_message_id_() +{} + +updateMessageSendSucceeded::updateMessageSendSucceeded(object_ptr<message> &&message_, int53 old_message_id_) + : message_(std::move(message_)) + , old_message_id_(old_message_id_) +{} + +const std::int32_t updateMessageSendSucceeded::ID; + +void updateMessageSendSucceeded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageSendSucceeded"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("old_message_id", old_message_id_); + s.store_class_end(); + } +} + +updateMessageSendFailed::updateMessageSendFailed() + : message_() + , old_message_id_() + , error_code_() + , error_message_() +{} + +updateMessageSendFailed::updateMessageSendFailed(object_ptr<message> &&message_, int53 old_message_id_, int32 error_code_, string const &error_message_) + : message_(std::move(message_)) + , old_message_id_(old_message_id_) + , error_code_(error_code_) + , error_message_(error_message_) +{} + +const std::int32_t updateMessageSendFailed::ID; + +void updateMessageSendFailed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageSendFailed"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("old_message_id", old_message_id_); + s.store_field("error_code", error_code_); + s.store_field("error_message", error_message_); + s.store_class_end(); + } +} + +updateMessageContent::updateMessageContent() + : chat_id_() + , message_id_() + , new_content_() +{} + +updateMessageContent::updateMessageContent(int53 chat_id_, int53 message_id_, object_ptr<MessageContent> &&new_content_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , new_content_(std::move(new_content_)) +{} + +const std::int32_t updateMessageContent::ID; + +void updateMessageContent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageContent"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("new_content", static_cast<const BaseObject *>(new_content_.get())); + s.store_class_end(); + } +} + +updateMessageEdited::updateMessageEdited() + : chat_id_() + , message_id_() + , edit_date_() + , reply_markup_() +{} + +updateMessageEdited::updateMessageEdited(int53 chat_id_, int53 message_id_, int32 edit_date_, object_ptr<ReplyMarkup> &&reply_markup_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , edit_date_(edit_date_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t updateMessageEdited::ID; + +void updateMessageEdited::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageEdited"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("edit_date", edit_date_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_class_end(); + } +} + +updateMessageIsPinned::updateMessageIsPinned() + : chat_id_() + , message_id_() + , is_pinned_() +{} + +updateMessageIsPinned::updateMessageIsPinned(int53 chat_id_, int53 message_id_, bool is_pinned_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t updateMessageIsPinned::ID; + +void updateMessageIsPinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageIsPinned"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +updateMessageInteractionInfo::updateMessageInteractionInfo() + : chat_id_() + , message_id_() + , interaction_info_() +{} + +updateMessageInteractionInfo::updateMessageInteractionInfo(int53 chat_id_, int53 message_id_, object_ptr<messageInteractionInfo> &&interaction_info_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , interaction_info_(std::move(interaction_info_)) +{} + +const std::int32_t updateMessageInteractionInfo::ID; + +void updateMessageInteractionInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageInteractionInfo"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("interaction_info", static_cast<const BaseObject *>(interaction_info_.get())); + s.store_class_end(); + } +} + +updateMessageContentOpened::updateMessageContentOpened() + : chat_id_() + , message_id_() +{} + +updateMessageContentOpened::updateMessageContentOpened(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t updateMessageContentOpened::ID; + +void updateMessageContentOpened::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageContentOpened"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +updateMessageMentionRead::updateMessageMentionRead() + : chat_id_() + , message_id_() + , unread_mention_count_() +{} + +updateMessageMentionRead::updateMessageMentionRead(int53 chat_id_, int53 message_id_, int32 unread_mention_count_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , unread_mention_count_(unread_mention_count_) +{} + +const std::int32_t updateMessageMentionRead::ID; + +void updateMessageMentionRead::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageMentionRead"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("unread_mention_count", unread_mention_count_); + s.store_class_end(); + } +} + +updateMessageUnreadReactions::updateMessageUnreadReactions() + : chat_id_() + , message_id_() + , unread_reactions_() + , unread_reaction_count_() +{} + +updateMessageUnreadReactions::updateMessageUnreadReactions(int53 chat_id_, int53 message_id_, array<object_ptr<unreadReaction>> &&unread_reactions_, int32 unread_reaction_count_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , unread_reactions_(std::move(unread_reactions_)) + , unread_reaction_count_(unread_reaction_count_) +{} + +const std::int32_t updateMessageUnreadReactions::ID; + +void updateMessageUnreadReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageUnreadReactions"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + { s.store_vector_begin("unread_reactions", unread_reactions_.size()); for (const auto &_value : unread_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("unread_reaction_count", unread_reaction_count_); + s.store_class_end(); + } +} + +updateMessageLiveLocationViewed::updateMessageLiveLocationViewed() + : chat_id_() + , message_id_() +{} + +updateMessageLiveLocationViewed::updateMessageLiveLocationViewed(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t updateMessageLiveLocationViewed::ID; + +void updateMessageLiveLocationViewed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageLiveLocationViewed"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +updateNewChat::updateNewChat() + : chat_() +{} + +updateNewChat::updateNewChat(object_ptr<chat> &&chat_) + : chat_(std::move(chat_)) +{} + +const std::int32_t updateNewChat::ID; + +void updateNewChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewChat"); + s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get())); + s.store_class_end(); + } +} + +updateChatTitle::updateChatTitle() + : chat_id_() + , title_() +{} + +updateChatTitle::updateChatTitle(int53 chat_id_, string const &title_) + : chat_id_(chat_id_) + , title_(title_) +{} + +const std::int32_t updateChatTitle::ID; + +void updateChatTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatTitle"); + s.store_field("chat_id", chat_id_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +updateChatPhoto::updateChatPhoto() + : chat_id_() + , photo_() +{} + +updateChatPhoto::updateChatPhoto(int53 chat_id_, object_ptr<chatPhotoInfo> &&photo_) + : chat_id_(chat_id_) + , photo_(std::move(photo_)) +{} + +const std::int32_t updateChatPhoto::ID; + +void updateChatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatPhoto"); + s.store_field("chat_id", chat_id_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +updateChatPermissions::updateChatPermissions() + : chat_id_() + , permissions_() +{} + +updateChatPermissions::updateChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_) + : chat_id_(chat_id_) + , permissions_(std::move(permissions_)) +{} + +const std::int32_t updateChatPermissions::ID; + +void updateChatPermissions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatPermissions"); + s.store_field("chat_id", chat_id_); + s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get())); + s.store_class_end(); + } +} + +updateChatLastMessage::updateChatLastMessage() + : chat_id_() + , last_message_() + , positions_() +{} + +updateChatLastMessage::updateChatLastMessage(int53 chat_id_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_) + : chat_id_(chat_id_) + , last_message_(std::move(last_message_)) + , positions_(std::move(positions_)) +{} + +const std::int32_t updateChatLastMessage::ID; + +void updateChatLastMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatLastMessage"); + s.store_field("chat_id", chat_id_); + s.store_object_field("last_message", static_cast<const BaseObject *>(last_message_.get())); + { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateChatPosition::updateChatPosition() + : chat_id_() + , position_() +{} + +updateChatPosition::updateChatPosition(int53 chat_id_, object_ptr<chatPosition> &&position_) + : chat_id_(chat_id_) + , position_(std::move(position_)) +{} + +const std::int32_t updateChatPosition::ID; + +void updateChatPosition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatPosition"); + s.store_field("chat_id", chat_id_); + s.store_object_field("position", static_cast<const BaseObject *>(position_.get())); + s.store_class_end(); + } +} + +updateChatReadInbox::updateChatReadInbox() + : chat_id_() + , last_read_inbox_message_id_() + , unread_count_() +{} + +updateChatReadInbox::updateChatReadInbox(int53 chat_id_, int53 last_read_inbox_message_id_, int32 unread_count_) + : chat_id_(chat_id_) + , last_read_inbox_message_id_(last_read_inbox_message_id_) + , unread_count_(unread_count_) +{} + +const std::int32_t updateChatReadInbox::ID; + +void updateChatReadInbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatReadInbox"); + s.store_field("chat_id", chat_id_); + s.store_field("last_read_inbox_message_id", last_read_inbox_message_id_); + s.store_field("unread_count", unread_count_); + s.store_class_end(); + } +} + +updateChatReadOutbox::updateChatReadOutbox() + : chat_id_() + , last_read_outbox_message_id_() +{} + +updateChatReadOutbox::updateChatReadOutbox(int53 chat_id_, int53 last_read_outbox_message_id_) + : chat_id_(chat_id_) + , last_read_outbox_message_id_(last_read_outbox_message_id_) +{} + +const std::int32_t updateChatReadOutbox::ID; + +void updateChatReadOutbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatReadOutbox"); + s.store_field("chat_id", chat_id_); + s.store_field("last_read_outbox_message_id", last_read_outbox_message_id_); + s.store_class_end(); + } +} + +updateChatActionBar::updateChatActionBar() + : chat_id_() + , action_bar_() +{} + +updateChatActionBar::updateChatActionBar(int53 chat_id_, object_ptr<ChatActionBar> &&action_bar_) + : chat_id_(chat_id_) + , action_bar_(std::move(action_bar_)) +{} + +const std::int32_t updateChatActionBar::ID; + +void updateChatActionBar::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatActionBar"); + s.store_field("chat_id", chat_id_); + s.store_object_field("action_bar", static_cast<const BaseObject *>(action_bar_.get())); + s.store_class_end(); + } +} + +updateChatAvailableReactions::updateChatAvailableReactions() + : chat_id_() + , available_reactions_() +{} + +updateChatAvailableReactions::updateChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_) + : chat_id_(chat_id_) + , available_reactions_(std::move(available_reactions_)) +{} + +const std::int32_t updateChatAvailableReactions::ID; + +void updateChatAvailableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatAvailableReactions"); + s.store_field("chat_id", chat_id_); + s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); + s.store_class_end(); + } +} + +updateChatDraftMessage::updateChatDraftMessage() + : chat_id_() + , draft_message_() + , positions_() +{} + +updateChatDraftMessage::updateChatDraftMessage(int53 chat_id_, object_ptr<draftMessage> &&draft_message_, array<object_ptr<chatPosition>> &&positions_) + : chat_id_(chat_id_) + , draft_message_(std::move(draft_message_)) + , positions_(std::move(positions_)) +{} + +const std::int32_t updateChatDraftMessage::ID; + +void updateChatDraftMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatDraftMessage"); + s.store_field("chat_id", chat_id_); + s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get())); + { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateChatMessageSender::updateChatMessageSender() + : chat_id_() + , message_sender_id_() +{} + +updateChatMessageSender::updateChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_) + : chat_id_(chat_id_) + , message_sender_id_(std::move(message_sender_id_)) +{} + +const std::int32_t updateChatMessageSender::ID; + +void updateChatMessageSender::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatMessageSender"); + s.store_field("chat_id", chat_id_); + s.store_object_field("message_sender_id", static_cast<const BaseObject *>(message_sender_id_.get())); + s.store_class_end(); + } +} + +updateChatMessageTtl::updateChatMessageTtl() + : chat_id_() + , message_ttl_() +{} + +updateChatMessageTtl::updateChatMessageTtl(int53 chat_id_, int32 message_ttl_) + : chat_id_(chat_id_) + , message_ttl_(message_ttl_) +{} + +const std::int32_t updateChatMessageTtl::ID; + +void updateChatMessageTtl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatMessageTtl"); + s.store_field("chat_id", chat_id_); + s.store_field("message_ttl", message_ttl_); + s.store_class_end(); + } +} + +updateChatNotificationSettings::updateChatNotificationSettings() + : chat_id_() + , notification_settings_() +{} + +updateChatNotificationSettings::updateChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &¬ification_settings_) + : chat_id_(chat_id_) + , notification_settings_(std::move(notification_settings_)) +{} + +const std::int32_t updateChatNotificationSettings::ID; + +void updateChatNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatNotificationSettings"); + s.store_field("chat_id", chat_id_); + s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get())); + s.store_class_end(); + } +} + +updateChatPendingJoinRequests::updateChatPendingJoinRequests() + : chat_id_() + , pending_join_requests_() +{} + +updateChatPendingJoinRequests::updateChatPendingJoinRequests(int53 chat_id_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_) + : chat_id_(chat_id_) + , pending_join_requests_(std::move(pending_join_requests_)) +{} + +const std::int32_t updateChatPendingJoinRequests::ID; + +void updateChatPendingJoinRequests::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatPendingJoinRequests"); + s.store_field("chat_id", chat_id_); + s.store_object_field("pending_join_requests", static_cast<const BaseObject *>(pending_join_requests_.get())); + s.store_class_end(); + } +} + +updateChatReplyMarkup::updateChatReplyMarkup() + : chat_id_() + , reply_markup_message_id_() +{} + +updateChatReplyMarkup::updateChatReplyMarkup(int53 chat_id_, int53 reply_markup_message_id_) + : chat_id_(chat_id_) + , reply_markup_message_id_(reply_markup_message_id_) +{} + +const std::int32_t updateChatReplyMarkup::ID; + +void updateChatReplyMarkup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatReplyMarkup"); + s.store_field("chat_id", chat_id_); + s.store_field("reply_markup_message_id", reply_markup_message_id_); + s.store_class_end(); + } +} + +updateChatTheme::updateChatTheme() + : chat_id_() + , theme_name_() +{} + +updateChatTheme::updateChatTheme(int53 chat_id_, string const &theme_name_) + : chat_id_(chat_id_) + , theme_name_(theme_name_) +{} + +const std::int32_t updateChatTheme::ID; + +void updateChatTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatTheme"); + s.store_field("chat_id", chat_id_); + s.store_field("theme_name", theme_name_); + s.store_class_end(); + } +} + +updateChatUnreadMentionCount::updateChatUnreadMentionCount() + : chat_id_() + , unread_mention_count_() +{} + +updateChatUnreadMentionCount::updateChatUnreadMentionCount(int53 chat_id_, int32 unread_mention_count_) + : chat_id_(chat_id_) + , unread_mention_count_(unread_mention_count_) +{} + +const std::int32_t updateChatUnreadMentionCount::ID; + +void updateChatUnreadMentionCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatUnreadMentionCount"); + s.store_field("chat_id", chat_id_); + s.store_field("unread_mention_count", unread_mention_count_); + s.store_class_end(); + } +} + +updateChatUnreadReactionCount::updateChatUnreadReactionCount() + : chat_id_() + , unread_reaction_count_() +{} + +updateChatUnreadReactionCount::updateChatUnreadReactionCount(int53 chat_id_, int32 unread_reaction_count_) + : chat_id_(chat_id_) + , unread_reaction_count_(unread_reaction_count_) +{} + +const std::int32_t updateChatUnreadReactionCount::ID; + +void updateChatUnreadReactionCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatUnreadReactionCount"); + s.store_field("chat_id", chat_id_); + s.store_field("unread_reaction_count", unread_reaction_count_); + s.store_class_end(); + } +} + +updateChatVideoChat::updateChatVideoChat() + : chat_id_() + , video_chat_() +{} + +updateChatVideoChat::updateChatVideoChat(int53 chat_id_, object_ptr<videoChat> &&video_chat_) + : chat_id_(chat_id_) + , video_chat_(std::move(video_chat_)) +{} + +const std::int32_t updateChatVideoChat::ID; + +void updateChatVideoChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatVideoChat"); + s.store_field("chat_id", chat_id_); + s.store_object_field("video_chat", static_cast<const BaseObject *>(video_chat_.get())); + s.store_class_end(); + } +} + +updateChatDefaultDisableNotification::updateChatDefaultDisableNotification() + : chat_id_() + , default_disable_notification_() +{} + +updateChatDefaultDisableNotification::updateChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_) + : chat_id_(chat_id_) + , default_disable_notification_(default_disable_notification_) +{} + +const std::int32_t updateChatDefaultDisableNotification::ID; + +void updateChatDefaultDisableNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatDefaultDisableNotification"); + s.store_field("chat_id", chat_id_); + s.store_field("default_disable_notification", default_disable_notification_); + s.store_class_end(); + } +} + +updateChatHasProtectedContent::updateChatHasProtectedContent() + : chat_id_() + , has_protected_content_() +{} + +updateChatHasProtectedContent::updateChatHasProtectedContent(int53 chat_id_, bool has_protected_content_) + : chat_id_(chat_id_) + , has_protected_content_(has_protected_content_) +{} + +const std::int32_t updateChatHasProtectedContent::ID; + +void updateChatHasProtectedContent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatHasProtectedContent"); + s.store_field("chat_id", chat_id_); + s.store_field("has_protected_content", has_protected_content_); + s.store_class_end(); + } +} + +updateChatHasScheduledMessages::updateChatHasScheduledMessages() + : chat_id_() + , has_scheduled_messages_() +{} + +updateChatHasScheduledMessages::updateChatHasScheduledMessages(int53 chat_id_, bool has_scheduled_messages_) + : chat_id_(chat_id_) + , has_scheduled_messages_(has_scheduled_messages_) +{} + +const std::int32_t updateChatHasScheduledMessages::ID; + +void updateChatHasScheduledMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatHasScheduledMessages"); + s.store_field("chat_id", chat_id_); + s.store_field("has_scheduled_messages", has_scheduled_messages_); + s.store_class_end(); + } +} + +updateChatIsBlocked::updateChatIsBlocked() + : chat_id_() + , is_blocked_() +{} + +updateChatIsBlocked::updateChatIsBlocked(int53 chat_id_, bool is_blocked_) + : chat_id_(chat_id_) + , is_blocked_(is_blocked_) +{} + +const std::int32_t updateChatIsBlocked::ID; + +void updateChatIsBlocked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatIsBlocked"); + s.store_field("chat_id", chat_id_); + s.store_field("is_blocked", is_blocked_); + s.store_class_end(); + } +} + +updateChatIsMarkedAsUnread::updateChatIsMarkedAsUnread() + : chat_id_() + , is_marked_as_unread_() +{} + +updateChatIsMarkedAsUnread::updateChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_) + : chat_id_(chat_id_) + , is_marked_as_unread_(is_marked_as_unread_) +{} + +const std::int32_t updateChatIsMarkedAsUnread::ID; + +void updateChatIsMarkedAsUnread::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatIsMarkedAsUnread"); + s.store_field("chat_id", chat_id_); + s.store_field("is_marked_as_unread", is_marked_as_unread_); + s.store_class_end(); + } +} + +updateChatFilters::updateChatFilters() + : chat_filters_() + , main_chat_list_position_() +{} + +updateChatFilters::updateChatFilters(array<object_ptr<chatFilterInfo>> &&chat_filters_, int32 main_chat_list_position_) + : chat_filters_(std::move(chat_filters_)) + , main_chat_list_position_(main_chat_list_position_) +{} + +const std::int32_t updateChatFilters::ID; + +void updateChatFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatFilters"); + { s.store_vector_begin("chat_filters", chat_filters_.size()); for (const auto &_value : chat_filters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("main_chat_list_position", main_chat_list_position_); + s.store_class_end(); + } +} + +updateChatOnlineMemberCount::updateChatOnlineMemberCount() + : chat_id_() + , online_member_count_() +{} + +updateChatOnlineMemberCount::updateChatOnlineMemberCount(int53 chat_id_, int32 online_member_count_) + : chat_id_(chat_id_) + , online_member_count_(online_member_count_) +{} + +const std::int32_t updateChatOnlineMemberCount::ID; + +void updateChatOnlineMemberCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatOnlineMemberCount"); + s.store_field("chat_id", chat_id_); + s.store_field("online_member_count", online_member_count_); + s.store_class_end(); + } +} + +updateForumTopicInfo::updateForumTopicInfo() + : chat_id_() + , info_() +{} + +updateForumTopicInfo::updateForumTopicInfo(int53 chat_id_, object_ptr<forumTopicInfo> &&info_) + : chat_id_(chat_id_) + , info_(std::move(info_)) +{} + +const std::int32_t updateForumTopicInfo::ID; + +void updateForumTopicInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateForumTopicInfo"); + s.store_field("chat_id", chat_id_); + s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); + s.store_class_end(); + } +} + +updateScopeNotificationSettings::updateScopeNotificationSettings() + : scope_() + , notification_settings_() +{} + +updateScopeNotificationSettings::updateScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &¬ification_settings_) + : scope_(std::move(scope_)) + , notification_settings_(std::move(notification_settings_)) +{} + +const std::int32_t updateScopeNotificationSettings::ID; + +void updateScopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateScopeNotificationSettings"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get())); + s.store_class_end(); + } +} + +updateNotification::updateNotification() + : notification_group_id_() + , notification_() +{} + +updateNotification::updateNotification(int32 notification_group_id_, object_ptr<notification> &¬ification_) + : notification_group_id_(notification_group_id_) + , notification_(std::move(notification_)) +{} + +const std::int32_t updateNotification::ID; + +void updateNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNotification"); + s.store_field("notification_group_id", notification_group_id_); + s.store_object_field("notification", static_cast<const BaseObject *>(notification_.get())); + s.store_class_end(); + } +} + +updateNotificationGroup::updateNotificationGroup() + : notification_group_id_() + , type_() + , chat_id_() + , notification_settings_chat_id_() + , notification_sound_id_() + , total_count_() + , added_notifications_() + , removed_notification_ids_() +{} + +updateNotificationGroup::updateNotificationGroup(int32 notification_group_id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int53 notification_settings_chat_id_, int64 notification_sound_id_, int32 total_count_, array<object_ptr<notification>> &&added_notifications_, array<int32> &&removed_notification_ids_) + : notification_group_id_(notification_group_id_) + , type_(std::move(type_)) + , chat_id_(chat_id_) + , notification_settings_chat_id_(notification_settings_chat_id_) + , notification_sound_id_(notification_sound_id_) + , total_count_(total_count_) + , added_notifications_(std::move(added_notifications_)) + , removed_notification_ids_(std::move(removed_notification_ids_)) +{} + +const std::int32_t updateNotificationGroup::ID; + +void updateNotificationGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNotificationGroup"); + s.store_field("notification_group_id", notification_group_id_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("chat_id", chat_id_); + s.store_field("notification_settings_chat_id", notification_settings_chat_id_); + s.store_field("notification_sound_id", notification_sound_id_); + s.store_field("total_count", total_count_); + { s.store_vector_begin("added_notifications", added_notifications_.size()); for (const auto &_value : added_notifications_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("removed_notification_ids", removed_notification_ids_.size()); for (const auto &_value : removed_notification_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateActiveNotifications::updateActiveNotifications() + : groups_() +{} + +updateActiveNotifications::updateActiveNotifications(array<object_ptr<notificationGroup>> &&groups_) + : groups_(std::move(groups_)) +{} + +const std::int32_t updateActiveNotifications::ID; + +void updateActiveNotifications::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateActiveNotifications"); + { s.store_vector_begin("groups", groups_.size()); for (const auto &_value : groups_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateHavePendingNotifications::updateHavePendingNotifications() + : have_delayed_notifications_() + , have_unreceived_notifications_() +{} + +updateHavePendingNotifications::updateHavePendingNotifications(bool have_delayed_notifications_, bool have_unreceived_notifications_) + : have_delayed_notifications_(have_delayed_notifications_) + , have_unreceived_notifications_(have_unreceived_notifications_) +{} + +const std::int32_t updateHavePendingNotifications::ID; + +void updateHavePendingNotifications::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateHavePendingNotifications"); + s.store_field("have_delayed_notifications", have_delayed_notifications_); + s.store_field("have_unreceived_notifications", have_unreceived_notifications_); + s.store_class_end(); + } +} + +updateDeleteMessages::updateDeleteMessages() + : chat_id_() + , message_ids_() + , is_permanent_() + , from_cache_() +{} + +updateDeleteMessages::updateDeleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool is_permanent_, bool from_cache_) + : chat_id_(chat_id_) + , message_ids_(std::move(message_ids_)) + , is_permanent_(is_permanent_) + , from_cache_(from_cache_) +{} + +const std::int32_t updateDeleteMessages::ID; + +void updateDeleteMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDeleteMessages"); + s.store_field("chat_id", chat_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("is_permanent", is_permanent_); + s.store_field("from_cache", from_cache_); + s.store_class_end(); + } +} + +updateChatAction::updateChatAction() + : chat_id_() + , message_thread_id_() + , sender_id_() + , action_() +{} + +updateChatAction::updateChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<MessageSender> &&sender_id_, object_ptr<ChatAction> &&action_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , sender_id_(std::move(sender_id_)) + , action_(std::move(action_)) +{} + +const std::int32_t updateChatAction::ID; + +void updateChatAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatAction"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +updateUserStatus::updateUserStatus() + : user_id_() + , status_() +{} + +updateUserStatus::updateUserStatus(int53 user_id_, object_ptr<UserStatus> &&status_) + : user_id_(user_id_) + , status_(std::move(status_)) +{} + +const std::int32_t updateUserStatus::ID; + +void updateUserStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserStatus"); + s.store_field("user_id", user_id_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_class_end(); + } +} + +updateUser::updateUser() + : user_() +{} + +updateUser::updateUser(object_ptr<user> &&user_) + : user_(std::move(user_)) +{} + +const std::int32_t updateUser::ID; + +void updateUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUser"); + s.store_object_field("user", static_cast<const BaseObject *>(user_.get())); + s.store_class_end(); + } +} + +updateBasicGroup::updateBasicGroup() + : basic_group_() +{} + +updateBasicGroup::updateBasicGroup(object_ptr<basicGroup> &&basic_group_) + : basic_group_(std::move(basic_group_)) +{} + +const std::int32_t updateBasicGroup::ID; + +void updateBasicGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBasicGroup"); + s.store_object_field("basic_group", static_cast<const BaseObject *>(basic_group_.get())); + s.store_class_end(); + } +} + +updateSupergroup::updateSupergroup() + : supergroup_() +{} + +updateSupergroup::updateSupergroup(object_ptr<supergroup> &&supergroup_) + : supergroup_(std::move(supergroup_)) +{} + +const std::int32_t updateSupergroup::ID; + +void updateSupergroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSupergroup"); + s.store_object_field("supergroup", static_cast<const BaseObject *>(supergroup_.get())); + s.store_class_end(); + } +} + +updateSecretChat::updateSecretChat() + : secret_chat_() +{} + +updateSecretChat::updateSecretChat(object_ptr<secretChat> &&secret_chat_) + : secret_chat_(std::move(secret_chat_)) +{} + +const std::int32_t updateSecretChat::ID; + +void updateSecretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSecretChat"); + s.store_object_field("secret_chat", static_cast<const BaseObject *>(secret_chat_.get())); + s.store_class_end(); + } +} + +updateUserFullInfo::updateUserFullInfo() + : user_id_() + , user_full_info_() +{} + +updateUserFullInfo::updateUserFullInfo(int53 user_id_, object_ptr<userFullInfo> &&user_full_info_) + : user_id_(user_id_) + , user_full_info_(std::move(user_full_info_)) +{} + +const std::int32_t updateUserFullInfo::ID; + +void updateUserFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserFullInfo"); + s.store_field("user_id", user_id_); + s.store_object_field("user_full_info", static_cast<const BaseObject *>(user_full_info_.get())); + s.store_class_end(); + } +} + +updateBasicGroupFullInfo::updateBasicGroupFullInfo() + : basic_group_id_() + , basic_group_full_info_() +{} + +updateBasicGroupFullInfo::updateBasicGroupFullInfo(int53 basic_group_id_, object_ptr<basicGroupFullInfo> &&basic_group_full_info_) + : basic_group_id_(basic_group_id_) + , basic_group_full_info_(std::move(basic_group_full_info_)) +{} + +const std::int32_t updateBasicGroupFullInfo::ID; + +void updateBasicGroupFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBasicGroupFullInfo"); + s.store_field("basic_group_id", basic_group_id_); + s.store_object_field("basic_group_full_info", static_cast<const BaseObject *>(basic_group_full_info_.get())); + s.store_class_end(); + } +} + +updateSupergroupFullInfo::updateSupergroupFullInfo() + : supergroup_id_() + , supergroup_full_info_() +{} + +updateSupergroupFullInfo::updateSupergroupFullInfo(int53 supergroup_id_, object_ptr<supergroupFullInfo> &&supergroup_full_info_) + : supergroup_id_(supergroup_id_) + , supergroup_full_info_(std::move(supergroup_full_info_)) +{} + +const std::int32_t updateSupergroupFullInfo::ID; + +void updateSupergroupFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSupergroupFullInfo"); + s.store_field("supergroup_id", supergroup_id_); + s.store_object_field("supergroup_full_info", static_cast<const BaseObject *>(supergroup_full_info_.get())); + s.store_class_end(); + } +} + +updateServiceNotification::updateServiceNotification() + : type_() + , content_() +{} + +updateServiceNotification::updateServiceNotification(string const &type_, object_ptr<MessageContent> &&content_) + : type_(type_) + , content_(std::move(content_)) +{} + +const std::int32_t updateServiceNotification::ID; + +void updateServiceNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateServiceNotification"); + s.store_field("type", type_); + s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); + s.store_class_end(); + } +} + +updateFile::updateFile() + : file_() +{} + +updateFile::updateFile(object_ptr<file> &&file_) + : file_(std::move(file_)) +{} + +const std::int32_t updateFile::ID; + +void updateFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFile"); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_class_end(); + } +} + +updateFileGenerationStart::updateFileGenerationStart() + : generation_id_() + , original_path_() + , destination_path_() + , conversion_() +{} + +updateFileGenerationStart::updateFileGenerationStart(int64 generation_id_, string const &original_path_, string const &destination_path_, string const &conversion_) + : generation_id_(generation_id_) + , original_path_(original_path_) + , destination_path_(destination_path_) + , conversion_(conversion_) +{} + +const std::int32_t updateFileGenerationStart::ID; + +void updateFileGenerationStart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFileGenerationStart"); + s.store_field("generation_id", generation_id_); + s.store_field("original_path", original_path_); + s.store_field("destination_path", destination_path_); + s.store_field("conversion", conversion_); + s.store_class_end(); + } +} + +updateFileGenerationStop::updateFileGenerationStop() + : generation_id_() +{} + +updateFileGenerationStop::updateFileGenerationStop(int64 generation_id_) + : generation_id_(generation_id_) +{} + +const std::int32_t updateFileGenerationStop::ID; + +void updateFileGenerationStop::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFileGenerationStop"); + s.store_field("generation_id", generation_id_); + s.store_class_end(); + } +} + +updateFileDownloads::updateFileDownloads() + : total_size_() + , total_count_() + , downloaded_size_() +{} + +updateFileDownloads::updateFileDownloads(int53 total_size_, int32 total_count_, int53 downloaded_size_) + : total_size_(total_size_) + , total_count_(total_count_) + , downloaded_size_(downloaded_size_) +{} + +const std::int32_t updateFileDownloads::ID; + +void updateFileDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFileDownloads"); + s.store_field("total_size", total_size_); + s.store_field("total_count", total_count_); + s.store_field("downloaded_size", downloaded_size_); + s.store_class_end(); + } +} + +updateFileAddedToDownloads::updateFileAddedToDownloads() + : file_download_() + , counts_() +{} + +updateFileAddedToDownloads::updateFileAddedToDownloads(object_ptr<fileDownload> &&file_download_, object_ptr<downloadedFileCounts> &&counts_) + : file_download_(std::move(file_download_)) + , counts_(std::move(counts_)) +{} + +const std::int32_t updateFileAddedToDownloads::ID; + +void updateFileAddedToDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFileAddedToDownloads"); + s.store_object_field("file_download", static_cast<const BaseObject *>(file_download_.get())); + s.store_object_field("counts", static_cast<const BaseObject *>(counts_.get())); + s.store_class_end(); + } +} + +updateFileDownload::updateFileDownload() + : file_id_() + , complete_date_() + , is_paused_() + , counts_() +{} + +updateFileDownload::updateFileDownload(int32 file_id_, int32 complete_date_, bool is_paused_, object_ptr<downloadedFileCounts> &&counts_) + : file_id_(file_id_) + , complete_date_(complete_date_) + , is_paused_(is_paused_) + , counts_(std::move(counts_)) +{} + +const std::int32_t updateFileDownload::ID; + +void updateFileDownload::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFileDownload"); + s.store_field("file_id", file_id_); + s.store_field("complete_date", complete_date_); + s.store_field("is_paused", is_paused_); + s.store_object_field("counts", static_cast<const BaseObject *>(counts_.get())); + s.store_class_end(); + } +} + +updateFileRemovedFromDownloads::updateFileRemovedFromDownloads() + : file_id_() + , counts_() +{} + +updateFileRemovedFromDownloads::updateFileRemovedFromDownloads(int32 file_id_, object_ptr<downloadedFileCounts> &&counts_) + : file_id_(file_id_) + , counts_(std::move(counts_)) +{} + +const std::int32_t updateFileRemovedFromDownloads::ID; + +void updateFileRemovedFromDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFileRemovedFromDownloads"); + s.store_field("file_id", file_id_); + s.store_object_field("counts", static_cast<const BaseObject *>(counts_.get())); + s.store_class_end(); + } +} + +updateCall::updateCall() + : call_() +{} + +updateCall::updateCall(object_ptr<call> &&call_) + : call_(std::move(call_)) +{} + +const std::int32_t updateCall::ID; + +void updateCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +updateGroupCall::updateGroupCall() + : group_call_() +{} + +updateGroupCall::updateGroupCall(object_ptr<groupCall> &&group_call_) + : group_call_(std::move(group_call_)) +{} + +const std::int32_t updateGroupCall::ID; + +void updateGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateGroupCall"); + s.store_object_field("group_call", static_cast<const BaseObject *>(group_call_.get())); + s.store_class_end(); + } +} + +updateGroupCallParticipant::updateGroupCallParticipant() + : group_call_id_() + , participant_() +{} + +updateGroupCallParticipant::updateGroupCallParticipant(int32 group_call_id_, object_ptr<groupCallParticipant> &&participant_) + : group_call_id_(group_call_id_) + , participant_(std::move(participant_)) +{} + +const std::int32_t updateGroupCallParticipant::ID; + +void updateGroupCallParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateGroupCallParticipant"); + s.store_field("group_call_id", group_call_id_); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_class_end(); + } +} + +updateNewCallSignalingData::updateNewCallSignalingData() + : call_id_() + , data_() +{} + +updateNewCallSignalingData::updateNewCallSignalingData(int32 call_id_, bytes const &data_) + : call_id_(call_id_) + , data_(std::move(data_)) +{} + +const std::int32_t updateNewCallSignalingData::ID; + +void updateNewCallSignalingData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewCallSignalingData"); + s.store_field("call_id", call_id_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +updateUserPrivacySettingRules::updateUserPrivacySettingRules() + : setting_() + , rules_() +{} + +updateUserPrivacySettingRules::updateUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_) + : setting_(std::move(setting_)) + , rules_(std::move(rules_)) +{} + +const std::int32_t updateUserPrivacySettingRules::ID; + +void updateUserPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserPrivacySettingRules"); + s.store_object_field("setting", static_cast<const BaseObject *>(setting_.get())); + s.store_object_field("rules", static_cast<const BaseObject *>(rules_.get())); + s.store_class_end(); + } +} + +updateUnreadMessageCount::updateUnreadMessageCount() + : chat_list_() + , unread_count_() + , unread_unmuted_count_() +{} + +updateUnreadMessageCount::updateUnreadMessageCount(object_ptr<ChatList> &&chat_list_, int32 unread_count_, int32 unread_unmuted_count_) + : chat_list_(std::move(chat_list_)) + , unread_count_(unread_count_) + , unread_unmuted_count_(unread_unmuted_count_) +{} + +const std::int32_t updateUnreadMessageCount::ID; + +void updateUnreadMessageCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUnreadMessageCount"); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + s.store_field("unread_count", unread_count_); + s.store_field("unread_unmuted_count", unread_unmuted_count_); + s.store_class_end(); + } +} + +updateUnreadChatCount::updateUnreadChatCount() + : chat_list_() + , total_count_() + , unread_count_() + , unread_unmuted_count_() + , marked_as_unread_count_() + , marked_as_unread_unmuted_count_() +{} + +updateUnreadChatCount::updateUnreadChatCount(object_ptr<ChatList> &&chat_list_, int32 total_count_, int32 unread_count_, int32 unread_unmuted_count_, int32 marked_as_unread_count_, int32 marked_as_unread_unmuted_count_) + : chat_list_(std::move(chat_list_)) + , total_count_(total_count_) + , unread_count_(unread_count_) + , unread_unmuted_count_(unread_unmuted_count_) + , marked_as_unread_count_(marked_as_unread_count_) + , marked_as_unread_unmuted_count_(marked_as_unread_unmuted_count_) +{} + +const std::int32_t updateUnreadChatCount::ID; + +void updateUnreadChatCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUnreadChatCount"); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + s.store_field("total_count", total_count_); + s.store_field("unread_count", unread_count_); + s.store_field("unread_unmuted_count", unread_unmuted_count_); + s.store_field("marked_as_unread_count", marked_as_unread_count_); + s.store_field("marked_as_unread_unmuted_count", marked_as_unread_unmuted_count_); + s.store_class_end(); + } +} + +updateOption::updateOption() + : name_() + , value_() +{} + +updateOption::updateOption(string const &name_, object_ptr<OptionValue> &&value_) + : name_(name_) + , value_(std::move(value_)) +{} + +const std::int32_t updateOption::ID; + +void updateOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateOption"); + s.store_field("name", name_); + s.store_object_field("value", static_cast<const BaseObject *>(value_.get())); + s.store_class_end(); + } +} + +updateStickerSet::updateStickerSet() + : sticker_set_() +{} + +updateStickerSet::updateStickerSet(object_ptr<stickerSet> &&sticker_set_) + : sticker_set_(std::move(sticker_set_)) +{} + +const std::int32_t updateStickerSet::ID; + +void updateStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateStickerSet"); + s.store_object_field("sticker_set", static_cast<const BaseObject *>(sticker_set_.get())); + s.store_class_end(); + } +} + +updateInstalledStickerSets::updateInstalledStickerSets() + : sticker_type_() + , sticker_set_ids_() +{} + +updateInstalledStickerSets::updateInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_) + : sticker_type_(std::move(sticker_type_)) + , sticker_set_ids_(std::move(sticker_set_ids_)) +{} + +const std::int32_t updateInstalledStickerSets::ID; + +void updateInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateInstalledStickerSets"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + { s.store_vector_begin("sticker_set_ids", sticker_set_ids_.size()); for (const auto &_value : sticker_set_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateTrendingStickerSets::updateTrendingStickerSets() + : sticker_type_() + , sticker_sets_() +{} + +updateTrendingStickerSets::updateTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, object_ptr<trendingStickerSets> &&sticker_sets_) + : sticker_type_(std::move(sticker_type_)) + , sticker_sets_(std::move(sticker_sets_)) +{} + +const std::int32_t updateTrendingStickerSets::ID; + +void updateTrendingStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateTrendingStickerSets"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_object_field("sticker_sets", static_cast<const BaseObject *>(sticker_sets_.get())); + s.store_class_end(); + } +} + +updateRecentStickers::updateRecentStickers() + : is_attached_() + , sticker_ids_() +{} + +updateRecentStickers::updateRecentStickers(bool is_attached_, array<int32> &&sticker_ids_) + : is_attached_(is_attached_) + , sticker_ids_(std::move(sticker_ids_)) +{} + +const std::int32_t updateRecentStickers::ID; + +void updateRecentStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateRecentStickers"); + s.store_field("is_attached", is_attached_); + { s.store_vector_begin("sticker_ids", sticker_ids_.size()); for (const auto &_value : sticker_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateFavoriteStickers::updateFavoriteStickers() + : sticker_ids_() +{} + +updateFavoriteStickers::updateFavoriteStickers(array<int32> &&sticker_ids_) + : sticker_ids_(std::move(sticker_ids_)) +{} + +const std::int32_t updateFavoriteStickers::ID; + +void updateFavoriteStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFavoriteStickers"); + { s.store_vector_begin("sticker_ids", sticker_ids_.size()); for (const auto &_value : sticker_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateSavedAnimations::updateSavedAnimations() + : animation_ids_() +{} + +updateSavedAnimations::updateSavedAnimations(array<int32> &&animation_ids_) + : animation_ids_(std::move(animation_ids_)) +{} + +const std::int32_t updateSavedAnimations::ID; + +void updateSavedAnimations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSavedAnimations"); + { s.store_vector_begin("animation_ids", animation_ids_.size()); for (const auto &_value : animation_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateSavedNotificationSounds::updateSavedNotificationSounds() + : notification_sound_ids_() +{} + +updateSavedNotificationSounds::updateSavedNotificationSounds(array<int64> &¬ification_sound_ids_) + : notification_sound_ids_(std::move(notification_sound_ids_)) +{} + +const std::int32_t updateSavedNotificationSounds::ID; + +void updateSavedNotificationSounds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSavedNotificationSounds"); + { s.store_vector_begin("notification_sound_ids", notification_sound_ids_.size()); for (const auto &_value : notification_sound_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateSelectedBackground::updateSelectedBackground() + : for_dark_theme_() + , background_() +{} + +updateSelectedBackground::updateSelectedBackground(bool for_dark_theme_, object_ptr<background> &&background_) + : for_dark_theme_(for_dark_theme_) + , background_(std::move(background_)) +{} + +const std::int32_t updateSelectedBackground::ID; + +void updateSelectedBackground::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSelectedBackground"); + s.store_field("for_dark_theme", for_dark_theme_); + s.store_object_field("background", static_cast<const BaseObject *>(background_.get())); + s.store_class_end(); + } +} + +updateChatThemes::updateChatThemes() + : chat_themes_() +{} + +updateChatThemes::updateChatThemes(array<object_ptr<chatTheme>> &&chat_themes_) + : chat_themes_(std::move(chat_themes_)) +{} + +const std::int32_t updateChatThemes::ID; + +void updateChatThemes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatThemes"); + { s.store_vector_begin("chat_themes", chat_themes_.size()); for (const auto &_value : chat_themes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateLanguagePackStrings::updateLanguagePackStrings() + : localization_target_() + , language_pack_id_() + , strings_() +{} + +updateLanguagePackStrings::updateLanguagePackStrings(string const &localization_target_, string const &language_pack_id_, array<object_ptr<languagePackString>> &&strings_) + : localization_target_(localization_target_) + , language_pack_id_(language_pack_id_) + , strings_(std::move(strings_)) +{} + +const std::int32_t updateLanguagePackStrings::ID; + +void updateLanguagePackStrings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateLanguagePackStrings"); + s.store_field("localization_target", localization_target_); + s.store_field("language_pack_id", language_pack_id_); + { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateConnectionState::updateConnectionState() + : state_() +{} + +updateConnectionState::updateConnectionState(object_ptr<ConnectionState> &&state_) + : state_(std::move(state_)) +{} + +const std::int32_t updateConnectionState::ID; + +void updateConnectionState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateConnectionState"); + s.store_object_field("state", static_cast<const BaseObject *>(state_.get())); + s.store_class_end(); + } +} + +updateTermsOfService::updateTermsOfService() + : terms_of_service_id_() + , terms_of_service_() +{} + +updateTermsOfService::updateTermsOfService(string const &terms_of_service_id_, object_ptr<termsOfService> &&terms_of_service_) + : terms_of_service_id_(terms_of_service_id_) + , terms_of_service_(std::move(terms_of_service_)) +{} + +const std::int32_t updateTermsOfService::ID; + +void updateTermsOfService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateTermsOfService"); + s.store_field("terms_of_service_id", terms_of_service_id_); + s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get())); + s.store_class_end(); + } +} + +updateUsersNearby::updateUsersNearby() + : users_nearby_() +{} + +updateUsersNearby::updateUsersNearby(array<object_ptr<chatNearby>> &&users_nearby_) + : users_nearby_(std::move(users_nearby_)) +{} + +const std::int32_t updateUsersNearby::ID; + +void updateUsersNearby::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUsersNearby"); + { s.store_vector_begin("users_nearby", users_nearby_.size()); for (const auto &_value : users_nearby_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateAttachmentMenuBots::updateAttachmentMenuBots() + : bots_() +{} + +updateAttachmentMenuBots::updateAttachmentMenuBots(array<object_ptr<attachmentMenuBot>> &&bots_) + : bots_(std::move(bots_)) +{} + +const std::int32_t updateAttachmentMenuBots::ID; + +void updateAttachmentMenuBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateAttachmentMenuBots"); + { s.store_vector_begin("bots", bots_.size()); for (const auto &_value : bots_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateWebAppMessageSent::updateWebAppMessageSent() + : web_app_launch_id_() +{} + +updateWebAppMessageSent::updateWebAppMessageSent(int64 web_app_launch_id_) + : web_app_launch_id_(web_app_launch_id_) +{} + +const std::int32_t updateWebAppMessageSent::ID; + +void updateWebAppMessageSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateWebAppMessageSent"); + s.store_field("web_app_launch_id", web_app_launch_id_); + s.store_class_end(); + } +} + +updateActiveEmojiReactions::updateActiveEmojiReactions() + : emojis_() +{} + +updateActiveEmojiReactions::updateActiveEmojiReactions(array<string> &&emojis_) + : emojis_(std::move(emojis_)) +{} + +const std::int32_t updateActiveEmojiReactions::ID; + +void updateActiveEmojiReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateActiveEmojiReactions"); + { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateDefaultReactionType::updateDefaultReactionType() + : reaction_type_() +{} + +updateDefaultReactionType::updateDefaultReactionType(object_ptr<ReactionType> &&reaction_type_) + : reaction_type_(std::move(reaction_type_)) +{} + +const std::int32_t updateDefaultReactionType::ID; + +void updateDefaultReactionType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDefaultReactionType"); + s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get())); + s.store_class_end(); + } +} + +updateDiceEmojis::updateDiceEmojis() + : emojis_() +{} + +updateDiceEmojis::updateDiceEmojis(array<string> &&emojis_) + : emojis_(std::move(emojis_)) +{} + +const std::int32_t updateDiceEmojis::ID; + +void updateDiceEmojis::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDiceEmojis"); + { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateAnimatedEmojiMessageClicked::updateAnimatedEmojiMessageClicked() + : chat_id_() + , message_id_() + , sticker_() +{} + +updateAnimatedEmojiMessageClicked::updateAnimatedEmojiMessageClicked(int53 chat_id_, int53 message_id_, object_ptr<sticker> &&sticker_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t updateAnimatedEmojiMessageClicked::ID; + +void updateAnimatedEmojiMessageClicked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateAnimatedEmojiMessageClicked"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +updateAnimationSearchParameters::updateAnimationSearchParameters() + : provider_() + , emojis_() +{} + +updateAnimationSearchParameters::updateAnimationSearchParameters(string const &provider_, array<string> &&emojis_) + : provider_(provider_) + , emojis_(std::move(emojis_)) +{} + +const std::int32_t updateAnimationSearchParameters::ID; + +void updateAnimationSearchParameters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateAnimationSearchParameters"); + s.store_field("provider", provider_); + { s.store_vector_begin("emojis", emojis_.size()); for (const auto &_value : emojis_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateSuggestedActions::updateSuggestedActions() + : added_actions_() + , removed_actions_() +{} + +updateSuggestedActions::updateSuggestedActions(array<object_ptr<SuggestedAction>> &&added_actions_, array<object_ptr<SuggestedAction>> &&removed_actions_) + : added_actions_(std::move(added_actions_)) + , removed_actions_(std::move(removed_actions_)) +{} + +const std::int32_t updateSuggestedActions::ID; + +void updateSuggestedActions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSuggestedActions"); + { s.store_vector_begin("added_actions", added_actions_.size()); for (const auto &_value : added_actions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("removed_actions", removed_actions_.size()); for (const auto &_value : removed_actions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateNewInlineQuery::updateNewInlineQuery() + : id_() + , sender_user_id_() + , user_location_() + , chat_type_() + , query_() + , offset_() +{} + +updateNewInlineQuery::updateNewInlineQuery(int64 id_, int53 sender_user_id_, object_ptr<location> &&user_location_, object_ptr<ChatType> &&chat_type_, string const &query_, string const &offset_) + : id_(id_) + , sender_user_id_(sender_user_id_) + , user_location_(std::move(user_location_)) + , chat_type_(std::move(chat_type_)) + , query_(query_) + , offset_(offset_) +{} + +const std::int32_t updateNewInlineQuery::ID; + +void updateNewInlineQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewInlineQuery"); + s.store_field("id", id_); + s.store_field("sender_user_id", sender_user_id_); + s.store_object_field("user_location", static_cast<const BaseObject *>(user_location_.get())); + s.store_object_field("chat_type", static_cast<const BaseObject *>(chat_type_.get())); + s.store_field("query", query_); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +updateNewChosenInlineResult::updateNewChosenInlineResult() + : sender_user_id_() + , user_location_() + , query_() + , result_id_() + , inline_message_id_() +{} + +updateNewChosenInlineResult::updateNewChosenInlineResult(int53 sender_user_id_, object_ptr<location> &&user_location_, string const &query_, string const &result_id_, string const &inline_message_id_) + : sender_user_id_(sender_user_id_) + , user_location_(std::move(user_location_)) + , query_(query_) + , result_id_(result_id_) + , inline_message_id_(inline_message_id_) +{} + +const std::int32_t updateNewChosenInlineResult::ID; + +void updateNewChosenInlineResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewChosenInlineResult"); + s.store_field("sender_user_id", sender_user_id_); + s.store_object_field("user_location", static_cast<const BaseObject *>(user_location_.get())); + s.store_field("query", query_); + s.store_field("result_id", result_id_); + s.store_field("inline_message_id", inline_message_id_); + s.store_class_end(); + } +} + +updateNewCallbackQuery::updateNewCallbackQuery() + : id_() + , sender_user_id_() + , chat_id_() + , message_id_() + , chat_instance_() + , payload_() +{} + +updateNewCallbackQuery::updateNewCallbackQuery(int64 id_, int53 sender_user_id_, int53 chat_id_, int53 message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_) + : id_(id_) + , sender_user_id_(sender_user_id_) + , chat_id_(chat_id_) + , message_id_(message_id_) + , chat_instance_(chat_instance_) + , payload_(std::move(payload_)) +{} + +const std::int32_t updateNewCallbackQuery::ID; + +void updateNewCallbackQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewCallbackQuery"); + s.store_field("id", id_); + s.store_field("sender_user_id", sender_user_id_); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("chat_instance", chat_instance_); + s.store_object_field("payload", static_cast<const BaseObject *>(payload_.get())); + s.store_class_end(); + } +} + +updateNewInlineCallbackQuery::updateNewInlineCallbackQuery() + : id_() + , sender_user_id_() + , inline_message_id_() + , chat_instance_() + , payload_() +{} + +updateNewInlineCallbackQuery::updateNewInlineCallbackQuery(int64 id_, int53 sender_user_id_, string const &inline_message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_) + : id_(id_) + , sender_user_id_(sender_user_id_) + , inline_message_id_(inline_message_id_) + , chat_instance_(chat_instance_) + , payload_(std::move(payload_)) +{} + +const std::int32_t updateNewInlineCallbackQuery::ID; + +void updateNewInlineCallbackQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewInlineCallbackQuery"); + s.store_field("id", id_); + s.store_field("sender_user_id", sender_user_id_); + s.store_field("inline_message_id", inline_message_id_); + s.store_field("chat_instance", chat_instance_); + s.store_object_field("payload", static_cast<const BaseObject *>(payload_.get())); + s.store_class_end(); + } +} + +updateNewShippingQuery::updateNewShippingQuery() + : id_() + , sender_user_id_() + , invoice_payload_() + , shipping_address_() +{} + +updateNewShippingQuery::updateNewShippingQuery(int64 id_, int53 sender_user_id_, string const &invoice_payload_, object_ptr<address> &&shipping_address_) + : id_(id_) + , sender_user_id_(sender_user_id_) + , invoice_payload_(invoice_payload_) + , shipping_address_(std::move(shipping_address_)) +{} + +const std::int32_t updateNewShippingQuery::ID; + +void updateNewShippingQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewShippingQuery"); + s.store_field("id", id_); + s.store_field("sender_user_id", sender_user_id_); + s.store_field("invoice_payload", invoice_payload_); + s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get())); + s.store_class_end(); + } +} + +updateNewPreCheckoutQuery::updateNewPreCheckoutQuery() + : id_() + , sender_user_id_() + , currency_() + , total_amount_() + , invoice_payload_() + , shipping_option_id_() + , order_info_() +{} + +updateNewPreCheckoutQuery::updateNewPreCheckoutQuery(int64 id_, int53 sender_user_id_, string const ¤cy_, int53 total_amount_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_) + : id_(id_) + , sender_user_id_(sender_user_id_) + , currency_(currency_) + , total_amount_(total_amount_) + , invoice_payload_(std::move(invoice_payload_)) + , shipping_option_id_(shipping_option_id_) + , order_info_(std::move(order_info_)) +{} + +const std::int32_t updateNewPreCheckoutQuery::ID; + +void updateNewPreCheckoutQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewPreCheckoutQuery"); + s.store_field("id", id_); + s.store_field("sender_user_id", sender_user_id_); + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_bytes_field("invoice_payload", invoice_payload_); + s.store_field("shipping_option_id", shipping_option_id_); + s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get())); + s.store_class_end(); + } +} + +updateNewCustomEvent::updateNewCustomEvent() + : event_() +{} + +updateNewCustomEvent::updateNewCustomEvent(string const &event_) + : event_(event_) +{} + +const std::int32_t updateNewCustomEvent::ID; + +void updateNewCustomEvent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewCustomEvent"); + s.store_field("event", event_); + s.store_class_end(); + } +} + +updateNewCustomQuery::updateNewCustomQuery() + : id_() + , data_() + , timeout_() +{} + +updateNewCustomQuery::updateNewCustomQuery(int64 id_, string const &data_, int32 timeout_) + : id_(id_) + , data_(data_) + , timeout_(timeout_) +{} + +const std::int32_t updateNewCustomQuery::ID; + +void updateNewCustomQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewCustomQuery"); + s.store_field("id", id_); + s.store_field("data", data_); + s.store_field("timeout", timeout_); + s.store_class_end(); + } +} + +updatePoll::updatePoll() + : poll_() +{} + +updatePoll::updatePoll(object_ptr<poll> &&poll_) + : poll_(std::move(poll_)) +{} + +const std::int32_t updatePoll::ID; + +void updatePoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePoll"); + s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get())); + s.store_class_end(); + } +} + +updatePollAnswer::updatePollAnswer() + : poll_id_() + , user_id_() + , option_ids_() +{} + +updatePollAnswer::updatePollAnswer(int64 poll_id_, int53 user_id_, array<int32> &&option_ids_) + : poll_id_(poll_id_) + , user_id_(user_id_) + , option_ids_(std::move(option_ids_)) +{} + +const std::int32_t updatePollAnswer::ID; + +void updatePollAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePollAnswer"); + s.store_field("poll_id", poll_id_); + s.store_field("user_id", user_id_); + { s.store_vector_begin("option_ids", option_ids_.size()); for (const auto &_value : option_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateChatMember::updateChatMember() + : chat_id_() + , actor_user_id_() + , date_() + , invite_link_() + , old_chat_member_() + , new_chat_member_() +{} + +updateChatMember::updateChatMember(int53 chat_id_, int53 actor_user_id_, int32 date_, object_ptr<chatInviteLink> &&invite_link_, object_ptr<chatMember> &&old_chat_member_, object_ptr<chatMember> &&new_chat_member_) + : chat_id_(chat_id_) + , actor_user_id_(actor_user_id_) + , date_(date_) + , invite_link_(std::move(invite_link_)) + , old_chat_member_(std::move(old_chat_member_)) + , new_chat_member_(std::move(new_chat_member_)) +{} + +const std::int32_t updateChatMember::ID; + +void updateChatMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatMember"); + s.store_field("chat_id", chat_id_); + s.store_field("actor_user_id", actor_user_id_); + s.store_field("date", date_); + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + s.store_object_field("old_chat_member", static_cast<const BaseObject *>(old_chat_member_.get())); + s.store_object_field("new_chat_member", static_cast<const BaseObject *>(new_chat_member_.get())); + s.store_class_end(); + } +} + +updateNewChatJoinRequest::updateNewChatJoinRequest() + : chat_id_() + , request_() + , invite_link_() +{} + +updateNewChatJoinRequest::updateNewChatJoinRequest(int53 chat_id_, object_ptr<chatJoinRequest> &&request_, object_ptr<chatInviteLink> &&invite_link_) + : chat_id_(chat_id_) + , request_(std::move(request_)) + , invite_link_(std::move(invite_link_)) +{} + +const std::int32_t updateNewChatJoinRequest::ID; + +void updateNewChatJoinRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewChatJoinRequest"); + s.store_field("chat_id", chat_id_); + s.store_object_field("request", static_cast<const BaseObject *>(request_.get())); + s.store_object_field("invite_link", static_cast<const BaseObject *>(invite_link_.get())); + s.store_class_end(); + } +} + +updates::updates() + : updates_() +{} + +updates::updates(array<object_ptr<Update>> &&updates_) + : updates_(std::move(updates_)) +{} + +const std::int32_t updates::ID; + +void updates::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates"); + { s.store_vector_begin("updates", updates_.size()); for (const auto &_value : updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +user::user() + : id_() + , first_name_() + , last_name_() + , usernames_() + , phone_number_() + , status_() + , profile_photo_() + , emoji_status_() + , is_contact_() + , is_mutual_contact_() + , is_verified_() + , is_premium_() + , is_support_() + , restriction_reason_() + , is_scam_() + , is_fake_() + , have_access_() + , type_() + , language_code_() + , added_to_attachment_menu_() +{} + +user::user(int53 id_, string const &first_name_, string const &last_name_, object_ptr<usernames> &&usernames_, string const &phone_number_, object_ptr<UserStatus> &&status_, object_ptr<profilePhoto> &&profile_photo_, object_ptr<emojiStatus> &&emoji_status_, bool is_contact_, bool is_mutual_contact_, bool is_verified_, bool is_premium_, bool is_support_, string const &restriction_reason_, bool is_scam_, bool is_fake_, bool have_access_, object_ptr<UserType> &&type_, string const &language_code_, bool added_to_attachment_menu_) + : id_(id_) + , first_name_(first_name_) + , last_name_(last_name_) + , usernames_(std::move(usernames_)) + , phone_number_(phone_number_) + , status_(std::move(status_)) + , profile_photo_(std::move(profile_photo_)) + , emoji_status_(std::move(emoji_status_)) + , is_contact_(is_contact_) + , is_mutual_contact_(is_mutual_contact_) + , is_verified_(is_verified_) + , is_premium_(is_premium_) + , is_support_(is_support_) + , restriction_reason_(restriction_reason_) + , is_scam_(is_scam_) + , is_fake_(is_fake_) + , have_access_(have_access_) + , type_(std::move(type_)) + , language_code_(language_code_) + , added_to_attachment_menu_(added_to_attachment_menu_) +{} + +const std::int32_t user::ID; + +void user::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "user"); + s.store_field("id", id_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_object_field("usernames", static_cast<const BaseObject *>(usernames_.get())); + s.store_field("phone_number", phone_number_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_object_field("profile_photo", static_cast<const BaseObject *>(profile_photo_.get())); + s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get())); + s.store_field("is_contact", is_contact_); + s.store_field("is_mutual_contact", is_mutual_contact_); + s.store_field("is_verified", is_verified_); + s.store_field("is_premium", is_premium_); + s.store_field("is_support", is_support_); + s.store_field("restriction_reason", restriction_reason_); + s.store_field("is_scam", is_scam_); + s.store_field("is_fake", is_fake_); + s.store_field("have_access", have_access_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("language_code", language_code_); + s.store_field("added_to_attachment_menu", added_to_attachment_menu_); + s.store_class_end(); + } +} + +userFullInfo::userFullInfo() + : photo_() + , is_blocked_() + , can_be_called_() + , supports_video_calls_() + , has_private_calls_() + , has_private_forwards_() + , has_restricted_voice_and_video_note_messages_() + , need_phone_number_privacy_exception_() + , bio_() + , premium_gift_options_() + , group_in_common_count_() + , bot_info_() +{} + +userFullInfo::userFullInfo(object_ptr<chatPhoto> &&photo_, bool is_blocked_, bool can_be_called_, bool supports_video_calls_, bool has_private_calls_, bool has_private_forwards_, bool has_restricted_voice_and_video_note_messages_, bool need_phone_number_privacy_exception_, object_ptr<formattedText> &&bio_, array<object_ptr<premiumPaymentOption>> &&premium_gift_options_, int32 group_in_common_count_, object_ptr<botInfo> &&bot_info_) + : photo_(std::move(photo_)) + , is_blocked_(is_blocked_) + , can_be_called_(can_be_called_) + , supports_video_calls_(supports_video_calls_) + , has_private_calls_(has_private_calls_) + , has_private_forwards_(has_private_forwards_) + , has_restricted_voice_and_video_note_messages_(has_restricted_voice_and_video_note_messages_) + , need_phone_number_privacy_exception_(need_phone_number_privacy_exception_) + , bio_(std::move(bio_)) + , premium_gift_options_(std::move(premium_gift_options_)) + , group_in_common_count_(group_in_common_count_) + , bot_info_(std::move(bot_info_)) +{} + +const std::int32_t userFullInfo::ID; + +void userFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userFullInfo"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("is_blocked", is_blocked_); + s.store_field("can_be_called", can_be_called_); + s.store_field("supports_video_calls", supports_video_calls_); + s.store_field("has_private_calls", has_private_calls_); + s.store_field("has_private_forwards", has_private_forwards_); + s.store_field("has_restricted_voice_and_video_note_messages", has_restricted_voice_and_video_note_messages_); + s.store_field("need_phone_number_privacy_exception", need_phone_number_privacy_exception_); + s.store_object_field("bio", static_cast<const BaseObject *>(bio_.get())); + { s.store_vector_begin("premium_gift_options", premium_gift_options_.size()); for (const auto &_value : premium_gift_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("group_in_common_count", group_in_common_count_); + s.store_object_field("bot_info", static_cast<const BaseObject *>(bot_info_.get())); + s.store_class_end(); + } +} + +userPrivacySettingShowStatus::userPrivacySettingShowStatus() { +} + +const std::int32_t userPrivacySettingShowStatus::ID; + +void userPrivacySettingShowStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingShowStatus"); + s.store_class_end(); + } +} + +userPrivacySettingShowProfilePhoto::userPrivacySettingShowProfilePhoto() { +} + +const std::int32_t userPrivacySettingShowProfilePhoto::ID; + +void userPrivacySettingShowProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingShowProfilePhoto"); + s.store_class_end(); + } +} + +userPrivacySettingShowLinkInForwardedMessages::userPrivacySettingShowLinkInForwardedMessages() { +} + +const std::int32_t userPrivacySettingShowLinkInForwardedMessages::ID; + +void userPrivacySettingShowLinkInForwardedMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingShowLinkInForwardedMessages"); + s.store_class_end(); + } +} + +userPrivacySettingShowPhoneNumber::userPrivacySettingShowPhoneNumber() { +} + +const std::int32_t userPrivacySettingShowPhoneNumber::ID; + +void userPrivacySettingShowPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingShowPhoneNumber"); + s.store_class_end(); + } +} + +userPrivacySettingAllowChatInvites::userPrivacySettingAllowChatInvites() { +} + +const std::int32_t userPrivacySettingAllowChatInvites::ID; + +void userPrivacySettingAllowChatInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingAllowChatInvites"); + s.store_class_end(); + } +} + +userPrivacySettingAllowCalls::userPrivacySettingAllowCalls() { +} + +const std::int32_t userPrivacySettingAllowCalls::ID; + +void userPrivacySettingAllowCalls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingAllowCalls"); + s.store_class_end(); + } +} + +userPrivacySettingAllowPeerToPeerCalls::userPrivacySettingAllowPeerToPeerCalls() { +} + +const std::int32_t userPrivacySettingAllowPeerToPeerCalls::ID; + +void userPrivacySettingAllowPeerToPeerCalls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingAllowPeerToPeerCalls"); + s.store_class_end(); + } +} + +userPrivacySettingAllowFindingByPhoneNumber::userPrivacySettingAllowFindingByPhoneNumber() { +} + +const std::int32_t userPrivacySettingAllowFindingByPhoneNumber::ID; + +void userPrivacySettingAllowFindingByPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingAllowFindingByPhoneNumber"); + s.store_class_end(); + } +} + +userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages() { +} + +const std::int32_t userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::ID; + +void userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages"); + s.store_class_end(); + } +} + +userPrivacySettingRuleAllowAll::userPrivacySettingRuleAllowAll() { +} + +const std::int32_t userPrivacySettingRuleAllowAll::ID; + +void userPrivacySettingRuleAllowAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleAllowAll"); + s.store_class_end(); + } +} + +userPrivacySettingRuleAllowContacts::userPrivacySettingRuleAllowContacts() { +} + +const std::int32_t userPrivacySettingRuleAllowContacts::ID; + +void userPrivacySettingRuleAllowContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleAllowContacts"); + s.store_class_end(); + } +} + +userPrivacySettingRuleAllowUsers::userPrivacySettingRuleAllowUsers() + : user_ids_() +{} + +userPrivacySettingRuleAllowUsers::userPrivacySettingRuleAllowUsers(array<int53> &&user_ids_) + : user_ids_(std::move(user_ids_)) +{} + +const std::int32_t userPrivacySettingRuleAllowUsers::ID; + +void userPrivacySettingRuleAllowUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleAllowUsers"); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +userPrivacySettingRuleAllowChatMembers::userPrivacySettingRuleAllowChatMembers() + : chat_ids_() +{} + +userPrivacySettingRuleAllowChatMembers::userPrivacySettingRuleAllowChatMembers(array<int53> &&chat_ids_) + : chat_ids_(std::move(chat_ids_)) +{} + +const std::int32_t userPrivacySettingRuleAllowChatMembers::ID; + +void userPrivacySettingRuleAllowChatMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleAllowChatMembers"); + { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +userPrivacySettingRuleRestrictAll::userPrivacySettingRuleRestrictAll() { +} + +const std::int32_t userPrivacySettingRuleRestrictAll::ID; + +void userPrivacySettingRuleRestrictAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleRestrictAll"); + s.store_class_end(); + } +} + +userPrivacySettingRuleRestrictContacts::userPrivacySettingRuleRestrictContacts() { +} + +const std::int32_t userPrivacySettingRuleRestrictContacts::ID; + +void userPrivacySettingRuleRestrictContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleRestrictContacts"); + s.store_class_end(); + } +} + +userPrivacySettingRuleRestrictUsers::userPrivacySettingRuleRestrictUsers() + : user_ids_() +{} + +userPrivacySettingRuleRestrictUsers::userPrivacySettingRuleRestrictUsers(array<int53> &&user_ids_) + : user_ids_(std::move(user_ids_)) +{} + +const std::int32_t userPrivacySettingRuleRestrictUsers::ID; + +void userPrivacySettingRuleRestrictUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleRestrictUsers"); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +userPrivacySettingRuleRestrictChatMembers::userPrivacySettingRuleRestrictChatMembers() + : chat_ids_() +{} + +userPrivacySettingRuleRestrictChatMembers::userPrivacySettingRuleRestrictChatMembers(array<int53> &&chat_ids_) + : chat_ids_(std::move(chat_ids_)) +{} + +const std::int32_t userPrivacySettingRuleRestrictChatMembers::ID; + +void userPrivacySettingRuleRestrictChatMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRuleRestrictChatMembers"); + { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +userPrivacySettingRules::userPrivacySettingRules() + : rules_() +{} + +userPrivacySettingRules::userPrivacySettingRules(array<object_ptr<UserPrivacySettingRule>> &&rules_) + : rules_(std::move(rules_)) +{} + +const std::int32_t userPrivacySettingRules::ID; + +void userPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userPrivacySettingRules"); + { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +userStatusEmpty::userStatusEmpty() { +} + +const std::int32_t userStatusEmpty::ID; + +void userStatusEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusEmpty"); + s.store_class_end(); + } +} + +userStatusOnline::userStatusOnline() + : expires_() +{} + +userStatusOnline::userStatusOnline(int32 expires_) + : expires_(expires_) +{} + +const std::int32_t userStatusOnline::ID; + +void userStatusOnline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusOnline"); + s.store_field("expires", expires_); + s.store_class_end(); + } +} + +userStatusOffline::userStatusOffline() + : was_online_() +{} + +userStatusOffline::userStatusOffline(int32 was_online_) + : was_online_(was_online_) +{} + +const std::int32_t userStatusOffline::ID; + +void userStatusOffline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusOffline"); + s.store_field("was_online", was_online_); + s.store_class_end(); + } +} + +userStatusRecently::userStatusRecently() { +} + +const std::int32_t userStatusRecently::ID; + +void userStatusRecently::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusRecently"); + s.store_class_end(); + } +} + +userStatusLastWeek::userStatusLastWeek() { +} + +const std::int32_t userStatusLastWeek::ID; + +void userStatusLastWeek::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusLastWeek"); + s.store_class_end(); + } +} + +userStatusLastMonth::userStatusLastMonth() { +} + +const std::int32_t userStatusLastMonth::ID; + +void userStatusLastMonth::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusLastMonth"); + s.store_class_end(); + } +} + +userSupportInfo::userSupportInfo() + : message_() + , author_() + , date_() +{} + +userSupportInfo::userSupportInfo(object_ptr<formattedText> &&message_, string const &author_, int32 date_) + : message_(std::move(message_)) + , author_(author_) + , date_(date_) +{} + +const std::int32_t userSupportInfo::ID; + +void userSupportInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userSupportInfo"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("author", author_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +userTypeRegular::userTypeRegular() { +} + +const std::int32_t userTypeRegular::ID; + +void userTypeRegular::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userTypeRegular"); + s.store_class_end(); + } +} + +userTypeDeleted::userTypeDeleted() { +} + +const std::int32_t userTypeDeleted::ID; + +void userTypeDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userTypeDeleted"); + s.store_class_end(); + } +} + +userTypeBot::userTypeBot() + : can_join_groups_() + , can_read_all_group_messages_() + , is_inline_() + , inline_query_placeholder_() + , need_location_() + , can_be_added_to_attachment_menu_() +{} + +userTypeBot::userTypeBot(bool can_join_groups_, bool can_read_all_group_messages_, bool is_inline_, string const &inline_query_placeholder_, bool need_location_, bool can_be_added_to_attachment_menu_) + : can_join_groups_(can_join_groups_) + , can_read_all_group_messages_(can_read_all_group_messages_) + , is_inline_(is_inline_) + , inline_query_placeholder_(inline_query_placeholder_) + , need_location_(need_location_) + , can_be_added_to_attachment_menu_(can_be_added_to_attachment_menu_) +{} + +const std::int32_t userTypeBot::ID; + +void userTypeBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userTypeBot"); + s.store_field("can_join_groups", can_join_groups_); + s.store_field("can_read_all_group_messages", can_read_all_group_messages_); + s.store_field("is_inline", is_inline_); + s.store_field("inline_query_placeholder", inline_query_placeholder_); + s.store_field("need_location", need_location_); + s.store_field("can_be_added_to_attachment_menu", can_be_added_to_attachment_menu_); + s.store_class_end(); + } +} + +userTypeUnknown::userTypeUnknown() { +} + +const std::int32_t userTypeUnknown::ID; + +void userTypeUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userTypeUnknown"); + s.store_class_end(); + } +} + +usernames::usernames() + : active_usernames_() + , disabled_usernames_() + , editable_username_() +{} + +usernames::usernames(array<string> &&active_usernames_, array<string> &&disabled_usernames_, string const &editable_username_) + : active_usernames_(std::move(active_usernames_)) + , disabled_usernames_(std::move(disabled_usernames_)) + , editable_username_(editable_username_) +{} + +const std::int32_t usernames::ID; + +void usernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "usernames"); + { s.store_vector_begin("active_usernames", active_usernames_.size()); for (const auto &_value : active_usernames_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("disabled_usernames", disabled_usernames_.size()); for (const auto &_value : disabled_usernames_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("editable_username", editable_username_); + s.store_class_end(); + } +} + +users::users() + : total_count_() + , user_ids_() +{} + +users::users(int32 total_count_, array<int53> &&user_ids_) + : total_count_(total_count_) + , user_ids_(std::move(user_ids_)) +{} + +const std::int32_t users::ID; + +void users::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "users"); + s.store_field("total_count", total_count_); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +validatedOrderInfo::validatedOrderInfo() + : order_info_id_() + , shipping_options_() +{} + +validatedOrderInfo::validatedOrderInfo(string const &order_info_id_, array<object_ptr<shippingOption>> &&shipping_options_) + : order_info_id_(order_info_id_) + , shipping_options_(std::move(shipping_options_)) +{} + +const std::int32_t validatedOrderInfo::ID; + +void validatedOrderInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "validatedOrderInfo"); + s.store_field("order_info_id", order_info_id_); + { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +vectorPathCommandLine::vectorPathCommandLine() + : end_point_() +{} + +vectorPathCommandLine::vectorPathCommandLine(object_ptr<point> &&end_point_) + : end_point_(std::move(end_point_)) +{} + +const std::int32_t vectorPathCommandLine::ID; + +void vectorPathCommandLine::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "vectorPathCommandLine"); + s.store_object_field("end_point", static_cast<const BaseObject *>(end_point_.get())); + s.store_class_end(); + } +} + +vectorPathCommandCubicBezierCurve::vectorPathCommandCubicBezierCurve() + : start_control_point_() + , end_control_point_() + , end_point_() +{} + +vectorPathCommandCubicBezierCurve::vectorPathCommandCubicBezierCurve(object_ptr<point> &&start_control_point_, object_ptr<point> &&end_control_point_, object_ptr<point> &&end_point_) + : start_control_point_(std::move(start_control_point_)) + , end_control_point_(std::move(end_control_point_)) + , end_point_(std::move(end_point_)) +{} + +const std::int32_t vectorPathCommandCubicBezierCurve::ID; + +void vectorPathCommandCubicBezierCurve::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "vectorPathCommandCubicBezierCurve"); + s.store_object_field("start_control_point", static_cast<const BaseObject *>(start_control_point_.get())); + s.store_object_field("end_control_point", static_cast<const BaseObject *>(end_control_point_.get())); + s.store_object_field("end_point", static_cast<const BaseObject *>(end_point_.get())); + s.store_class_end(); + } +} + +venue::venue() + : location_() + , title_() + , address_() + , provider_() + , id_() + , type_() +{} + +venue::venue(object_ptr<location> &&location_, string const &title_, string const &address_, string const &provider_, string const &id_, string const &type_) + : location_(std::move(location_)) + , title_(title_) + , address_(address_) + , provider_(provider_) + , id_(id_) + , type_(type_) +{} + +const std::int32_t venue::ID; + +void venue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "venue"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("title", title_); + s.store_field("address", address_); + s.store_field("provider", provider_); + s.store_field("id", id_); + s.store_field("type", type_); + s.store_class_end(); + } +} + +video::video() + : duration_() + , width_() + , height_() + , file_name_() + , mime_type_() + , has_stickers_() + , supports_streaming_() + , minithumbnail_() + , thumbnail_() + , video_() +{} + +video::video(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, bool supports_streaming_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&video_) + : duration_(duration_) + , width_(width_) + , height_(height_) + , file_name_(file_name_) + , mime_type_(mime_type_) + , has_stickers_(has_stickers_) + , supports_streaming_(supports_streaming_) + , minithumbnail_(std::move(minithumbnail_)) + , thumbnail_(std::move(thumbnail_)) + , video_(std::move(video_)) +{} + +const std::int32_t video::ID; + +void video::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "video"); + s.store_field("duration", duration_); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_field("file_name", file_name_); + s.store_field("mime_type", mime_type_); + s.store_field("has_stickers", has_stickers_); + s.store_field("supports_streaming", supports_streaming_); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_class_end(); + } +} + +videoChat::videoChat() + : group_call_id_() + , has_participants_() + , default_participant_id_() +{} + +videoChat::videoChat(int32 group_call_id_, bool has_participants_, object_ptr<MessageSender> &&default_participant_id_) + : group_call_id_(group_call_id_) + , has_participants_(has_participants_) + , default_participant_id_(std::move(default_participant_id_)) +{} + +const std::int32_t videoChat::ID; + +void videoChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "videoChat"); + s.store_field("group_call_id", group_call_id_); + s.store_field("has_participants", has_participants_); + s.store_object_field("default_participant_id", static_cast<const BaseObject *>(default_participant_id_.get())); + s.store_class_end(); + } +} + +videoNote::videoNote() + : duration_() + , waveform_() + , length_() + , minithumbnail_() + , thumbnail_() + , speech_recognition_result_() + , video_() +{} + +videoNote::videoNote(int32 duration_, bytes const &waveform_, int32 length_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&video_) + : duration_(duration_) + , waveform_(std::move(waveform_)) + , length_(length_) + , minithumbnail_(std::move(minithumbnail_)) + , thumbnail_(std::move(thumbnail_)) + , speech_recognition_result_(std::move(speech_recognition_result_)) + , video_(std::move(video_)) +{} + +const std::int32_t videoNote::ID; + +void videoNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "videoNote"); + s.store_field("duration", duration_); + s.store_bytes_field("waveform", waveform_); + s.store_field("length", length_); + s.store_object_field("minithumbnail", static_cast<const BaseObject *>(minithumbnail_.get())); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_object_field("speech_recognition_result", static_cast<const BaseObject *>(speech_recognition_result_.get())); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_class_end(); + } +} + +voiceNote::voiceNote() + : duration_() + , waveform_() + , mime_type_() + , speech_recognition_result_() + , voice_() +{} + +voiceNote::voiceNote(int32 duration_, bytes const &waveform_, string const &mime_type_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&voice_) + : duration_(duration_) + , waveform_(std::move(waveform_)) + , mime_type_(mime_type_) + , speech_recognition_result_(std::move(speech_recognition_result_)) + , voice_(std::move(voice_)) +{} + +const std::int32_t voiceNote::ID; + +void voiceNote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "voiceNote"); + s.store_field("duration", duration_); + s.store_bytes_field("waveform", waveform_); + s.store_field("mime_type", mime_type_); + s.store_object_field("speech_recognition_result", static_cast<const BaseObject *>(speech_recognition_result_.get())); + s.store_object_field("voice", static_cast<const BaseObject *>(voice_.get())); + s.store_class_end(); + } +} + +webAppInfo::webAppInfo() + : launch_id_() + , url_() +{} + +webAppInfo::webAppInfo(int64 launch_id_, string const &url_) + : launch_id_(launch_id_) + , url_(url_) +{} + +const std::int32_t webAppInfo::ID; + +void webAppInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webAppInfo"); + s.store_field("launch_id", launch_id_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +webPage::webPage() + : url_() + , display_url_() + , type_() + , site_name_() + , title_() + , description_() + , photo_() + , embed_url_() + , embed_type_() + , embed_width_() + , embed_height_() + , duration_() + , author_() + , animation_() + , audio_() + , document_() + , sticker_() + , video_() + , video_note_() + , voice_note_() + , instant_view_version_() +{} + +webPage::webPage(string const &url_, string const &display_url_, string const &type_, string const &site_name_, string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const &embed_url_, string const &embed_type_, int32 embed_width_, int32 embed_height_, int32 duration_, string const &author_, object_ptr<animation> &&animation_, object_ptr<audio> &&audio_, object_ptr<document> &&document_, object_ptr<sticker> &&sticker_, object_ptr<video> &&video_, object_ptr<videoNote> &&video_note_, object_ptr<voiceNote> &&voice_note_, int32 instant_view_version_) + : url_(url_) + , display_url_(display_url_) + , type_(type_) + , site_name_(site_name_) + , title_(title_) + , description_(std::move(description_)) + , photo_(std::move(photo_)) + , embed_url_(embed_url_) + , embed_type_(embed_type_) + , embed_width_(embed_width_) + , embed_height_(embed_height_) + , duration_(duration_) + , author_(author_) + , animation_(std::move(animation_)) + , audio_(std::move(audio_)) + , document_(std::move(document_)) + , sticker_(std::move(sticker_)) + , video_(std::move(video_)) + , video_note_(std::move(video_note_)) + , voice_note_(std::move(voice_note_)) + , instant_view_version_(instant_view_version_) +{} + +const std::int32_t webPage::ID; + +void webPage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webPage"); + s.store_field("url", url_); + s.store_field("display_url", display_url_); + s.store_field("type", type_); + s.store_field("site_name", site_name_); + s.store_field("title", title_); + s.store_object_field("description", static_cast<const BaseObject *>(description_.get())); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("embed_url", embed_url_); + s.store_field("embed_type", embed_type_); + s.store_field("embed_width", embed_width_); + s.store_field("embed_height", embed_height_); + s.store_field("duration", duration_); + s.store_field("author", author_); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_object_field("audio", static_cast<const BaseObject *>(audio_.get())); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); + s.store_object_field("video_note", static_cast<const BaseObject *>(video_note_.get())); + s.store_object_field("voice_note", static_cast<const BaseObject *>(voice_note_.get())); + s.store_field("instant_view_version", instant_view_version_); + s.store_class_end(); + } +} + +webPageInstantView::webPageInstantView() + : page_blocks_() + , view_count_() + , version_() + , is_rtl_() + , is_full_() + , feedback_link_() +{} + +webPageInstantView::webPageInstantView(array<object_ptr<PageBlock>> &&page_blocks_, int32 view_count_, int32 version_, bool is_rtl_, bool is_full_, object_ptr<InternalLinkType> &&feedback_link_) + : page_blocks_(std::move(page_blocks_)) + , view_count_(view_count_) + , version_(version_) + , is_rtl_(is_rtl_) + , is_full_(is_full_) + , feedback_link_(std::move(feedback_link_)) +{} + +const std::int32_t webPageInstantView::ID; + +void webPageInstantView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webPageInstantView"); + { s.store_vector_begin("page_blocks", page_blocks_.size()); for (const auto &_value : page_blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("view_count", view_count_); + s.store_field("version", version_); + s.store_field("is_rtl", is_rtl_); + s.store_field("is_full", is_full_); + s.store_object_field("feedback_link", static_cast<const BaseObject *>(feedback_link_.get())); + s.store_class_end(); + } +} + +acceptCall::acceptCall() + : call_id_() + , protocol_() +{} + +acceptCall::acceptCall(int32 call_id_, object_ptr<callProtocol> &&protocol_) + : call_id_(call_id_) + , protocol_(std::move(protocol_)) +{} + +const std::int32_t acceptCall::ID; + +void acceptCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "acceptCall"); + s.store_field("call_id", call_id_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + s.store_class_end(); + } +} + +acceptTermsOfService::acceptTermsOfService() + : terms_of_service_id_() +{} + +acceptTermsOfService::acceptTermsOfService(string const &terms_of_service_id_) + : terms_of_service_id_(terms_of_service_id_) +{} + +const std::int32_t acceptTermsOfService::ID; + +void acceptTermsOfService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "acceptTermsOfService"); + s.store_field("terms_of_service_id", terms_of_service_id_); + s.store_class_end(); + } +} + +addChatMember::addChatMember() + : chat_id_() + , user_id_() + , forward_limit_() +{} + +addChatMember::addChatMember(int53 chat_id_, int53 user_id_, int32 forward_limit_) + : chat_id_(chat_id_) + , user_id_(user_id_) + , forward_limit_(forward_limit_) +{} + +const std::int32_t addChatMember::ID; + +void addChatMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addChatMember"); + s.store_field("chat_id", chat_id_); + s.store_field("user_id", user_id_); + s.store_field("forward_limit", forward_limit_); + s.store_class_end(); + } +} + +addChatMembers::addChatMembers() + : chat_id_() + , user_ids_() +{} + +addChatMembers::addChatMembers(int53 chat_id_, array<int53> &&user_ids_) + : chat_id_(chat_id_) + , user_ids_(std::move(user_ids_)) +{} + +const std::int32_t addChatMembers::ID; + +void addChatMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addChatMembers"); + s.store_field("chat_id", chat_id_); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +addChatToList::addChatToList() + : chat_id_() + , chat_list_() +{} + +addChatToList::addChatToList(int53 chat_id_, object_ptr<ChatList> &&chat_list_) + : chat_id_(chat_id_) + , chat_list_(std::move(chat_list_)) +{} + +const std::int32_t addChatToList::ID; + +void addChatToList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addChatToList"); + s.store_field("chat_id", chat_id_); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + s.store_class_end(); + } +} + +addContact::addContact() + : contact_() + , share_phone_number_() +{} + +addContact::addContact(object_ptr<contact> &&contact_, bool share_phone_number_) + : contact_(std::move(contact_)) + , share_phone_number_(share_phone_number_) +{} + +const std::int32_t addContact::ID; + +void addContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addContact"); + s.store_object_field("contact", static_cast<const BaseObject *>(contact_.get())); + s.store_field("share_phone_number", share_phone_number_); + s.store_class_end(); + } +} + +addCustomServerLanguagePack::addCustomServerLanguagePack() + : language_pack_id_() +{} + +addCustomServerLanguagePack::addCustomServerLanguagePack(string const &language_pack_id_) + : language_pack_id_(language_pack_id_) +{} + +const std::int32_t addCustomServerLanguagePack::ID; + +void addCustomServerLanguagePack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addCustomServerLanguagePack"); + s.store_field("language_pack_id", language_pack_id_); + s.store_class_end(); + } +} + +addFavoriteSticker::addFavoriteSticker() + : sticker_() +{} + +addFavoriteSticker::addFavoriteSticker(object_ptr<InputFile> &&sticker_) + : sticker_(std::move(sticker_)) +{} + +const std::int32_t addFavoriteSticker::ID; + +void addFavoriteSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addFavoriteSticker"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +addFileToDownloads::addFileToDownloads() + : file_id_() + , chat_id_() + , message_id_() + , priority_() +{} + +addFileToDownloads::addFileToDownloads(int32 file_id_, int53 chat_id_, int53 message_id_, int32 priority_) + : file_id_(file_id_) + , chat_id_(chat_id_) + , message_id_(message_id_) + , priority_(priority_) +{} + +const std::int32_t addFileToDownloads::ID; + +void addFileToDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addFileToDownloads"); + s.store_field("file_id", file_id_); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("priority", priority_); + s.store_class_end(); + } +} + +addLocalMessage::addLocalMessage() + : chat_id_() + , sender_id_() + , reply_to_message_id_() + , disable_notification_() + , input_message_content_() +{} + +addLocalMessage::addLocalMessage(int53 chat_id_, object_ptr<MessageSender> &&sender_id_, int53 reply_to_message_id_, bool disable_notification_, object_ptr<InputMessageContent> &&input_message_content_) + : chat_id_(chat_id_) + , sender_id_(std::move(sender_id_)) + , reply_to_message_id_(reply_to_message_id_) + , disable_notification_(disable_notification_) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t addLocalMessage::ID; + +void addLocalMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addLocalMessage"); + s.store_field("chat_id", chat_id_); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_field("reply_to_message_id", reply_to_message_id_); + s.store_field("disable_notification", disable_notification_); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +addLogMessage::addLogMessage() + : verbosity_level_() + , text_() +{} + +addLogMessage::addLogMessage(int32 verbosity_level_, string const &text_) + : verbosity_level_(verbosity_level_) + , text_(text_) +{} + +const std::int32_t addLogMessage::ID; + +void addLogMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addLogMessage"); + s.store_field("verbosity_level", verbosity_level_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +addMessageReaction::addMessageReaction() + : chat_id_() + , message_id_() + , reaction_type_() + , is_big_() + , update_recent_reactions_() +{} + +addMessageReaction::addMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, bool is_big_, bool update_recent_reactions_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reaction_type_(std::move(reaction_type_)) + , is_big_(is_big_) + , update_recent_reactions_(update_recent_reactions_) +{} + +const std::int32_t addMessageReaction::ID; + +void addMessageReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addMessageReaction"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get())); + s.store_field("is_big", is_big_); + s.store_field("update_recent_reactions", update_recent_reactions_); + s.store_class_end(); + } +} + +addNetworkStatistics::addNetworkStatistics() + : entry_() +{} + +addNetworkStatistics::addNetworkStatistics(object_ptr<NetworkStatisticsEntry> &&entry_) + : entry_(std::move(entry_)) +{} + +const std::int32_t addNetworkStatistics::ID; + +void addNetworkStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addNetworkStatistics"); + s.store_object_field("entry", static_cast<const BaseObject *>(entry_.get())); + s.store_class_end(); + } +} + +addProxy::addProxy() + : server_() + , port_() + , enable_() + , type_() +{} + +addProxy::addProxy(string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_) + : server_(server_) + , port_(port_) + , enable_(enable_) + , type_(std::move(type_)) +{} + +const std::int32_t addProxy::ID; + +void addProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addProxy"); + s.store_field("server", server_); + s.store_field("port", port_); + s.store_field("enable", enable_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +addRecentSticker::addRecentSticker() + : is_attached_() + , sticker_() +{} + +addRecentSticker::addRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_) + : is_attached_(is_attached_) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t addRecentSticker::ID; + +void addRecentSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addRecentSticker"); + s.store_field("is_attached", is_attached_); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +addRecentlyFoundChat::addRecentlyFoundChat() + : chat_id_() +{} + +addRecentlyFoundChat::addRecentlyFoundChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t addRecentlyFoundChat::ID; + +void addRecentlyFoundChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addRecentlyFoundChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +addSavedAnimation::addSavedAnimation() + : animation_() +{} + +addSavedAnimation::addSavedAnimation(object_ptr<InputFile> &&animation_) + : animation_(std::move(animation_)) +{} + +const std::int32_t addSavedAnimation::ID; + +void addSavedAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addSavedAnimation"); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_class_end(); + } +} + +addSavedNotificationSound::addSavedNotificationSound() + : sound_() +{} + +addSavedNotificationSound::addSavedNotificationSound(object_ptr<InputFile> &&sound_) + : sound_(std::move(sound_)) +{} + +const std::int32_t addSavedNotificationSound::ID; + +void addSavedNotificationSound::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addSavedNotificationSound"); + s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get())); + s.store_class_end(); + } +} + +addStickerToSet::addStickerToSet() + : user_id_() + , name_() + , sticker_() +{} + +addStickerToSet::addStickerToSet(int53 user_id_, string const &name_, object_ptr<inputSticker> &&sticker_) + : user_id_(user_id_) + , name_(name_) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t addStickerToSet::ID; + +void addStickerToSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "addStickerToSet"); + s.store_field("user_id", user_id_); + s.store_field("name", name_); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +answerCallbackQuery::answerCallbackQuery() + : callback_query_id_() + , text_() + , show_alert_() + , url_() + , cache_time_() +{} + +answerCallbackQuery::answerCallbackQuery(int64 callback_query_id_, string const &text_, bool show_alert_, string const &url_, int32 cache_time_) + : callback_query_id_(callback_query_id_) + , text_(text_) + , show_alert_(show_alert_) + , url_(url_) + , cache_time_(cache_time_) +{} + +const std::int32_t answerCallbackQuery::ID; + +void answerCallbackQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "answerCallbackQuery"); + s.store_field("callback_query_id", callback_query_id_); + s.store_field("text", text_); + s.store_field("show_alert", show_alert_); + s.store_field("url", url_); + s.store_field("cache_time", cache_time_); + s.store_class_end(); + } +} + +answerCustomQuery::answerCustomQuery() + : custom_query_id_() + , data_() +{} + +answerCustomQuery::answerCustomQuery(int64 custom_query_id_, string const &data_) + : custom_query_id_(custom_query_id_) + , data_(data_) +{} + +const std::int32_t answerCustomQuery::ID; + +void answerCustomQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "answerCustomQuery"); + s.store_field("custom_query_id", custom_query_id_); + s.store_field("data", data_); + s.store_class_end(); + } +} + +answerInlineQuery::answerInlineQuery() + : inline_query_id_() + , is_personal_() + , results_() + , cache_time_() + , next_offset_() + , switch_pm_text_() + , switch_pm_parameter_() +{} + +answerInlineQuery::answerInlineQuery(int64 inline_query_id_, bool is_personal_, array<object_ptr<InputInlineQueryResult>> &&results_, int32 cache_time_, string const &next_offset_, string const &switch_pm_text_, string const &switch_pm_parameter_) + : inline_query_id_(inline_query_id_) + , is_personal_(is_personal_) + , results_(std::move(results_)) + , cache_time_(cache_time_) + , next_offset_(next_offset_) + , switch_pm_text_(switch_pm_text_) + , switch_pm_parameter_(switch_pm_parameter_) +{} + +const std::int32_t answerInlineQuery::ID; + +void answerInlineQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "answerInlineQuery"); + s.store_field("inline_query_id", inline_query_id_); + s.store_field("is_personal", is_personal_); + { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("cache_time", cache_time_); + s.store_field("next_offset", next_offset_); + s.store_field("switch_pm_text", switch_pm_text_); + s.store_field("switch_pm_parameter", switch_pm_parameter_); + s.store_class_end(); + } +} + +answerPreCheckoutQuery::answerPreCheckoutQuery() + : pre_checkout_query_id_() + , error_message_() +{} + +answerPreCheckoutQuery::answerPreCheckoutQuery(int64 pre_checkout_query_id_, string const &error_message_) + : pre_checkout_query_id_(pre_checkout_query_id_) + , error_message_(error_message_) +{} + +const std::int32_t answerPreCheckoutQuery::ID; + +void answerPreCheckoutQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "answerPreCheckoutQuery"); + s.store_field("pre_checkout_query_id", pre_checkout_query_id_); + s.store_field("error_message", error_message_); + s.store_class_end(); + } +} + +answerShippingQuery::answerShippingQuery() + : shipping_query_id_() + , shipping_options_() + , error_message_() +{} + +answerShippingQuery::answerShippingQuery(int64 shipping_query_id_, array<object_ptr<shippingOption>> &&shipping_options_, string const &error_message_) + : shipping_query_id_(shipping_query_id_) + , shipping_options_(std::move(shipping_options_)) + , error_message_(error_message_) +{} + +const std::int32_t answerShippingQuery::ID; + +void answerShippingQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "answerShippingQuery"); + s.store_field("shipping_query_id", shipping_query_id_); + { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("error_message", error_message_); + s.store_class_end(); + } +} + +answerWebAppQuery::answerWebAppQuery() + : web_app_query_id_() + , result_() +{} + +answerWebAppQuery::answerWebAppQuery(string const &web_app_query_id_, object_ptr<InputInlineQueryResult> &&result_) + : web_app_query_id_(web_app_query_id_) + , result_(std::move(result_)) +{} + +const std::int32_t answerWebAppQuery::ID; + +void answerWebAppQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "answerWebAppQuery"); + s.store_field("web_app_query_id", web_app_query_id_); + s.store_object_field("result", static_cast<const BaseObject *>(result_.get())); + s.store_class_end(); + } +} + +assignAppStoreTransaction::assignAppStoreTransaction() + : receipt_() + , purpose_() +{} + +assignAppStoreTransaction::assignAppStoreTransaction(bytes const &receipt_, object_ptr<StorePaymentPurpose> &&purpose_) + : receipt_(std::move(receipt_)) + , purpose_(std::move(purpose_)) +{} + +const std::int32_t assignAppStoreTransaction::ID; + +void assignAppStoreTransaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "assignAppStoreTransaction"); + s.store_bytes_field("receipt", receipt_); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_class_end(); + } +} + +assignGooglePlayTransaction::assignGooglePlayTransaction() + : package_name_() + , store_product_id_() + , purchase_token_() + , purpose_() +{} + +assignGooglePlayTransaction::assignGooglePlayTransaction(string const &package_name_, string const &store_product_id_, string const &purchase_token_, object_ptr<StorePaymentPurpose> &&purpose_) + : package_name_(package_name_) + , store_product_id_(store_product_id_) + , purchase_token_(purchase_token_) + , purpose_(std::move(purpose_)) +{} + +const std::int32_t assignGooglePlayTransaction::ID; + +void assignGooglePlayTransaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "assignGooglePlayTransaction"); + s.store_field("package_name", package_name_); + s.store_field("store_product_id", store_product_id_); + s.store_field("purchase_token", purchase_token_); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_class_end(); + } +} + +banChatMember::banChatMember() + : chat_id_() + , member_id_() + , banned_until_date_() + , revoke_messages_() +{} + +banChatMember::banChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_, int32 banned_until_date_, bool revoke_messages_) + : chat_id_(chat_id_) + , member_id_(std::move(member_id_)) + , banned_until_date_(banned_until_date_) + , revoke_messages_(revoke_messages_) +{} + +const std::int32_t banChatMember::ID; + +void banChatMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "banChatMember"); + s.store_field("chat_id", chat_id_); + s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get())); + s.store_field("banned_until_date", banned_until_date_); + s.store_field("revoke_messages", revoke_messages_); + s.store_class_end(); + } +} + +blockMessageSenderFromReplies::blockMessageSenderFromReplies() + : message_id_() + , delete_message_() + , delete_all_messages_() + , report_spam_() +{} + +blockMessageSenderFromReplies::blockMessageSenderFromReplies(int53 message_id_, bool delete_message_, bool delete_all_messages_, bool report_spam_) + : message_id_(message_id_) + , delete_message_(delete_message_) + , delete_all_messages_(delete_all_messages_) + , report_spam_(report_spam_) +{} + +const std::int32_t blockMessageSenderFromReplies::ID; + +void blockMessageSenderFromReplies::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "blockMessageSenderFromReplies"); + s.store_field("message_id", message_id_); + s.store_field("delete_message", delete_message_); + s.store_field("delete_all_messages", delete_all_messages_); + s.store_field("report_spam", report_spam_); + s.store_class_end(); + } +} + +canPurchasePremium::canPurchasePremium() + : purpose_() +{} + +canPurchasePremium::canPurchasePremium(object_ptr<StorePaymentPurpose> &&purpose_) + : purpose_(std::move(purpose_)) +{} + +const std::int32_t canPurchasePremium::ID; + +void canPurchasePremium::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "canPurchasePremium"); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_class_end(); + } +} + +canTransferOwnership::canTransferOwnership() { +} + +const std::int32_t canTransferOwnership::ID; + +void canTransferOwnership::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "canTransferOwnership"); + s.store_class_end(); + } +} + +cancelDownloadFile::cancelDownloadFile() + : file_id_() + , only_if_pending_() +{} + +cancelDownloadFile::cancelDownloadFile(int32 file_id_, bool only_if_pending_) + : file_id_(file_id_) + , only_if_pending_(only_if_pending_) +{} + +const std::int32_t cancelDownloadFile::ID; + +void cancelDownloadFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "cancelDownloadFile"); + s.store_field("file_id", file_id_); + s.store_field("only_if_pending", only_if_pending_); + s.store_class_end(); + } +} + +cancelPasswordReset::cancelPasswordReset() { +} + +const std::int32_t cancelPasswordReset::ID; + +void cancelPasswordReset::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "cancelPasswordReset"); + s.store_class_end(); + } +} + +cancelPreliminaryUploadFile::cancelPreliminaryUploadFile() + : file_id_() +{} + +cancelPreliminaryUploadFile::cancelPreliminaryUploadFile(int32 file_id_) + : file_id_(file_id_) +{} + +const std::int32_t cancelPreliminaryUploadFile::ID; + +void cancelPreliminaryUploadFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "cancelPreliminaryUploadFile"); + s.store_field("file_id", file_id_); + s.store_class_end(); + } +} + +changeImportedContacts::changeImportedContacts() + : contacts_() +{} + +changeImportedContacts::changeImportedContacts(array<object_ptr<contact>> &&contacts_) + : contacts_(std::move(contacts_)) +{} + +const std::int32_t changeImportedContacts::ID; + +void changeImportedContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "changeImportedContacts"); + { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +changePhoneNumber::changePhoneNumber() + : phone_number_() + , settings_() +{} + +changePhoneNumber::changePhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_) + : phone_number_(phone_number_) + , settings_(std::move(settings_)) +{} + +const std::int32_t changePhoneNumber::ID; + +void changePhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "changePhoneNumber"); + s.store_field("phone_number", phone_number_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +changeStickerSet::changeStickerSet() + : set_id_() + , is_installed_() + , is_archived_() +{} + +changeStickerSet::changeStickerSet(int64 set_id_, bool is_installed_, bool is_archived_) + : set_id_(set_id_) + , is_installed_(is_installed_) + , is_archived_(is_archived_) +{} + +const std::int32_t changeStickerSet::ID; + +void changeStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "changeStickerSet"); + s.store_field("set_id", set_id_); + s.store_field("is_installed", is_installed_); + s.store_field("is_archived", is_archived_); + s.store_class_end(); + } +} + +checkAuthenticationBotToken::checkAuthenticationBotToken() + : token_() +{} + +checkAuthenticationBotToken::checkAuthenticationBotToken(string const &token_) + : token_(token_) +{} + +const std::int32_t checkAuthenticationBotToken::ID; + +void checkAuthenticationBotToken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkAuthenticationBotToken"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +checkAuthenticationCode::checkAuthenticationCode() + : code_() +{} + +checkAuthenticationCode::checkAuthenticationCode(string const &code_) + : code_(code_) +{} + +const std::int32_t checkAuthenticationCode::ID; + +void checkAuthenticationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkAuthenticationCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +checkAuthenticationEmailCode::checkAuthenticationEmailCode() + : code_() +{} + +checkAuthenticationEmailCode::checkAuthenticationEmailCode(object_ptr<EmailAddressAuthentication> &&code_) + : code_(std::move(code_)) +{} + +const std::int32_t checkAuthenticationEmailCode::ID; + +void checkAuthenticationEmailCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkAuthenticationEmailCode"); + s.store_object_field("code", static_cast<const BaseObject *>(code_.get())); + s.store_class_end(); + } +} + +checkAuthenticationPassword::checkAuthenticationPassword() + : password_() +{} + +checkAuthenticationPassword::checkAuthenticationPassword(string const &password_) + : password_(password_) +{} + +const std::int32_t checkAuthenticationPassword::ID; + +void checkAuthenticationPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkAuthenticationPassword"); + s.store_field("password", password_); + s.store_class_end(); + } +} + +checkAuthenticationPasswordRecoveryCode::checkAuthenticationPasswordRecoveryCode() + : recovery_code_() +{} + +checkAuthenticationPasswordRecoveryCode::checkAuthenticationPasswordRecoveryCode(string const &recovery_code_) + : recovery_code_(recovery_code_) +{} + +const std::int32_t checkAuthenticationPasswordRecoveryCode::ID; + +void checkAuthenticationPasswordRecoveryCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkAuthenticationPasswordRecoveryCode"); + s.store_field("recovery_code", recovery_code_); + s.store_class_end(); + } +} + +checkChangePhoneNumberCode::checkChangePhoneNumberCode() + : code_() +{} + +checkChangePhoneNumberCode::checkChangePhoneNumberCode(string const &code_) + : code_(code_) +{} + +const std::int32_t checkChangePhoneNumberCode::ID; + +void checkChangePhoneNumberCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChangePhoneNumberCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +checkChatInviteLink::checkChatInviteLink() + : invite_link_() +{} + +checkChatInviteLink::checkChatInviteLink(string const &invite_link_) + : invite_link_(invite_link_) +{} + +const std::int32_t checkChatInviteLink::ID; + +void checkChatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChatInviteLink"); + s.store_field("invite_link", invite_link_); + s.store_class_end(); + } +} + +checkChatUsername::checkChatUsername() + : chat_id_() + , username_() +{} + +checkChatUsername::checkChatUsername(int53 chat_id_, string const &username_) + : chat_id_(chat_id_) + , username_(username_) +{} + +const std::int32_t checkChatUsername::ID; + +void checkChatUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkChatUsername"); + s.store_field("chat_id", chat_id_); + s.store_field("username", username_); + s.store_class_end(); + } +} + +checkCreatedPublicChatsLimit::checkCreatedPublicChatsLimit() + : type_() +{} + +checkCreatedPublicChatsLimit::checkCreatedPublicChatsLimit(object_ptr<PublicChatType> &&type_) + : type_(std::move(type_)) +{} + +const std::int32_t checkCreatedPublicChatsLimit::ID; + +void checkCreatedPublicChatsLimit::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkCreatedPublicChatsLimit"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +checkEmailAddressVerificationCode::checkEmailAddressVerificationCode() + : code_() +{} + +checkEmailAddressVerificationCode::checkEmailAddressVerificationCode(string const &code_) + : code_(code_) +{} + +const std::int32_t checkEmailAddressVerificationCode::ID; + +void checkEmailAddressVerificationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkEmailAddressVerificationCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +checkLoginEmailAddressCode::checkLoginEmailAddressCode() + : code_() +{} + +checkLoginEmailAddressCode::checkLoginEmailAddressCode(object_ptr<EmailAddressAuthentication> &&code_) + : code_(std::move(code_)) +{} + +const std::int32_t checkLoginEmailAddressCode::ID; + +void checkLoginEmailAddressCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkLoginEmailAddressCode"); + s.store_object_field("code", static_cast<const BaseObject *>(code_.get())); + s.store_class_end(); + } +} + +checkPasswordRecoveryCode::checkPasswordRecoveryCode() + : recovery_code_() +{} + +checkPasswordRecoveryCode::checkPasswordRecoveryCode(string const &recovery_code_) + : recovery_code_(recovery_code_) +{} + +const std::int32_t checkPasswordRecoveryCode::ID; + +void checkPasswordRecoveryCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkPasswordRecoveryCode"); + s.store_field("recovery_code", recovery_code_); + s.store_class_end(); + } +} + +checkPhoneNumberConfirmationCode::checkPhoneNumberConfirmationCode() + : code_() +{} + +checkPhoneNumberConfirmationCode::checkPhoneNumberConfirmationCode(string const &code_) + : code_(code_) +{} + +const std::int32_t checkPhoneNumberConfirmationCode::ID; + +void checkPhoneNumberConfirmationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkPhoneNumberConfirmationCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +checkPhoneNumberVerificationCode::checkPhoneNumberVerificationCode() + : code_() +{} + +checkPhoneNumberVerificationCode::checkPhoneNumberVerificationCode(string const &code_) + : code_(code_) +{} + +const std::int32_t checkPhoneNumberVerificationCode::ID; + +void checkPhoneNumberVerificationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkPhoneNumberVerificationCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +checkRecoveryEmailAddressCode::checkRecoveryEmailAddressCode() + : code_() +{} + +checkRecoveryEmailAddressCode::checkRecoveryEmailAddressCode(string const &code_) + : code_(code_) +{} + +const std::int32_t checkRecoveryEmailAddressCode::ID; + +void checkRecoveryEmailAddressCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkRecoveryEmailAddressCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +checkStickerSetName::checkStickerSetName() + : name_() +{} + +checkStickerSetName::checkStickerSetName(string const &name_) + : name_(name_) +{} + +const std::int32_t checkStickerSetName::ID; + +void checkStickerSetName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "checkStickerSetName"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +cleanFileName::cleanFileName() + : file_name_() +{} + +cleanFileName::cleanFileName(string const &file_name_) + : file_name_(file_name_) +{} + +const std::int32_t cleanFileName::ID; + +void cleanFileName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "cleanFileName"); + s.store_field("file_name", file_name_); + s.store_class_end(); + } +} + +clearAllDraftMessages::clearAllDraftMessages() + : exclude_secret_chats_() +{} + +clearAllDraftMessages::clearAllDraftMessages(bool exclude_secret_chats_) + : exclude_secret_chats_(exclude_secret_chats_) +{} + +const std::int32_t clearAllDraftMessages::ID; + +void clearAllDraftMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clearAllDraftMessages"); + s.store_field("exclude_secret_chats", exclude_secret_chats_); + s.store_class_end(); + } +} + +clearImportedContacts::clearImportedContacts() { +} + +const std::int32_t clearImportedContacts::ID; + +void clearImportedContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clearImportedContacts"); + s.store_class_end(); + } +} + +clearRecentEmojiStatuses::clearRecentEmojiStatuses() { +} + +const std::int32_t clearRecentEmojiStatuses::ID; + +void clearRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clearRecentEmojiStatuses"); + s.store_class_end(); + } +} + +clearRecentReactions::clearRecentReactions() { +} + +const std::int32_t clearRecentReactions::ID; + +void clearRecentReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clearRecentReactions"); + s.store_class_end(); + } +} + +clearRecentStickers::clearRecentStickers() + : is_attached_() +{} + +clearRecentStickers::clearRecentStickers(bool is_attached_) + : is_attached_(is_attached_) +{} + +const std::int32_t clearRecentStickers::ID; + +void clearRecentStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clearRecentStickers"); + s.store_field("is_attached", is_attached_); + s.store_class_end(); + } +} + +clearRecentlyFoundChats::clearRecentlyFoundChats() { +} + +const std::int32_t clearRecentlyFoundChats::ID; + +void clearRecentlyFoundChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clearRecentlyFoundChats"); + s.store_class_end(); + } +} + +clickAnimatedEmojiMessage::clickAnimatedEmojiMessage() + : chat_id_() + , message_id_() +{} + +clickAnimatedEmojiMessage::clickAnimatedEmojiMessage(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t clickAnimatedEmojiMessage::ID; + +void clickAnimatedEmojiMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clickAnimatedEmojiMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +clickPremiumSubscriptionButton::clickPremiumSubscriptionButton() { +} + +const std::int32_t clickPremiumSubscriptionButton::ID; + +void clickPremiumSubscriptionButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "clickPremiumSubscriptionButton"); + s.store_class_end(); + } +} + +close::close() { +} + +const std::int32_t close::ID; + +void close::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "close"); + s.store_class_end(); + } +} + +closeChat::closeChat() + : chat_id_() +{} + +closeChat::closeChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t closeChat::ID; + +void closeChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "closeChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +closeSecretChat::closeSecretChat() + : secret_chat_id_() +{} + +closeSecretChat::closeSecretChat(int32 secret_chat_id_) + : secret_chat_id_(secret_chat_id_) +{} + +const std::int32_t closeSecretChat::ID; + +void closeSecretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "closeSecretChat"); + s.store_field("secret_chat_id", secret_chat_id_); + s.store_class_end(); + } +} + +closeWebApp::closeWebApp() + : web_app_launch_id_() +{} + +closeWebApp::closeWebApp(int64 web_app_launch_id_) + : web_app_launch_id_(web_app_launch_id_) +{} + +const std::int32_t closeWebApp::ID; + +void closeWebApp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "closeWebApp"); + s.store_field("web_app_launch_id", web_app_launch_id_); + s.store_class_end(); + } +} + +confirmQrCodeAuthentication::confirmQrCodeAuthentication() + : link_() +{} + +confirmQrCodeAuthentication::confirmQrCodeAuthentication(string const &link_) + : link_(link_) +{} + +const std::int32_t confirmQrCodeAuthentication::ID; + +void confirmQrCodeAuthentication::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "confirmQrCodeAuthentication"); + s.store_field("link", link_); + s.store_class_end(); + } +} + +createBasicGroupChat::createBasicGroupChat() + : basic_group_id_() + , force_() +{} + +createBasicGroupChat::createBasicGroupChat(int53 basic_group_id_, bool force_) + : basic_group_id_(basic_group_id_) + , force_(force_) +{} + +const std::int32_t createBasicGroupChat::ID; + +void createBasicGroupChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createBasicGroupChat"); + s.store_field("basic_group_id", basic_group_id_); + s.store_field("force", force_); + s.store_class_end(); + } +} + +createCall::createCall() + : user_id_() + , protocol_() + , is_video_() +{} + +createCall::createCall(int53 user_id_, object_ptr<callProtocol> &&protocol_, bool is_video_) + : user_id_(user_id_) + , protocol_(std::move(protocol_)) + , is_video_(is_video_) +{} + +const std::int32_t createCall::ID; + +void createCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createCall"); + s.store_field("user_id", user_id_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + s.store_field("is_video", is_video_); + s.store_class_end(); + } +} + +createChatFilter::createChatFilter() + : filter_() +{} + +createChatFilter::createChatFilter(object_ptr<chatFilter> &&filter_) + : filter_(std::move(filter_)) +{} + +const std::int32_t createChatFilter::ID; + +void createChatFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createChatFilter"); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_class_end(); + } +} + +createChatInviteLink::createChatInviteLink() + : chat_id_() + , name_() + , expiration_date_() + , member_limit_() + , creates_join_request_() +{} + +createChatInviteLink::createChatInviteLink(int53 chat_id_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_) + : chat_id_(chat_id_) + , name_(name_) + , expiration_date_(expiration_date_) + , member_limit_(member_limit_) + , creates_join_request_(creates_join_request_) +{} + +const std::int32_t createChatInviteLink::ID; + +void createChatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createChatInviteLink"); + s.store_field("chat_id", chat_id_); + s.store_field("name", name_); + s.store_field("expiration_date", expiration_date_); + s.store_field("member_limit", member_limit_); + s.store_field("creates_join_request", creates_join_request_); + s.store_class_end(); + } +} + +createForumTopic::createForumTopic() + : chat_id_() + , name_() + , icon_() +{} + +createForumTopic::createForumTopic(int53 chat_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_) + : chat_id_(chat_id_) + , name_(name_) + , icon_(std::move(icon_)) +{} + +const std::int32_t createForumTopic::ID; + +void createForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createForumTopic"); + s.store_field("chat_id", chat_id_); + s.store_field("name", name_); + s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get())); + s.store_class_end(); + } +} + +createInvoiceLink::createInvoiceLink() + : invoice_() +{} + +createInvoiceLink::createInvoiceLink(object_ptr<InputMessageContent> &&invoice_) + : invoice_(std::move(invoice_)) +{} + +const std::int32_t createInvoiceLink::ID; + +void createInvoiceLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createInvoiceLink"); + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_class_end(); + } +} + +createNewBasicGroupChat::createNewBasicGroupChat() + : user_ids_() + , title_() +{} + +createNewBasicGroupChat::createNewBasicGroupChat(array<int53> &&user_ids_, string const &title_) + : user_ids_(std::move(user_ids_)) + , title_(title_) +{} + +const std::int32_t createNewBasicGroupChat::ID; + +void createNewBasicGroupChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createNewBasicGroupChat"); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("title", title_); + s.store_class_end(); + } +} + +createNewSecretChat::createNewSecretChat() + : user_id_() +{} + +createNewSecretChat::createNewSecretChat(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t createNewSecretChat::ID; + +void createNewSecretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createNewSecretChat"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +createNewStickerSet::createNewStickerSet() + : user_id_() + , title_() + , name_() + , sticker_type_() + , stickers_() + , source_() +{} + +createNewStickerSet::createNewStickerSet(int53 user_id_, string const &title_, string const &name_, object_ptr<StickerType> &&sticker_type_, array<object_ptr<inputSticker>> &&stickers_, string const &source_) + : user_id_(user_id_) + , title_(title_) + , name_(name_) + , sticker_type_(std::move(sticker_type_)) + , stickers_(std::move(stickers_)) + , source_(source_) +{} + +const std::int32_t createNewStickerSet::ID; + +void createNewStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createNewStickerSet"); + s.store_field("user_id", user_id_); + s.store_field("title", title_); + s.store_field("name", name_); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("source", source_); + s.store_class_end(); + } +} + +createNewSupergroupChat::createNewSupergroupChat() + : title_() + , is_channel_() + , description_() + , location_() + , for_import_() +{} + +createNewSupergroupChat::createNewSupergroupChat(string const &title_, bool is_channel_, string const &description_, object_ptr<chatLocation> &&location_, bool for_import_) + : title_(title_) + , is_channel_(is_channel_) + , description_(description_) + , location_(std::move(location_)) + , for_import_(for_import_) +{} + +const std::int32_t createNewSupergroupChat::ID; + +void createNewSupergroupChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createNewSupergroupChat"); + s.store_field("title", title_); + s.store_field("is_channel", is_channel_); + s.store_field("description", description_); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("for_import", for_import_); + s.store_class_end(); + } +} + +createPrivateChat::createPrivateChat() + : user_id_() + , force_() +{} + +createPrivateChat::createPrivateChat(int53 user_id_, bool force_) + : user_id_(user_id_) + , force_(force_) +{} + +const std::int32_t createPrivateChat::ID; + +void createPrivateChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createPrivateChat"); + s.store_field("user_id", user_id_); + s.store_field("force", force_); + s.store_class_end(); + } +} + +createSecretChat::createSecretChat() + : secret_chat_id_() +{} + +createSecretChat::createSecretChat(int32 secret_chat_id_) + : secret_chat_id_(secret_chat_id_) +{} + +const std::int32_t createSecretChat::ID; + +void createSecretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createSecretChat"); + s.store_field("secret_chat_id", secret_chat_id_); + s.store_class_end(); + } +} + +createSupergroupChat::createSupergroupChat() + : supergroup_id_() + , force_() +{} + +createSupergroupChat::createSupergroupChat(int53 supergroup_id_, bool force_) + : supergroup_id_(supergroup_id_) + , force_(force_) +{} + +const std::int32_t createSupergroupChat::ID; + +void createSupergroupChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createSupergroupChat"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("force", force_); + s.store_class_end(); + } +} + +createTemporaryPassword::createTemporaryPassword() + : password_() + , valid_for_() +{} + +createTemporaryPassword::createTemporaryPassword(string const &password_, int32 valid_for_) + : password_(password_) + , valid_for_(valid_for_) +{} + +const std::int32_t createTemporaryPassword::ID; + +void createTemporaryPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createTemporaryPassword"); + s.store_field("password", password_); + s.store_field("valid_for", valid_for_); + s.store_class_end(); + } +} + +createVideoChat::createVideoChat() + : chat_id_() + , title_() + , start_date_() + , is_rtmp_stream_() +{} + +createVideoChat::createVideoChat(int53 chat_id_, string const &title_, int32 start_date_, bool is_rtmp_stream_) + : chat_id_(chat_id_) + , title_(title_) + , start_date_(start_date_) + , is_rtmp_stream_(is_rtmp_stream_) +{} + +const std::int32_t createVideoChat::ID; + +void createVideoChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "createVideoChat"); + s.store_field("chat_id", chat_id_); + s.store_field("title", title_); + s.store_field("start_date", start_date_); + s.store_field("is_rtmp_stream", is_rtmp_stream_); + s.store_class_end(); + } +} + +deleteAccount::deleteAccount() + : reason_() + , password_() +{} + +deleteAccount::deleteAccount(string const &reason_, string const &password_) + : reason_(reason_) + , password_(password_) +{} + +const std::int32_t deleteAccount::ID; + +void deleteAccount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteAccount"); + s.store_field("reason", reason_); + s.store_field("password", password_); + s.store_class_end(); + } +} + +deleteAllCallMessages::deleteAllCallMessages() + : revoke_() +{} + +deleteAllCallMessages::deleteAllCallMessages(bool revoke_) + : revoke_(revoke_) +{} + +const std::int32_t deleteAllCallMessages::ID; + +void deleteAllCallMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteAllCallMessages"); + s.store_field("revoke", revoke_); + s.store_class_end(); + } +} + +deleteAllRevokedChatInviteLinks::deleteAllRevokedChatInviteLinks() + : chat_id_() + , creator_user_id_() +{} + +deleteAllRevokedChatInviteLinks::deleteAllRevokedChatInviteLinks(int53 chat_id_, int53 creator_user_id_) + : chat_id_(chat_id_) + , creator_user_id_(creator_user_id_) +{} + +const std::int32_t deleteAllRevokedChatInviteLinks::ID; + +void deleteAllRevokedChatInviteLinks::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteAllRevokedChatInviteLinks"); + s.store_field("chat_id", chat_id_); + s.store_field("creator_user_id", creator_user_id_); + s.store_class_end(); + } +} + +deleteChat::deleteChat() + : chat_id_() +{} + +deleteChat::deleteChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t deleteChat::ID; + +void deleteChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +deleteChatFilter::deleteChatFilter() + : chat_filter_id_() +{} + +deleteChatFilter::deleteChatFilter(int32 chat_filter_id_) + : chat_filter_id_(chat_filter_id_) +{} + +const std::int32_t deleteChatFilter::ID; + +void deleteChatFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteChatFilter"); + s.store_field("chat_filter_id", chat_filter_id_); + s.store_class_end(); + } +} + +deleteChatHistory::deleteChatHistory() + : chat_id_() + , remove_from_chat_list_() + , revoke_() +{} + +deleteChatHistory::deleteChatHistory(int53 chat_id_, bool remove_from_chat_list_, bool revoke_) + : chat_id_(chat_id_) + , remove_from_chat_list_(remove_from_chat_list_) + , revoke_(revoke_) +{} + +const std::int32_t deleteChatHistory::ID; + +void deleteChatHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteChatHistory"); + s.store_field("chat_id", chat_id_); + s.store_field("remove_from_chat_list", remove_from_chat_list_); + s.store_field("revoke", revoke_); + s.store_class_end(); + } +} + +deleteChatMessagesByDate::deleteChatMessagesByDate() + : chat_id_() + , min_date_() + , max_date_() + , revoke_() +{} + +deleteChatMessagesByDate::deleteChatMessagesByDate(int53 chat_id_, int32 min_date_, int32 max_date_, bool revoke_) + : chat_id_(chat_id_) + , min_date_(min_date_) + , max_date_(max_date_) + , revoke_(revoke_) +{} + +const std::int32_t deleteChatMessagesByDate::ID; + +void deleteChatMessagesByDate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteChatMessagesByDate"); + s.store_field("chat_id", chat_id_); + s.store_field("min_date", min_date_); + s.store_field("max_date", max_date_); + s.store_field("revoke", revoke_); + s.store_class_end(); + } +} + +deleteChatMessagesBySender::deleteChatMessagesBySender() + : chat_id_() + , sender_id_() +{} + +deleteChatMessagesBySender::deleteChatMessagesBySender(int53 chat_id_, object_ptr<MessageSender> &&sender_id_) + : chat_id_(chat_id_) + , sender_id_(std::move(sender_id_)) +{} + +const std::int32_t deleteChatMessagesBySender::ID; + +void deleteChatMessagesBySender::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteChatMessagesBySender"); + s.store_field("chat_id", chat_id_); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_class_end(); + } +} + +deleteChatReplyMarkup::deleteChatReplyMarkup() + : chat_id_() + , message_id_() +{} + +deleteChatReplyMarkup::deleteChatReplyMarkup(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t deleteChatReplyMarkup::ID; + +void deleteChatReplyMarkup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteChatReplyMarkup"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +deleteCommands::deleteCommands() + : scope_() + , language_code_() +{} + +deleteCommands::deleteCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_) + : scope_(std::move(scope_)) + , language_code_(language_code_) +{} + +const std::int32_t deleteCommands::ID; + +void deleteCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteCommands"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_field("language_code", language_code_); + s.store_class_end(); + } +} + +deleteFile::deleteFile() + : file_id_() +{} + +deleteFile::deleteFile(int32 file_id_) + : file_id_(file_id_) +{} + +const std::int32_t deleteFile::ID; + +void deleteFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteFile"); + s.store_field("file_id", file_id_); + s.store_class_end(); + } +} + +deleteForumTopic::deleteForumTopic() + : chat_id_() + , message_thread_id_() +{} + +deleteForumTopic::deleteForumTopic(int53 chat_id_, int53 message_thread_id_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) +{} + +const std::int32_t deleteForumTopic::ID; + +void deleteForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteForumTopic"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +deleteLanguagePack::deleteLanguagePack() + : language_pack_id_() +{} + +deleteLanguagePack::deleteLanguagePack(string const &language_pack_id_) + : language_pack_id_(language_pack_id_) +{} + +const std::int32_t deleteLanguagePack::ID; + +void deleteLanguagePack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteLanguagePack"); + s.store_field("language_pack_id", language_pack_id_); + s.store_class_end(); + } +} + +deleteMessages::deleteMessages() + : chat_id_() + , message_ids_() + , revoke_() +{} + +deleteMessages::deleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool revoke_) + : chat_id_(chat_id_) + , message_ids_(std::move(message_ids_)) + , revoke_(revoke_) +{} + +const std::int32_t deleteMessages::ID; + +void deleteMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteMessages"); + s.store_field("chat_id", chat_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("revoke", revoke_); + s.store_class_end(); + } +} + +deletePassportElement::deletePassportElement() + : type_() +{} + +deletePassportElement::deletePassportElement(object_ptr<PassportElementType> &&type_) + : type_(std::move(type_)) +{} + +const std::int32_t deletePassportElement::ID; + +void deletePassportElement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deletePassportElement"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +deleteProfilePhoto::deleteProfilePhoto() + : profile_photo_id_() +{} + +deleteProfilePhoto::deleteProfilePhoto(int64 profile_photo_id_) + : profile_photo_id_(profile_photo_id_) +{} + +const std::int32_t deleteProfilePhoto::ID; + +void deleteProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteProfilePhoto"); + s.store_field("profile_photo_id", profile_photo_id_); + s.store_class_end(); + } +} + +deleteRevokedChatInviteLink::deleteRevokedChatInviteLink() + : chat_id_() + , invite_link_() +{} + +deleteRevokedChatInviteLink::deleteRevokedChatInviteLink(int53 chat_id_, string const &invite_link_) + : chat_id_(chat_id_) + , invite_link_(invite_link_) +{} + +const std::int32_t deleteRevokedChatInviteLink::ID; + +void deleteRevokedChatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteRevokedChatInviteLink"); + s.store_field("chat_id", chat_id_); + s.store_field("invite_link", invite_link_); + s.store_class_end(); + } +} + +deleteSavedCredentials::deleteSavedCredentials() { +} + +const std::int32_t deleteSavedCredentials::ID; + +void deleteSavedCredentials::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteSavedCredentials"); + s.store_class_end(); + } +} + +deleteSavedOrderInfo::deleteSavedOrderInfo() { +} + +const std::int32_t deleteSavedOrderInfo::ID; + +void deleteSavedOrderInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "deleteSavedOrderInfo"); + s.store_class_end(); + } +} + +destroy::destroy() { +} + +const std::int32_t destroy::ID; + +void destroy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "destroy"); + s.store_class_end(); + } +} + +disableAllSupergroupUsernames::disableAllSupergroupUsernames() + : supergroup_id_() +{} + +disableAllSupergroupUsernames::disableAllSupergroupUsernames(int53 supergroup_id_) + : supergroup_id_(supergroup_id_) +{} + +const std::int32_t disableAllSupergroupUsernames::ID; + +void disableAllSupergroupUsernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "disableAllSupergroupUsernames"); + s.store_field("supergroup_id", supergroup_id_); + s.store_class_end(); + } +} + +disableProxy::disableProxy() { +} + +const std::int32_t disableProxy::ID; + +void disableProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "disableProxy"); + s.store_class_end(); + } +} + +discardCall::discardCall() + : call_id_() + , is_disconnected_() + , duration_() + , is_video_() + , connection_id_() +{} + +discardCall::discardCall(int32 call_id_, bool is_disconnected_, int32 duration_, bool is_video_, int64 connection_id_) + : call_id_(call_id_) + , is_disconnected_(is_disconnected_) + , duration_(duration_) + , is_video_(is_video_) + , connection_id_(connection_id_) +{} + +const std::int32_t discardCall::ID; + +void discardCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "discardCall"); + s.store_field("call_id", call_id_); + s.store_field("is_disconnected", is_disconnected_); + s.store_field("duration", duration_); + s.store_field("is_video", is_video_); + s.store_field("connection_id", connection_id_); + s.store_class_end(); + } +} + +disconnectAllWebsites::disconnectAllWebsites() { +} + +const std::int32_t disconnectAllWebsites::ID; + +void disconnectAllWebsites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "disconnectAllWebsites"); + s.store_class_end(); + } +} + +disconnectWebsite::disconnectWebsite() + : website_id_() +{} + +disconnectWebsite::disconnectWebsite(int64 website_id_) + : website_id_(website_id_) +{} + +const std::int32_t disconnectWebsite::ID; + +void disconnectWebsite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "disconnectWebsite"); + s.store_field("website_id", website_id_); + s.store_class_end(); + } +} + +downloadFile::downloadFile() + : file_id_() + , priority_() + , offset_() + , limit_() + , synchronous_() +{} + +downloadFile::downloadFile(int32 file_id_, int32 priority_, int53 offset_, int53 limit_, bool synchronous_) + : file_id_(file_id_) + , priority_(priority_) + , offset_(offset_) + , limit_(limit_) + , synchronous_(synchronous_) +{} + +const std::int32_t downloadFile::ID; + +void downloadFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "downloadFile"); + s.store_field("file_id", file_id_); + s.store_field("priority", priority_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_field("synchronous", synchronous_); + s.store_class_end(); + } +} + +editChatFilter::editChatFilter() + : chat_filter_id_() + , filter_() +{} + +editChatFilter::editChatFilter(int32 chat_filter_id_, object_ptr<chatFilter> &&filter_) + : chat_filter_id_(chat_filter_id_) + , filter_(std::move(filter_)) +{} + +const std::int32_t editChatFilter::ID; + +void editChatFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editChatFilter"); + s.store_field("chat_filter_id", chat_filter_id_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_class_end(); + } +} + +editChatInviteLink::editChatInviteLink() + : chat_id_() + , invite_link_() + , name_() + , expiration_date_() + , member_limit_() + , creates_join_request_() +{} + +editChatInviteLink::editChatInviteLink(int53 chat_id_, string const &invite_link_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_) + : chat_id_(chat_id_) + , invite_link_(invite_link_) + , name_(name_) + , expiration_date_(expiration_date_) + , member_limit_(member_limit_) + , creates_join_request_(creates_join_request_) +{} + +const std::int32_t editChatInviteLink::ID; + +void editChatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editChatInviteLink"); + s.store_field("chat_id", chat_id_); + s.store_field("invite_link", invite_link_); + s.store_field("name", name_); + s.store_field("expiration_date", expiration_date_); + s.store_field("member_limit", member_limit_); + s.store_field("creates_join_request", creates_join_request_); + s.store_class_end(); + } +} + +editCustomLanguagePackInfo::editCustomLanguagePackInfo() + : info_() +{} + +editCustomLanguagePackInfo::editCustomLanguagePackInfo(object_ptr<languagePackInfo> &&info_) + : info_(std::move(info_)) +{} + +const std::int32_t editCustomLanguagePackInfo::ID; + +void editCustomLanguagePackInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editCustomLanguagePackInfo"); + s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); + s.store_class_end(); + } +} + +editForumTopic::editForumTopic() + : chat_id_() + , message_thread_id_() + , name_() + , icon_custom_emoji_id_() +{} + +editForumTopic::editForumTopic(int53 chat_id_, int53 message_thread_id_, string const &name_, int64 icon_custom_emoji_id_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , name_(name_) + , icon_custom_emoji_id_(icon_custom_emoji_id_) +{} + +const std::int32_t editForumTopic::ID; + +void editForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editForumTopic"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("name", name_); + s.store_field("icon_custom_emoji_id", icon_custom_emoji_id_); + s.store_class_end(); + } +} + +editInlineMessageCaption::editInlineMessageCaption() + : inline_message_id_() + , reply_markup_() + , caption_() +{} + +editInlineMessageCaption::editInlineMessageCaption(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_) + : inline_message_id_(inline_message_id_) + , reply_markup_(std::move(reply_markup_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t editInlineMessageCaption::ID; + +void editInlineMessageCaption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editInlineMessageCaption"); + s.store_field("inline_message_id", inline_message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +editInlineMessageLiveLocation::editInlineMessageLiveLocation() + : inline_message_id_() + , reply_markup_() + , location_() + , heading_() + , proximity_alert_radius_() +{} + +editInlineMessageLiveLocation::editInlineMessageLiveLocation(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_) + : inline_message_id_(inline_message_id_) + , reply_markup_(std::move(reply_markup_)) + , location_(std::move(location_)) + , heading_(heading_) + , proximity_alert_radius_(proximity_alert_radius_) +{} + +const std::int32_t editInlineMessageLiveLocation::ID; + +void editInlineMessageLiveLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editInlineMessageLiveLocation"); + s.store_field("inline_message_id", inline_message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("heading", heading_); + s.store_field("proximity_alert_radius", proximity_alert_radius_); + s.store_class_end(); + } +} + +editInlineMessageMedia::editInlineMessageMedia() + : inline_message_id_() + , reply_markup_() + , input_message_content_() +{} + +editInlineMessageMedia::editInlineMessageMedia(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : inline_message_id_(inline_message_id_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t editInlineMessageMedia::ID; + +void editInlineMessageMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editInlineMessageMedia"); + s.store_field("inline_message_id", inline_message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +editInlineMessageReplyMarkup::editInlineMessageReplyMarkup() + : inline_message_id_() + , reply_markup_() +{} + +editInlineMessageReplyMarkup::editInlineMessageReplyMarkup(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_) + : inline_message_id_(inline_message_id_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t editInlineMessageReplyMarkup::ID; + +void editInlineMessageReplyMarkup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editInlineMessageReplyMarkup"); + s.store_field("inline_message_id", inline_message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_class_end(); + } +} + +editInlineMessageText::editInlineMessageText() + : inline_message_id_() + , reply_markup_() + , input_message_content_() +{} + +editInlineMessageText::editInlineMessageText(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : inline_message_id_(inline_message_id_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t editInlineMessageText::ID; + +void editInlineMessageText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editInlineMessageText"); + s.store_field("inline_message_id", inline_message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +editMessageCaption::editMessageCaption() + : chat_id_() + , message_id_() + , reply_markup_() + , caption_() +{} + +editMessageCaption::editMessageCaption(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reply_markup_(std::move(reply_markup_)) + , caption_(std::move(caption_)) +{} + +const std::int32_t editMessageCaption::ID; + +void editMessageCaption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editMessageCaption"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +editMessageLiveLocation::editMessageLiveLocation() + : chat_id_() + , message_id_() + , reply_markup_() + , location_() + , heading_() + , proximity_alert_radius_() +{} + +editMessageLiveLocation::editMessageLiveLocation(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reply_markup_(std::move(reply_markup_)) + , location_(std::move(location_)) + , heading_(heading_) + , proximity_alert_radius_(proximity_alert_radius_) +{} + +const std::int32_t editMessageLiveLocation::ID; + +void editMessageLiveLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editMessageLiveLocation"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("heading", heading_); + s.store_field("proximity_alert_radius", proximity_alert_radius_); + s.store_class_end(); + } +} + +editMessageMedia::editMessageMedia() + : chat_id_() + , message_id_() + , reply_markup_() + , input_message_content_() +{} + +editMessageMedia::editMessageMedia(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t editMessageMedia::ID; + +void editMessageMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editMessageMedia"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +editMessageReplyMarkup::editMessageReplyMarkup() + : chat_id_() + , message_id_() + , reply_markup_() +{} + +editMessageReplyMarkup::editMessageReplyMarkup(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t editMessageReplyMarkup::ID; + +void editMessageReplyMarkup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editMessageReplyMarkup"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_class_end(); + } +} + +editMessageSchedulingState::editMessageSchedulingState() + : chat_id_() + , message_id_() + , scheduling_state_() +{} + +editMessageSchedulingState::editMessageSchedulingState(int53 chat_id_, int53 message_id_, object_ptr<MessageSchedulingState> &&scheduling_state_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , scheduling_state_(std::move(scheduling_state_)) +{} + +const std::int32_t editMessageSchedulingState::ID; + +void editMessageSchedulingState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editMessageSchedulingState"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("scheduling_state", static_cast<const BaseObject *>(scheduling_state_.get())); + s.store_class_end(); + } +} + +editMessageText::editMessageText() + : chat_id_() + , message_id_() + , reply_markup_() + , input_message_content_() +{} + +editMessageText::editMessageText(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t editMessageText::ID; + +void editMessageText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editMessageText"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +editProxy::editProxy() + : proxy_id_() + , server_() + , port_() + , enable_() + , type_() +{} + +editProxy::editProxy(int32 proxy_id_, string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_) + : proxy_id_(proxy_id_) + , server_(server_) + , port_(port_) + , enable_(enable_) + , type_(std::move(type_)) +{} + +const std::int32_t editProxy::ID; + +void editProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "editProxy"); + s.store_field("proxy_id", proxy_id_); + s.store_field("server", server_); + s.store_field("port", port_); + s.store_field("enable", enable_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +enableProxy::enableProxy() + : proxy_id_() +{} + +enableProxy::enableProxy(int32 proxy_id_) + : proxy_id_(proxy_id_) +{} + +const std::int32_t enableProxy::ID; + +void enableProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "enableProxy"); + s.store_field("proxy_id", proxy_id_); + s.store_class_end(); + } +} + +endGroupCall::endGroupCall() + : group_call_id_() +{} + +endGroupCall::endGroupCall(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t endGroupCall::ID; + +void endGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "endGroupCall"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +endGroupCallRecording::endGroupCallRecording() + : group_call_id_() +{} + +endGroupCallRecording::endGroupCallRecording(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t endGroupCallRecording::ID; + +void endGroupCallRecording::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "endGroupCallRecording"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +endGroupCallScreenSharing::endGroupCallScreenSharing() + : group_call_id_() +{} + +endGroupCallScreenSharing::endGroupCallScreenSharing(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t endGroupCallScreenSharing::ID; + +void endGroupCallScreenSharing::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "endGroupCallScreenSharing"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +finishFileGeneration::finishFileGeneration() + : generation_id_() + , error_() +{} + +finishFileGeneration::finishFileGeneration(int64 generation_id_, object_ptr<error> &&error_) + : generation_id_(generation_id_) + , error_(std::move(error_)) +{} + +const std::int32_t finishFileGeneration::ID; + +void finishFileGeneration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "finishFileGeneration"); + s.store_field("generation_id", generation_id_); + s.store_object_field("error", static_cast<const BaseObject *>(error_.get())); + s.store_class_end(); + } +} + +forwardMessages::forwardMessages() + : chat_id_() + , message_thread_id_() + , from_chat_id_() + , message_ids_() + , options_() + , send_copy_() + , remove_caption_() + , only_preview_() +{} + +forwardMessages::forwardMessages(int53 chat_id_, int53 message_thread_id_, int53 from_chat_id_, array<int53> &&message_ids_, object_ptr<messageSendOptions> &&options_, bool send_copy_, bool remove_caption_, bool only_preview_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , from_chat_id_(from_chat_id_) + , message_ids_(std::move(message_ids_)) + , options_(std::move(options_)) + , send_copy_(send_copy_) + , remove_caption_(remove_caption_) + , only_preview_(only_preview_) +{} + +const std::int32_t forwardMessages::ID; + +void forwardMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "forwardMessages"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("from_chat_id", from_chat_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_object_field("options", static_cast<const BaseObject *>(options_.get())); + s.store_field("send_copy", send_copy_); + s.store_field("remove_caption", remove_caption_); + s.store_field("only_preview", only_preview_); + s.store_class_end(); + } +} + +getAccountTtl::getAccountTtl() { +} + +const std::int32_t getAccountTtl::ID; + +void getAccountTtl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getAccountTtl"); + s.store_class_end(); + } +} + +getActiveLiveLocationMessages::getActiveLiveLocationMessages() { +} + +const std::int32_t getActiveLiveLocationMessages::ID; + +void getActiveLiveLocationMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getActiveLiveLocationMessages"); + s.store_class_end(); + } +} + +getActiveSessions::getActiveSessions() { +} + +const std::int32_t getActiveSessions::ID; + +void getActiveSessions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getActiveSessions"); + s.store_class_end(); + } +} + +getAllPassportElements::getAllPassportElements() + : password_() +{} + +getAllPassportElements::getAllPassportElements(string const &password_) + : password_(password_) +{} + +const std::int32_t getAllPassportElements::ID; + +void getAllPassportElements::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getAllPassportElements"); + s.store_field("password", password_); + s.store_class_end(); + } +} + +getAnimatedEmoji::getAnimatedEmoji() + : emoji_() +{} + +getAnimatedEmoji::getAnimatedEmoji(string const &emoji_) + : emoji_(emoji_) +{} + +const std::int32_t getAnimatedEmoji::ID; + +void getAnimatedEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getAnimatedEmoji"); + s.store_field("emoji", emoji_); + s.store_class_end(); + } +} + +getApplicationConfig::getApplicationConfig() { +} + +const std::int32_t getApplicationConfig::ID; + +void getApplicationConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getApplicationConfig"); + s.store_class_end(); + } +} + +getApplicationDownloadLink::getApplicationDownloadLink() { +} + +const std::int32_t getApplicationDownloadLink::ID; + +void getApplicationDownloadLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getApplicationDownloadLink"); + s.store_class_end(); + } +} + +getArchivedStickerSets::getArchivedStickerSets() + : sticker_type_() + , offset_sticker_set_id_() + , limit_() +{} + +getArchivedStickerSets::getArchivedStickerSets(object_ptr<StickerType> &&sticker_type_, int64 offset_sticker_set_id_, int32 limit_) + : sticker_type_(std::move(sticker_type_)) + , offset_sticker_set_id_(offset_sticker_set_id_) + , limit_(limit_) +{} + +const std::int32_t getArchivedStickerSets::ID; + +void getArchivedStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getArchivedStickerSets"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_field("offset_sticker_set_id", offset_sticker_set_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getAttachedStickerSets::getAttachedStickerSets() + : file_id_() +{} + +getAttachedStickerSets::getAttachedStickerSets(int32 file_id_) + : file_id_(file_id_) +{} + +const std::int32_t getAttachedStickerSets::ID; + +void getAttachedStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getAttachedStickerSets"); + s.store_field("file_id", file_id_); + s.store_class_end(); + } +} + +getAttachmentMenuBot::getAttachmentMenuBot() + : bot_user_id_() +{} + +getAttachmentMenuBot::getAttachmentMenuBot(int53 bot_user_id_) + : bot_user_id_(bot_user_id_) +{} + +const std::int32_t getAttachmentMenuBot::ID; + +void getAttachmentMenuBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getAttachmentMenuBot"); + s.store_field("bot_user_id", bot_user_id_); + s.store_class_end(); + } +} + +getAuthorizationState::getAuthorizationState() { +} + +const std::int32_t getAuthorizationState::ID; + +void getAuthorizationState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getAuthorizationState"); + s.store_class_end(); + } +} + +getAutoDownloadSettingsPresets::getAutoDownloadSettingsPresets() { +} + +const std::int32_t getAutoDownloadSettingsPresets::ID; + +void getAutoDownloadSettingsPresets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getAutoDownloadSettingsPresets"); + s.store_class_end(); + } +} + +getBackgroundUrl::getBackgroundUrl() + : name_() + , type_() +{} + +getBackgroundUrl::getBackgroundUrl(string const &name_, object_ptr<BackgroundType> &&type_) + : name_(name_) + , type_(std::move(type_)) +{} + +const std::int32_t getBackgroundUrl::ID; + +void getBackgroundUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getBackgroundUrl"); + s.store_field("name", name_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +getBackgrounds::getBackgrounds() + : for_dark_theme_() +{} + +getBackgrounds::getBackgrounds(bool for_dark_theme_) + : for_dark_theme_(for_dark_theme_) +{} + +const std::int32_t getBackgrounds::ID; + +void getBackgrounds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getBackgrounds"); + s.store_field("for_dark_theme", for_dark_theme_); + s.store_class_end(); + } +} + +getBankCardInfo::getBankCardInfo() + : bank_card_number_() +{} + +getBankCardInfo::getBankCardInfo(string const &bank_card_number_) + : bank_card_number_(bank_card_number_) +{} + +const std::int32_t getBankCardInfo::ID; + +void getBankCardInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getBankCardInfo"); + s.store_field("bank_card_number", bank_card_number_); + s.store_class_end(); + } +} + +getBasicGroup::getBasicGroup() + : basic_group_id_() +{} + +getBasicGroup::getBasicGroup(int53 basic_group_id_) + : basic_group_id_(basic_group_id_) +{} + +const std::int32_t getBasicGroup::ID; + +void getBasicGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getBasicGroup"); + s.store_field("basic_group_id", basic_group_id_); + s.store_class_end(); + } +} + +getBasicGroupFullInfo::getBasicGroupFullInfo() + : basic_group_id_() +{} + +getBasicGroupFullInfo::getBasicGroupFullInfo(int53 basic_group_id_) + : basic_group_id_(basic_group_id_) +{} + +const std::int32_t getBasicGroupFullInfo::ID; + +void getBasicGroupFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getBasicGroupFullInfo"); + s.store_field("basic_group_id", basic_group_id_); + s.store_class_end(); + } +} + +getBlockedMessageSenders::getBlockedMessageSenders() + : offset_() + , limit_() +{} + +getBlockedMessageSenders::getBlockedMessageSenders(int32 offset_, int32 limit_) + : offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getBlockedMessageSenders::ID; + +void getBlockedMessageSenders::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getBlockedMessageSenders"); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getCallbackQueryAnswer::getCallbackQueryAnswer() + : chat_id_() + , message_id_() + , payload_() +{} + +getCallbackQueryAnswer::getCallbackQueryAnswer(int53 chat_id_, int53 message_id_, object_ptr<CallbackQueryPayload> &&payload_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , payload_(std::move(payload_)) +{} + +const std::int32_t getCallbackQueryAnswer::ID; + +void getCallbackQueryAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCallbackQueryAnswer"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("payload", static_cast<const BaseObject *>(payload_.get())); + s.store_class_end(); + } +} + +getCallbackQueryMessage::getCallbackQueryMessage() + : chat_id_() + , message_id_() + , callback_query_id_() +{} + +getCallbackQueryMessage::getCallbackQueryMessage(int53 chat_id_, int53 message_id_, int64 callback_query_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , callback_query_id_(callback_query_id_) +{} + +const std::int32_t getCallbackQueryMessage::ID; + +void getCallbackQueryMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCallbackQueryMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("callback_query_id", callback_query_id_); + s.store_class_end(); + } +} + +getChat::getChat() + : chat_id_() +{} + +getChat::getChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChat::ID; + +void getChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatAdministrators::getChatAdministrators() + : chat_id_() +{} + +getChatAdministrators::getChatAdministrators(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChatAdministrators::ID; + +void getChatAdministrators::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatAdministrators"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatAvailableMessageSenders::getChatAvailableMessageSenders() + : chat_id_() +{} + +getChatAvailableMessageSenders::getChatAvailableMessageSenders(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChatAvailableMessageSenders::ID; + +void getChatAvailableMessageSenders::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatAvailableMessageSenders"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatEventLog::getChatEventLog() + : chat_id_() + , query_() + , from_event_id_() + , limit_() + , filters_() + , user_ids_() +{} + +getChatEventLog::getChatEventLog(int53 chat_id_, string const &query_, int64 from_event_id_, int32 limit_, object_ptr<chatEventLogFilters> &&filters_, array<int53> &&user_ids_) + : chat_id_(chat_id_) + , query_(query_) + , from_event_id_(from_event_id_) + , limit_(limit_) + , filters_(std::move(filters_)) + , user_ids_(std::move(user_ids_)) +{} + +const std::int32_t getChatEventLog::ID; + +void getChatEventLog::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatEventLog"); + s.store_field("chat_id", chat_id_); + s.store_field("query", query_); + s.store_field("from_event_id", from_event_id_); + s.store_field("limit", limit_); + s.store_object_field("filters", static_cast<const BaseObject *>(filters_.get())); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +getChatFilter::getChatFilter() + : chat_filter_id_() +{} + +getChatFilter::getChatFilter(int32 chat_filter_id_) + : chat_filter_id_(chat_filter_id_) +{} + +const std::int32_t getChatFilter::ID; + +void getChatFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatFilter"); + s.store_field("chat_filter_id", chat_filter_id_); + s.store_class_end(); + } +} + +getChatFilterDefaultIconName::getChatFilterDefaultIconName() + : filter_() +{} + +getChatFilterDefaultIconName::getChatFilterDefaultIconName(object_ptr<chatFilter> &&filter_) + : filter_(std::move(filter_)) +{} + +const std::int32_t getChatFilterDefaultIconName::ID; + +void getChatFilterDefaultIconName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatFilterDefaultIconName"); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_class_end(); + } +} + +getChatHistory::getChatHistory() + : chat_id_() + , from_message_id_() + , offset_() + , limit_() + , only_local_() +{} + +getChatHistory::getChatHistory(int53 chat_id_, int53 from_message_id_, int32 offset_, int32 limit_, bool only_local_) + : chat_id_(chat_id_) + , from_message_id_(from_message_id_) + , offset_(offset_) + , limit_(limit_) + , only_local_(only_local_) +{} + +const std::int32_t getChatHistory::ID; + +void getChatHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatHistory"); + s.store_field("chat_id", chat_id_); + s.store_field("from_message_id", from_message_id_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_field("only_local", only_local_); + s.store_class_end(); + } +} + +getChatInviteLink::getChatInviteLink() + : chat_id_() + , invite_link_() +{} + +getChatInviteLink::getChatInviteLink(int53 chat_id_, string const &invite_link_) + : chat_id_(chat_id_) + , invite_link_(invite_link_) +{} + +const std::int32_t getChatInviteLink::ID; + +void getChatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatInviteLink"); + s.store_field("chat_id", chat_id_); + s.store_field("invite_link", invite_link_); + s.store_class_end(); + } +} + +getChatInviteLinkCounts::getChatInviteLinkCounts() + : chat_id_() +{} + +getChatInviteLinkCounts::getChatInviteLinkCounts(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChatInviteLinkCounts::ID; + +void getChatInviteLinkCounts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatInviteLinkCounts"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatInviteLinkMembers::getChatInviteLinkMembers() + : chat_id_() + , invite_link_() + , offset_member_() + , limit_() +{} + +getChatInviteLinkMembers::getChatInviteLinkMembers(int53 chat_id_, string const &invite_link_, object_ptr<chatInviteLinkMember> &&offset_member_, int32 limit_) + : chat_id_(chat_id_) + , invite_link_(invite_link_) + , offset_member_(std::move(offset_member_)) + , limit_(limit_) +{} + +const std::int32_t getChatInviteLinkMembers::ID; + +void getChatInviteLinkMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatInviteLinkMembers"); + s.store_field("chat_id", chat_id_); + s.store_field("invite_link", invite_link_); + s.store_object_field("offset_member", static_cast<const BaseObject *>(offset_member_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getChatInviteLinks::getChatInviteLinks() + : chat_id_() + , creator_user_id_() + , is_revoked_() + , offset_date_() + , offset_invite_link_() + , limit_() +{} + +getChatInviteLinks::getChatInviteLinks(int53 chat_id_, int53 creator_user_id_, bool is_revoked_, int32 offset_date_, string const &offset_invite_link_, int32 limit_) + : chat_id_(chat_id_) + , creator_user_id_(creator_user_id_) + , is_revoked_(is_revoked_) + , offset_date_(offset_date_) + , offset_invite_link_(offset_invite_link_) + , limit_(limit_) +{} + +const std::int32_t getChatInviteLinks::ID; + +void getChatInviteLinks::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatInviteLinks"); + s.store_field("chat_id", chat_id_); + s.store_field("creator_user_id", creator_user_id_); + s.store_field("is_revoked", is_revoked_); + s.store_field("offset_date", offset_date_); + s.store_field("offset_invite_link", offset_invite_link_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getChatJoinRequests::getChatJoinRequests() + : chat_id_() + , invite_link_() + , query_() + , offset_request_() + , limit_() +{} + +getChatJoinRequests::getChatJoinRequests(int53 chat_id_, string const &invite_link_, string const &query_, object_ptr<chatJoinRequest> &&offset_request_, int32 limit_) + : chat_id_(chat_id_) + , invite_link_(invite_link_) + , query_(query_) + , offset_request_(std::move(offset_request_)) + , limit_(limit_) +{} + +const std::int32_t getChatJoinRequests::ID; + +void getChatJoinRequests::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatJoinRequests"); + s.store_field("chat_id", chat_id_); + s.store_field("invite_link", invite_link_); + s.store_field("query", query_); + s.store_object_field("offset_request", static_cast<const BaseObject *>(offset_request_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getChatListsToAddChat::getChatListsToAddChat() + : chat_id_() +{} + +getChatListsToAddChat::getChatListsToAddChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChatListsToAddChat::ID; + +void getChatListsToAddChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatListsToAddChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatMember::getChatMember() + : chat_id_() + , member_id_() +{} + +getChatMember::getChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_) + : chat_id_(chat_id_) + , member_id_(std::move(member_id_)) +{} + +const std::int32_t getChatMember::ID; + +void getChatMember::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatMember"); + s.store_field("chat_id", chat_id_); + s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get())); + s.store_class_end(); + } +} + +getChatMessageByDate::getChatMessageByDate() + : chat_id_() + , date_() +{} + +getChatMessageByDate::getChatMessageByDate(int53 chat_id_, int32 date_) + : chat_id_(chat_id_) + , date_(date_) +{} + +const std::int32_t getChatMessageByDate::ID; + +void getChatMessageByDate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatMessageByDate"); + s.store_field("chat_id", chat_id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +getChatMessageCalendar::getChatMessageCalendar() + : chat_id_() + , filter_() + , from_message_id_() +{} + +getChatMessageCalendar::getChatMessageCalendar(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_) + : chat_id_(chat_id_) + , filter_(std::move(filter_)) + , from_message_id_(from_message_id_) +{} + +const std::int32_t getChatMessageCalendar::ID; + +void getChatMessageCalendar::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatMessageCalendar"); + s.store_field("chat_id", chat_id_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("from_message_id", from_message_id_); + s.store_class_end(); + } +} + +getChatMessageCount::getChatMessageCount() + : chat_id_() + , filter_() + , return_local_() +{} + +getChatMessageCount::getChatMessageCount(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, bool return_local_) + : chat_id_(chat_id_) + , filter_(std::move(filter_)) + , return_local_(return_local_) +{} + +const std::int32_t getChatMessageCount::ID; + +void getChatMessageCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatMessageCount"); + s.store_field("chat_id", chat_id_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("return_local", return_local_); + s.store_class_end(); + } +} + +getChatMessagePosition::getChatMessagePosition() + : chat_id_() + , message_id_() + , filter_() + , message_thread_id_() +{} + +getChatMessagePosition::getChatMessagePosition(int53 chat_id_, int53 message_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , filter_(std::move(filter_)) + , message_thread_id_(message_thread_id_) +{} + +const std::int32_t getChatMessagePosition::ID; + +void getChatMessagePosition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatMessagePosition"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +getChatNotificationSettingsExceptions::getChatNotificationSettingsExceptions() + : scope_() + , compare_sound_() +{} + +getChatNotificationSettingsExceptions::getChatNotificationSettingsExceptions(object_ptr<NotificationSettingsScope> &&scope_, bool compare_sound_) + : scope_(std::move(scope_)) + , compare_sound_(compare_sound_) +{} + +const std::int32_t getChatNotificationSettingsExceptions::ID; + +void getChatNotificationSettingsExceptions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatNotificationSettingsExceptions"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_field("compare_sound", compare_sound_); + s.store_class_end(); + } +} + +getChatPinnedMessage::getChatPinnedMessage() + : chat_id_() +{} + +getChatPinnedMessage::getChatPinnedMessage(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChatPinnedMessage::ID; + +void getChatPinnedMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatPinnedMessage"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatScheduledMessages::getChatScheduledMessages() + : chat_id_() +{} + +getChatScheduledMessages::getChatScheduledMessages(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChatScheduledMessages::ID; + +void getChatScheduledMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatScheduledMessages"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatSparseMessagePositions::getChatSparseMessagePositions() + : chat_id_() + , filter_() + , from_message_id_() + , limit_() +{} + +getChatSparseMessagePositions::getChatSparseMessagePositions(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_, int32 limit_) + : chat_id_(chat_id_) + , filter_(std::move(filter_)) + , from_message_id_(from_message_id_) + , limit_(limit_) +{} + +const std::int32_t getChatSparseMessagePositions::ID; + +void getChatSparseMessagePositions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatSparseMessagePositions"); + s.store_field("chat_id", chat_id_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("from_message_id", from_message_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getChatSponsoredMessages::getChatSponsoredMessages() + : chat_id_() +{} + +getChatSponsoredMessages::getChatSponsoredMessages(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getChatSponsoredMessages::ID; + +void getChatSponsoredMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatSponsoredMessages"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getChatStatistics::getChatStatistics() + : chat_id_() + , is_dark_() +{} + +getChatStatistics::getChatStatistics(int53 chat_id_, bool is_dark_) + : chat_id_(chat_id_) + , is_dark_(is_dark_) +{} + +const std::int32_t getChatStatistics::ID; + +void getChatStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChatStatistics"); + s.store_field("chat_id", chat_id_); + s.store_field("is_dark", is_dark_); + s.store_class_end(); + } +} + +getChats::getChats() + : chat_list_() + , limit_() +{} + +getChats::getChats(object_ptr<ChatList> &&chat_list_, int32 limit_) + : chat_list_(std::move(chat_list_)) + , limit_(limit_) +{} + +const std::int32_t getChats::ID; + +void getChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getChats"); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getCommands::getCommands() + : scope_() + , language_code_() +{} + +getCommands::getCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_) + : scope_(std::move(scope_)) + , language_code_(language_code_) +{} + +const std::int32_t getCommands::ID; + +void getCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCommands"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_field("language_code", language_code_); + s.store_class_end(); + } +} + +getConnectedWebsites::getConnectedWebsites() { +} + +const std::int32_t getConnectedWebsites::ID; + +void getConnectedWebsites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getConnectedWebsites"); + s.store_class_end(); + } +} + +getContacts::getContacts() { +} + +const std::int32_t getContacts::ID; + +void getContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getContacts"); + s.store_class_end(); + } +} + +getCountries::getCountries() { +} + +const std::int32_t getCountries::ID; + +void getCountries::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCountries"); + s.store_class_end(); + } +} + +getCountryCode::getCountryCode() { +} + +const std::int32_t getCountryCode::ID; + +void getCountryCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCountryCode"); + s.store_class_end(); + } +} + +getCreatedPublicChats::getCreatedPublicChats() + : type_() +{} + +getCreatedPublicChats::getCreatedPublicChats(object_ptr<PublicChatType> &&type_) + : type_(std::move(type_)) +{} + +const std::int32_t getCreatedPublicChats::ID; + +void getCreatedPublicChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCreatedPublicChats"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +getCurrentState::getCurrentState() { +} + +const std::int32_t getCurrentState::ID; + +void getCurrentState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCurrentState"); + s.store_class_end(); + } +} + +getCustomEmojiReactionAnimations::getCustomEmojiReactionAnimations() { +} + +const std::int32_t getCustomEmojiReactionAnimations::ID; + +void getCustomEmojiReactionAnimations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCustomEmojiReactionAnimations"); + s.store_class_end(); + } +} + +getCustomEmojiStickers::getCustomEmojiStickers() + : custom_emoji_ids_() +{} + +getCustomEmojiStickers::getCustomEmojiStickers(array<int64> &&custom_emoji_ids_) + : custom_emoji_ids_(std::move(custom_emoji_ids_)) +{} + +const std::int32_t getCustomEmojiStickers::ID; + +void getCustomEmojiStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getCustomEmojiStickers"); + { s.store_vector_begin("custom_emoji_ids", custom_emoji_ids_.size()); for (const auto &_value : custom_emoji_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +getDatabaseStatistics::getDatabaseStatistics() { +} + +const std::int32_t getDatabaseStatistics::ID; + +void getDatabaseStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getDatabaseStatistics"); + s.store_class_end(); + } +} + +getDeepLinkInfo::getDeepLinkInfo() + : link_() +{} + +getDeepLinkInfo::getDeepLinkInfo(string const &link_) + : link_(link_) +{} + +const std::int32_t getDeepLinkInfo::ID; + +void getDeepLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getDeepLinkInfo"); + s.store_field("link", link_); + s.store_class_end(); + } +} + +getDefaultEmojiStatuses::getDefaultEmojiStatuses() { +} + +const std::int32_t getDefaultEmojiStatuses::ID; + +void getDefaultEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getDefaultEmojiStatuses"); + s.store_class_end(); + } +} + +getEmojiReaction::getEmojiReaction() + : emoji_() +{} + +getEmojiReaction::getEmojiReaction(string const &emoji_) + : emoji_(emoji_) +{} + +const std::int32_t getEmojiReaction::ID; + +void getEmojiReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getEmojiReaction"); + s.store_field("emoji", emoji_); + s.store_class_end(); + } +} + +getEmojiSuggestionsUrl::getEmojiSuggestionsUrl() + : language_code_() +{} + +getEmojiSuggestionsUrl::getEmojiSuggestionsUrl(string const &language_code_) + : language_code_(language_code_) +{} + +const std::int32_t getEmojiSuggestionsUrl::ID; + +void getEmojiSuggestionsUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getEmojiSuggestionsUrl"); + s.store_field("language_code", language_code_); + s.store_class_end(); + } +} + +getExternalLink::getExternalLink() + : link_() + , allow_write_access_() +{} + +getExternalLink::getExternalLink(string const &link_, bool allow_write_access_) + : link_(link_) + , allow_write_access_(allow_write_access_) +{} + +const std::int32_t getExternalLink::ID; + +void getExternalLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getExternalLink"); + s.store_field("link", link_); + s.store_field("allow_write_access", allow_write_access_); + s.store_class_end(); + } +} + +getExternalLinkInfo::getExternalLinkInfo() + : link_() +{} + +getExternalLinkInfo::getExternalLinkInfo(string const &link_) + : link_(link_) +{} + +const std::int32_t getExternalLinkInfo::ID; + +void getExternalLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getExternalLinkInfo"); + s.store_field("link", link_); + s.store_class_end(); + } +} + +getFavoriteStickers::getFavoriteStickers() { +} + +const std::int32_t getFavoriteStickers::ID; + +void getFavoriteStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getFavoriteStickers"); + s.store_class_end(); + } +} + +getFile::getFile() + : file_id_() +{} + +getFile::getFile(int32 file_id_) + : file_id_(file_id_) +{} + +const std::int32_t getFile::ID; + +void getFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getFile"); + s.store_field("file_id", file_id_); + s.store_class_end(); + } +} + +getFileDownloadedPrefixSize::getFileDownloadedPrefixSize() + : file_id_() + , offset_() +{} + +getFileDownloadedPrefixSize::getFileDownloadedPrefixSize(int32 file_id_, int53 offset_) + : file_id_(file_id_) + , offset_(offset_) +{} + +const std::int32_t getFileDownloadedPrefixSize::ID; + +void getFileDownloadedPrefixSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getFileDownloadedPrefixSize"); + s.store_field("file_id", file_id_); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +getFileExtension::getFileExtension() + : mime_type_() +{} + +getFileExtension::getFileExtension(string const &mime_type_) + : mime_type_(mime_type_) +{} + +const std::int32_t getFileExtension::ID; + +void getFileExtension::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getFileExtension"); + s.store_field("mime_type", mime_type_); + s.store_class_end(); + } +} + +getFileMimeType::getFileMimeType() + : file_name_() +{} + +getFileMimeType::getFileMimeType(string const &file_name_) + : file_name_(file_name_) +{} + +const std::int32_t getFileMimeType::ID; + +void getFileMimeType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getFileMimeType"); + s.store_field("file_name", file_name_); + s.store_class_end(); + } +} + +getForumTopicDefaultIcons::getForumTopicDefaultIcons() { +} + +const std::int32_t getForumTopicDefaultIcons::ID; + +void getForumTopicDefaultIcons::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getForumTopicDefaultIcons"); + s.store_class_end(); + } +} + +getGameHighScores::getGameHighScores() + : chat_id_() + , message_id_() + , user_id_() +{} + +getGameHighScores::getGameHighScores(int53 chat_id_, int53 message_id_, int53 user_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , user_id_(user_id_) +{} + +const std::int32_t getGameHighScores::ID; + +void getGameHighScores::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getGameHighScores"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +getGroupCall::getGroupCall() + : group_call_id_() +{} + +getGroupCall::getGroupCall(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t getGroupCall::ID; + +void getGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getGroupCall"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +getGroupCallInviteLink::getGroupCallInviteLink() + : group_call_id_() + , can_self_unmute_() +{} + +getGroupCallInviteLink::getGroupCallInviteLink(int32 group_call_id_, bool can_self_unmute_) + : group_call_id_(group_call_id_) + , can_self_unmute_(can_self_unmute_) +{} + +const std::int32_t getGroupCallInviteLink::ID; + +void getGroupCallInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getGroupCallInviteLink"); + s.store_field("group_call_id", group_call_id_); + s.store_field("can_self_unmute", can_self_unmute_); + s.store_class_end(); + } +} + +getGroupCallStreamSegment::getGroupCallStreamSegment() + : group_call_id_() + , time_offset_() + , scale_() + , channel_id_() + , video_quality_() +{} + +getGroupCallStreamSegment::getGroupCallStreamSegment(int32 group_call_id_, int53 time_offset_, int32 scale_, int32 channel_id_, object_ptr<GroupCallVideoQuality> &&video_quality_) + : group_call_id_(group_call_id_) + , time_offset_(time_offset_) + , scale_(scale_) + , channel_id_(channel_id_) + , video_quality_(std::move(video_quality_)) +{} + +const std::int32_t getGroupCallStreamSegment::ID; + +void getGroupCallStreamSegment::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getGroupCallStreamSegment"); + s.store_field("group_call_id", group_call_id_); + s.store_field("time_offset", time_offset_); + s.store_field("scale", scale_); + s.store_field("channel_id", channel_id_); + s.store_object_field("video_quality", static_cast<const BaseObject *>(video_quality_.get())); + s.store_class_end(); + } +} + +getGroupCallStreams::getGroupCallStreams() + : group_call_id_() +{} + +getGroupCallStreams::getGroupCallStreams(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t getGroupCallStreams::ID; + +void getGroupCallStreams::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getGroupCallStreams"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +getGroupsInCommon::getGroupsInCommon() + : user_id_() + , offset_chat_id_() + , limit_() +{} + +getGroupsInCommon::getGroupsInCommon(int53 user_id_, int53 offset_chat_id_, int32 limit_) + : user_id_(user_id_) + , offset_chat_id_(offset_chat_id_) + , limit_(limit_) +{} + +const std::int32_t getGroupsInCommon::ID; + +void getGroupsInCommon::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getGroupsInCommon"); + s.store_field("user_id", user_id_); + s.store_field("offset_chat_id", offset_chat_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getImportedContactCount::getImportedContactCount() { +} + +const std::int32_t getImportedContactCount::ID; + +void getImportedContactCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getImportedContactCount"); + s.store_class_end(); + } +} + +getInactiveSupergroupChats::getInactiveSupergroupChats() { +} + +const std::int32_t getInactiveSupergroupChats::ID; + +void getInactiveSupergroupChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getInactiveSupergroupChats"); + s.store_class_end(); + } +} + +getInlineGameHighScores::getInlineGameHighScores() + : inline_message_id_() + , user_id_() +{} + +getInlineGameHighScores::getInlineGameHighScores(string const &inline_message_id_, int53 user_id_) + : inline_message_id_(inline_message_id_) + , user_id_(user_id_) +{} + +const std::int32_t getInlineGameHighScores::ID; + +void getInlineGameHighScores::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getInlineGameHighScores"); + s.store_field("inline_message_id", inline_message_id_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +getInlineQueryResults::getInlineQueryResults() + : bot_user_id_() + , chat_id_() + , user_location_() + , query_() + , offset_() +{} + +getInlineQueryResults::getInlineQueryResults(int53 bot_user_id_, int53 chat_id_, object_ptr<location> &&user_location_, string const &query_, string const &offset_) + : bot_user_id_(bot_user_id_) + , chat_id_(chat_id_) + , user_location_(std::move(user_location_)) + , query_(query_) + , offset_(offset_) +{} + +const std::int32_t getInlineQueryResults::ID; + +void getInlineQueryResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getInlineQueryResults"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("chat_id", chat_id_); + s.store_object_field("user_location", static_cast<const BaseObject *>(user_location_.get())); + s.store_field("query", query_); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +getInstalledStickerSets::getInstalledStickerSets() + : sticker_type_() +{} + +getInstalledStickerSets::getInstalledStickerSets(object_ptr<StickerType> &&sticker_type_) + : sticker_type_(std::move(sticker_type_)) +{} + +const std::int32_t getInstalledStickerSets::ID; + +void getInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getInstalledStickerSets"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_class_end(); + } +} + +getInternalLinkType::getInternalLinkType() + : link_() +{} + +getInternalLinkType::getInternalLinkType(string const &link_) + : link_(link_) +{} + +const std::int32_t getInternalLinkType::ID; + +void getInternalLinkType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getInternalLinkType"); + s.store_field("link", link_); + s.store_class_end(); + } +} + +getJsonString::getJsonString() + : json_value_() +{} + +getJsonString::getJsonString(object_ptr<JsonValue> &&json_value_) + : json_value_(std::move(json_value_)) +{} + +const std::int32_t getJsonString::ID; + +void getJsonString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getJsonString"); + s.store_object_field("json_value", static_cast<const BaseObject *>(json_value_.get())); + s.store_class_end(); + } +} + +getJsonValue::getJsonValue() + : json_() +{} + +getJsonValue::getJsonValue(string const &json_) + : json_(json_) +{} + +const std::int32_t getJsonValue::ID; + +void getJsonValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getJsonValue"); + s.store_field("json", json_); + s.store_class_end(); + } +} + +getLanguagePackInfo::getLanguagePackInfo() + : language_pack_id_() +{} + +getLanguagePackInfo::getLanguagePackInfo(string const &language_pack_id_) + : language_pack_id_(language_pack_id_) +{} + +const std::int32_t getLanguagePackInfo::ID; + +void getLanguagePackInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLanguagePackInfo"); + s.store_field("language_pack_id", language_pack_id_); + s.store_class_end(); + } +} + +getLanguagePackString::getLanguagePackString() + : language_pack_database_path_() + , localization_target_() + , language_pack_id_() + , key_() +{} + +getLanguagePackString::getLanguagePackString(string const &language_pack_database_path_, string const &localization_target_, string const &language_pack_id_, string const &key_) + : language_pack_database_path_(language_pack_database_path_) + , localization_target_(localization_target_) + , language_pack_id_(language_pack_id_) + , key_(key_) +{} + +const std::int32_t getLanguagePackString::ID; + +void getLanguagePackString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLanguagePackString"); + s.store_field("language_pack_database_path", language_pack_database_path_); + s.store_field("localization_target", localization_target_); + s.store_field("language_pack_id", language_pack_id_); + s.store_field("key", key_); + s.store_class_end(); + } +} + +getLanguagePackStrings::getLanguagePackStrings() + : language_pack_id_() + , keys_() +{} + +getLanguagePackStrings::getLanguagePackStrings(string const &language_pack_id_, array<string> &&keys_) + : language_pack_id_(language_pack_id_) + , keys_(std::move(keys_)) +{} + +const std::int32_t getLanguagePackStrings::ID; + +void getLanguagePackStrings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLanguagePackStrings"); + s.store_field("language_pack_id", language_pack_id_); + { s.store_vector_begin("keys", keys_.size()); for (const auto &_value : keys_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +getLocalizationTargetInfo::getLocalizationTargetInfo() + : only_local_() +{} + +getLocalizationTargetInfo::getLocalizationTargetInfo(bool only_local_) + : only_local_(only_local_) +{} + +const std::int32_t getLocalizationTargetInfo::ID; + +void getLocalizationTargetInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLocalizationTargetInfo"); + s.store_field("only_local", only_local_); + s.store_class_end(); + } +} + +getLogStream::getLogStream() { +} + +const std::int32_t getLogStream::ID; + +void getLogStream::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLogStream"); + s.store_class_end(); + } +} + +getLogTagVerbosityLevel::getLogTagVerbosityLevel() + : tag_() +{} + +getLogTagVerbosityLevel::getLogTagVerbosityLevel(string const &tag_) + : tag_(tag_) +{} + +const std::int32_t getLogTagVerbosityLevel::ID; + +void getLogTagVerbosityLevel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLogTagVerbosityLevel"); + s.store_field("tag", tag_); + s.store_class_end(); + } +} + +getLogTags::getLogTags() { +} + +const std::int32_t getLogTags::ID; + +void getLogTags::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLogTags"); + s.store_class_end(); + } +} + +getLogVerbosityLevel::getLogVerbosityLevel() { +} + +const std::int32_t getLogVerbosityLevel::ID; + +void getLogVerbosityLevel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLogVerbosityLevel"); + s.store_class_end(); + } +} + +getLoginUrl::getLoginUrl() + : chat_id_() + , message_id_() + , button_id_() + , allow_write_access_() +{} + +getLoginUrl::getLoginUrl(int53 chat_id_, int53 message_id_, int53 button_id_, bool allow_write_access_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , button_id_(button_id_) + , allow_write_access_(allow_write_access_) +{} + +const std::int32_t getLoginUrl::ID; + +void getLoginUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLoginUrl"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("button_id", button_id_); + s.store_field("allow_write_access", allow_write_access_); + s.store_class_end(); + } +} + +getLoginUrlInfo::getLoginUrlInfo() + : chat_id_() + , message_id_() + , button_id_() +{} + +getLoginUrlInfo::getLoginUrlInfo(int53 chat_id_, int53 message_id_, int53 button_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , button_id_(button_id_) +{} + +const std::int32_t getLoginUrlInfo::ID; + +void getLoginUrlInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getLoginUrlInfo"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("button_id", button_id_); + s.store_class_end(); + } +} + +getMapThumbnailFile::getMapThumbnailFile() + : location_() + , zoom_() + , width_() + , height_() + , scale_() + , chat_id_() +{} + +getMapThumbnailFile::getMapThumbnailFile(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, int32 scale_, int53 chat_id_) + : location_(std::move(location_)) + , zoom_(zoom_) + , width_(width_) + , height_(height_) + , scale_(scale_) + , chat_id_(chat_id_) +{} + +const std::int32_t getMapThumbnailFile::ID; + +void getMapThumbnailFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMapThumbnailFile"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("zoom", zoom_); + s.store_field("width", width_); + s.store_field("height", height_); + s.store_field("scale", scale_); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getMarkdownText::getMarkdownText() + : text_() +{} + +getMarkdownText::getMarkdownText(object_ptr<formattedText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t getMarkdownText::ID; + +void getMarkdownText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMarkdownText"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +getMe::getMe() { +} + +const std::int32_t getMe::ID; + +void getMe::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMe"); + s.store_class_end(); + } +} + +getMenuButton::getMenuButton() + : user_id_() +{} + +getMenuButton::getMenuButton(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t getMenuButton::ID; + +void getMenuButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMenuButton"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +getMessage::getMessage() + : chat_id_() + , message_id_() +{} + +getMessage::getMessage(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t getMessage::ID; + +void getMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +getMessageAddedReactions::getMessageAddedReactions() + : chat_id_() + , message_id_() + , reaction_type_() + , offset_() + , limit_() +{} + +getMessageAddedReactions::getMessageAddedReactions(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, string const &offset_, int32 limit_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reaction_type_(std::move(reaction_type_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getMessageAddedReactions::ID; + +void getMessageAddedReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageAddedReactions"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get())); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getMessageAvailableReactions::getMessageAvailableReactions() + : chat_id_() + , message_id_() + , row_size_() +{} + +getMessageAvailableReactions::getMessageAvailableReactions(int53 chat_id_, int53 message_id_, int32 row_size_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , row_size_(row_size_) +{} + +const std::int32_t getMessageAvailableReactions::ID; + +void getMessageAvailableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageAvailableReactions"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("row_size", row_size_); + s.store_class_end(); + } +} + +getMessageEmbeddingCode::getMessageEmbeddingCode() + : chat_id_() + , message_id_() + , for_album_() +{} + +getMessageEmbeddingCode::getMessageEmbeddingCode(int53 chat_id_, int53 message_id_, bool for_album_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , for_album_(for_album_) +{} + +const std::int32_t getMessageEmbeddingCode::ID; + +void getMessageEmbeddingCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageEmbeddingCode"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("for_album", for_album_); + s.store_class_end(); + } +} + +getMessageFileType::getMessageFileType() + : message_file_head_() +{} + +getMessageFileType::getMessageFileType(string const &message_file_head_) + : message_file_head_(message_file_head_) +{} + +const std::int32_t getMessageFileType::ID; + +void getMessageFileType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageFileType"); + s.store_field("message_file_head", message_file_head_); + s.store_class_end(); + } +} + +getMessageImportConfirmationText::getMessageImportConfirmationText() + : chat_id_() +{} + +getMessageImportConfirmationText::getMessageImportConfirmationText(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getMessageImportConfirmationText::ID; + +void getMessageImportConfirmationText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageImportConfirmationText"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getMessageLink::getMessageLink() + : chat_id_() + , message_id_() + , media_timestamp_() + , for_album_() + , in_message_thread_() +{} + +getMessageLink::getMessageLink(int53 chat_id_, int53 message_id_, int32 media_timestamp_, bool for_album_, bool in_message_thread_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , media_timestamp_(media_timestamp_) + , for_album_(for_album_) + , in_message_thread_(in_message_thread_) +{} + +const std::int32_t getMessageLink::ID; + +void getMessageLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageLink"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("media_timestamp", media_timestamp_); + s.store_field("for_album", for_album_); + s.store_field("in_message_thread", in_message_thread_); + s.store_class_end(); + } +} + +getMessageLinkInfo::getMessageLinkInfo() + : url_() +{} + +getMessageLinkInfo::getMessageLinkInfo(string const &url_) + : url_(url_) +{} + +const std::int32_t getMessageLinkInfo::ID; + +void getMessageLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageLinkInfo"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +getMessageLocally::getMessageLocally() + : chat_id_() + , message_id_() +{} + +getMessageLocally::getMessageLocally(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t getMessageLocally::ID; + +void getMessageLocally::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageLocally"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +getMessagePublicForwards::getMessagePublicForwards() + : chat_id_() + , message_id_() + , offset_() + , limit_() +{} + +getMessagePublicForwards::getMessagePublicForwards(int53 chat_id_, int53 message_id_, string const &offset_, int32 limit_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getMessagePublicForwards::ID; + +void getMessagePublicForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessagePublicForwards"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getMessageStatistics::getMessageStatistics() + : chat_id_() + , message_id_() + , is_dark_() +{} + +getMessageStatistics::getMessageStatistics(int53 chat_id_, int53 message_id_, bool is_dark_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , is_dark_(is_dark_) +{} + +const std::int32_t getMessageStatistics::ID; + +void getMessageStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageStatistics"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("is_dark", is_dark_); + s.store_class_end(); + } +} + +getMessageThread::getMessageThread() + : chat_id_() + , message_id_() +{} + +getMessageThread::getMessageThread(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t getMessageThread::ID; + +void getMessageThread::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageThread"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +getMessageThreadHistory::getMessageThreadHistory() + : chat_id_() + , message_id_() + , from_message_id_() + , offset_() + , limit_() +{} + +getMessageThreadHistory::getMessageThreadHistory(int53 chat_id_, int53 message_id_, int53 from_message_id_, int32 offset_, int32 limit_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , from_message_id_(from_message_id_) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getMessageThreadHistory::ID; + +void getMessageThreadHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageThreadHistory"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("from_message_id", from_message_id_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getMessageViewers::getMessageViewers() + : chat_id_() + , message_id_() +{} + +getMessageViewers::getMessageViewers(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t getMessageViewers::ID; + +void getMessageViewers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessageViewers"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +getMessages::getMessages() + : chat_id_() + , message_ids_() +{} + +getMessages::getMessages(int53 chat_id_, array<int53> &&message_ids_) + : chat_id_(chat_id_) + , message_ids_(std::move(message_ids_)) +{} + +const std::int32_t getMessages::ID; + +void getMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getMessages"); + s.store_field("chat_id", chat_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +getNetworkStatistics::getNetworkStatistics() + : only_current_() +{} + +getNetworkStatistics::getNetworkStatistics(bool only_current_) + : only_current_(only_current_) +{} + +const std::int32_t getNetworkStatistics::ID; + +void getNetworkStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getNetworkStatistics"); + s.store_field("only_current", only_current_); + s.store_class_end(); + } +} + +getOption::getOption() + : name_() +{} + +getOption::getOption(string const &name_) + : name_(name_) +{} + +const std::int32_t getOption::ID; + +void getOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getOption"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +getPassportAuthorizationForm::getPassportAuthorizationForm() + : bot_user_id_() + , scope_() + , public_key_() + , nonce_() +{} + +getPassportAuthorizationForm::getPassportAuthorizationForm(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_) + : bot_user_id_(bot_user_id_) + , scope_(scope_) + , public_key_(public_key_) + , nonce_(nonce_) +{} + +const std::int32_t getPassportAuthorizationForm::ID; + +void getPassportAuthorizationForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPassportAuthorizationForm"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("scope", scope_); + s.store_field("public_key", public_key_); + s.store_field("nonce", nonce_); + s.store_class_end(); + } +} + +getPassportAuthorizationFormAvailableElements::getPassportAuthorizationFormAvailableElements() + : autorization_form_id_() + , password_() +{} + +getPassportAuthorizationFormAvailableElements::getPassportAuthorizationFormAvailableElements(int32 autorization_form_id_, string const &password_) + : autorization_form_id_(autorization_form_id_) + , password_(password_) +{} + +const std::int32_t getPassportAuthorizationFormAvailableElements::ID; + +void getPassportAuthorizationFormAvailableElements::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPassportAuthorizationFormAvailableElements"); + s.store_field("autorization_form_id", autorization_form_id_); + s.store_field("password", password_); + s.store_class_end(); + } +} + +getPassportElement::getPassportElement() + : type_() + , password_() +{} + +getPassportElement::getPassportElement(object_ptr<PassportElementType> &&type_, string const &password_) + : type_(std::move(type_)) + , password_(password_) +{} + +const std::int32_t getPassportElement::ID; + +void getPassportElement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPassportElement"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("password", password_); + s.store_class_end(); + } +} + +getPasswordState::getPasswordState() { +} + +const std::int32_t getPasswordState::ID; + +void getPasswordState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPasswordState"); + s.store_class_end(); + } +} + +getPaymentForm::getPaymentForm() + : input_invoice_() + , theme_() +{} + +getPaymentForm::getPaymentForm(object_ptr<InputInvoice> &&input_invoice_, object_ptr<themeParameters> &&theme_) + : input_invoice_(std::move(input_invoice_)) + , theme_(std::move(theme_)) +{} + +const std::int32_t getPaymentForm::ID; + +void getPaymentForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPaymentForm"); + s.store_object_field("input_invoice", static_cast<const BaseObject *>(input_invoice_.get())); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + s.store_class_end(); + } +} + +getPaymentReceipt::getPaymentReceipt() + : chat_id_() + , message_id_() +{} + +getPaymentReceipt::getPaymentReceipt(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t getPaymentReceipt::ID; + +void getPaymentReceipt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPaymentReceipt"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +getPhoneNumberInfo::getPhoneNumberInfo() + : phone_number_prefix_() +{} + +getPhoneNumberInfo::getPhoneNumberInfo(string const &phone_number_prefix_) + : phone_number_prefix_(phone_number_prefix_) +{} + +const std::int32_t getPhoneNumberInfo::ID; + +void getPhoneNumberInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPhoneNumberInfo"); + s.store_field("phone_number_prefix", phone_number_prefix_); + s.store_class_end(); + } +} + +getPhoneNumberInfoSync::getPhoneNumberInfoSync() + : language_code_() + , phone_number_prefix_() +{} + +getPhoneNumberInfoSync::getPhoneNumberInfoSync(string const &language_code_, string const &phone_number_prefix_) + : language_code_(language_code_) + , phone_number_prefix_(phone_number_prefix_) +{} + +const std::int32_t getPhoneNumberInfoSync::ID; + +void getPhoneNumberInfoSync::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPhoneNumberInfoSync"); + s.store_field("language_code", language_code_); + s.store_field("phone_number_prefix", phone_number_prefix_); + s.store_class_end(); + } +} + +getPollVoters::getPollVoters() + : chat_id_() + , message_id_() + , option_id_() + , offset_() + , limit_() +{} + +getPollVoters::getPollVoters(int53 chat_id_, int53 message_id_, int32 option_id_, int32 offset_, int32 limit_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , option_id_(option_id_) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getPollVoters::ID; + +void getPollVoters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPollVoters"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("option_id", option_id_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getPreferredCountryLanguage::getPreferredCountryLanguage() + : country_code_() +{} + +getPreferredCountryLanguage::getPreferredCountryLanguage(string const &country_code_) + : country_code_(country_code_) +{} + +const std::int32_t getPreferredCountryLanguage::ID; + +void getPreferredCountryLanguage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPreferredCountryLanguage"); + s.store_field("country_code", country_code_); + s.store_class_end(); + } +} + +getPremiumFeatures::getPremiumFeatures() + : source_() +{} + +getPremiumFeatures::getPremiumFeatures(object_ptr<PremiumSource> &&source_) + : source_(std::move(source_)) +{} + +const std::int32_t getPremiumFeatures::ID; + +void getPremiumFeatures::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPremiumFeatures"); + s.store_object_field("source", static_cast<const BaseObject *>(source_.get())); + s.store_class_end(); + } +} + +getPremiumLimit::getPremiumLimit() + : limit_type_() +{} + +getPremiumLimit::getPremiumLimit(object_ptr<PremiumLimitType> &&limit_type_) + : limit_type_(std::move(limit_type_)) +{} + +const std::int32_t getPremiumLimit::ID; + +void getPremiumLimit::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPremiumLimit"); + s.store_object_field("limit_type", static_cast<const BaseObject *>(limit_type_.get())); + s.store_class_end(); + } +} + +getPremiumState::getPremiumState() { +} + +const std::int32_t getPremiumState::ID; + +void getPremiumState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPremiumState"); + s.store_class_end(); + } +} + +getPremiumStickerExamples::getPremiumStickerExamples() { +} + +const std::int32_t getPremiumStickerExamples::ID; + +void getPremiumStickerExamples::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPremiumStickerExamples"); + s.store_class_end(); + } +} + +getPremiumStickers::getPremiumStickers() + : limit_() +{} + +getPremiumStickers::getPremiumStickers(int32 limit_) + : limit_(limit_) +{} + +const std::int32_t getPremiumStickers::ID; + +void getPremiumStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPremiumStickers"); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getProxies::getProxies() { +} + +const std::int32_t getProxies::ID; + +void getProxies::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getProxies"); + s.store_class_end(); + } +} + +getProxyLink::getProxyLink() + : proxy_id_() +{} + +getProxyLink::getProxyLink(int32 proxy_id_) + : proxy_id_(proxy_id_) +{} + +const std::int32_t getProxyLink::ID; + +void getProxyLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getProxyLink"); + s.store_field("proxy_id", proxy_id_); + s.store_class_end(); + } +} + +getPushReceiverId::getPushReceiverId() + : payload_() +{} + +getPushReceiverId::getPushReceiverId(string const &payload_) + : payload_(payload_) +{} + +const std::int32_t getPushReceiverId::ID; + +void getPushReceiverId::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getPushReceiverId"); + s.store_field("payload", payload_); + s.store_class_end(); + } +} + +getRecentEmojiStatuses::getRecentEmojiStatuses() { +} + +const std::int32_t getRecentEmojiStatuses::ID; + +void getRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRecentEmojiStatuses"); + s.store_class_end(); + } +} + +getRecentInlineBots::getRecentInlineBots() { +} + +const std::int32_t getRecentInlineBots::ID; + +void getRecentInlineBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRecentInlineBots"); + s.store_class_end(); + } +} + +getRecentStickers::getRecentStickers() + : is_attached_() +{} + +getRecentStickers::getRecentStickers(bool is_attached_) + : is_attached_(is_attached_) +{} + +const std::int32_t getRecentStickers::ID; + +void getRecentStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRecentStickers"); + s.store_field("is_attached", is_attached_); + s.store_class_end(); + } +} + +getRecentlyOpenedChats::getRecentlyOpenedChats() + : limit_() +{} + +getRecentlyOpenedChats::getRecentlyOpenedChats(int32 limit_) + : limit_(limit_) +{} + +const std::int32_t getRecentlyOpenedChats::ID; + +void getRecentlyOpenedChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRecentlyOpenedChats"); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getRecentlyVisitedTMeUrls::getRecentlyVisitedTMeUrls() + : referrer_() +{} + +getRecentlyVisitedTMeUrls::getRecentlyVisitedTMeUrls(string const &referrer_) + : referrer_(referrer_) +{} + +const std::int32_t getRecentlyVisitedTMeUrls::ID; + +void getRecentlyVisitedTMeUrls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRecentlyVisitedTMeUrls"); + s.store_field("referrer", referrer_); + s.store_class_end(); + } +} + +getRecommendedChatFilters::getRecommendedChatFilters() { +} + +const std::int32_t getRecommendedChatFilters::ID; + +void getRecommendedChatFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRecommendedChatFilters"); + s.store_class_end(); + } +} + +getRecoveryEmailAddress::getRecoveryEmailAddress() + : password_() +{} + +getRecoveryEmailAddress::getRecoveryEmailAddress(string const &password_) + : password_(password_) +{} + +const std::int32_t getRecoveryEmailAddress::ID; + +void getRecoveryEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRecoveryEmailAddress"); + s.store_field("password", password_); + s.store_class_end(); + } +} + +getRemoteFile::getRemoteFile() + : remote_file_id_() + , file_type_() +{} + +getRemoteFile::getRemoteFile(string const &remote_file_id_, object_ptr<FileType> &&file_type_) + : remote_file_id_(remote_file_id_) + , file_type_(std::move(file_type_)) +{} + +const std::int32_t getRemoteFile::ID; + +void getRemoteFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRemoteFile"); + s.store_field("remote_file_id", remote_file_id_); + s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get())); + s.store_class_end(); + } +} + +getRepliedMessage::getRepliedMessage() + : chat_id_() + , message_id_() +{} + +getRepliedMessage::getRepliedMessage(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t getRepliedMessage::ID; + +void getRepliedMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getRepliedMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +getSavedAnimations::getSavedAnimations() { +} + +const std::int32_t getSavedAnimations::ID; + +void getSavedAnimations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSavedAnimations"); + s.store_class_end(); + } +} + +getSavedNotificationSound::getSavedNotificationSound() + : notification_sound_id_() +{} + +getSavedNotificationSound::getSavedNotificationSound(int64 notification_sound_id_) + : notification_sound_id_(notification_sound_id_) +{} + +const std::int32_t getSavedNotificationSound::ID; + +void getSavedNotificationSound::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSavedNotificationSound"); + s.store_field("notification_sound_id", notification_sound_id_); + s.store_class_end(); + } +} + +getSavedNotificationSounds::getSavedNotificationSounds() { +} + +const std::int32_t getSavedNotificationSounds::ID; + +void getSavedNotificationSounds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSavedNotificationSounds"); + s.store_class_end(); + } +} + +getSavedOrderInfo::getSavedOrderInfo() { +} + +const std::int32_t getSavedOrderInfo::ID; + +void getSavedOrderInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSavedOrderInfo"); + s.store_class_end(); + } +} + +getScopeNotificationSettings::getScopeNotificationSettings() + : scope_() +{} + +getScopeNotificationSettings::getScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_) + : scope_(std::move(scope_)) +{} + +const std::int32_t getScopeNotificationSettings::ID; + +void getScopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getScopeNotificationSettings"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_class_end(); + } +} + +getSecretChat::getSecretChat() + : secret_chat_id_() +{} + +getSecretChat::getSecretChat(int32 secret_chat_id_) + : secret_chat_id_(secret_chat_id_) +{} + +const std::int32_t getSecretChat::ID; + +void getSecretChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSecretChat"); + s.store_field("secret_chat_id", secret_chat_id_); + s.store_class_end(); + } +} + +getStatisticalGraph::getStatisticalGraph() + : chat_id_() + , token_() + , x_() +{} + +getStatisticalGraph::getStatisticalGraph(int53 chat_id_, string const &token_, int53 x_) + : chat_id_(chat_id_) + , token_(token_) + , x_(x_) +{} + +const std::int32_t getStatisticalGraph::ID; + +void getStatisticalGraph::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getStatisticalGraph"); + s.store_field("chat_id", chat_id_); + s.store_field("token", token_); + s.store_field("x", x_); + s.store_class_end(); + } +} + +getStickerEmojis::getStickerEmojis() + : sticker_() +{} + +getStickerEmojis::getStickerEmojis(object_ptr<InputFile> &&sticker_) + : sticker_(std::move(sticker_)) +{} + +const std::int32_t getStickerEmojis::ID; + +void getStickerEmojis::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getStickerEmojis"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +getStickerSet::getStickerSet() + : set_id_() +{} + +getStickerSet::getStickerSet(int64 set_id_) + : set_id_(set_id_) +{} + +const std::int32_t getStickerSet::ID; + +void getStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getStickerSet"); + s.store_field("set_id", set_id_); + s.store_class_end(); + } +} + +getStickers::getStickers() + : sticker_type_() + , query_() + , limit_() + , chat_id_() +{} + +getStickers::getStickers(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_, int53 chat_id_) + : sticker_type_(std::move(sticker_type_)) + , query_(query_) + , limit_(limit_) + , chat_id_(chat_id_) +{} + +const std::int32_t getStickers::ID; + +void getStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getStickers"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_field("query", query_); + s.store_field("limit", limit_); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getStorageStatistics::getStorageStatistics() + : chat_limit_() +{} + +getStorageStatistics::getStorageStatistics(int32 chat_limit_) + : chat_limit_(chat_limit_) +{} + +const std::int32_t getStorageStatistics::ID; + +void getStorageStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getStorageStatistics"); + s.store_field("chat_limit", chat_limit_); + s.store_class_end(); + } +} + +getStorageStatisticsFast::getStorageStatisticsFast() { +} + +const std::int32_t getStorageStatisticsFast::ID; + +void getStorageStatisticsFast::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getStorageStatisticsFast"); + s.store_class_end(); + } +} + +getSuggestedFileName::getSuggestedFileName() + : file_id_() + , directory_() +{} + +getSuggestedFileName::getSuggestedFileName(int32 file_id_, string const &directory_) + : file_id_(file_id_) + , directory_(directory_) +{} + +const std::int32_t getSuggestedFileName::ID; + +void getSuggestedFileName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSuggestedFileName"); + s.store_field("file_id", file_id_); + s.store_field("directory", directory_); + s.store_class_end(); + } +} + +getSuggestedStickerSetName::getSuggestedStickerSetName() + : title_() +{} + +getSuggestedStickerSetName::getSuggestedStickerSetName(string const &title_) + : title_(title_) +{} + +const std::int32_t getSuggestedStickerSetName::ID; + +void getSuggestedStickerSetName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSuggestedStickerSetName"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +getSuitableDiscussionChats::getSuitableDiscussionChats() { +} + +const std::int32_t getSuitableDiscussionChats::ID; + +void getSuitableDiscussionChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSuitableDiscussionChats"); + s.store_class_end(); + } +} + +getSupergroup::getSupergroup() + : supergroup_id_() +{} + +getSupergroup::getSupergroup(int53 supergroup_id_) + : supergroup_id_(supergroup_id_) +{} + +const std::int32_t getSupergroup::ID; + +void getSupergroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSupergroup"); + s.store_field("supergroup_id", supergroup_id_); + s.store_class_end(); + } +} + +getSupergroupFullInfo::getSupergroupFullInfo() + : supergroup_id_() +{} + +getSupergroupFullInfo::getSupergroupFullInfo(int53 supergroup_id_) + : supergroup_id_(supergroup_id_) +{} + +const std::int32_t getSupergroupFullInfo::ID; + +void getSupergroupFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSupergroupFullInfo"); + s.store_field("supergroup_id", supergroup_id_); + s.store_class_end(); + } +} + +getSupergroupMembers::getSupergroupMembers() + : supergroup_id_() + , filter_() + , offset_() + , limit_() +{} + +getSupergroupMembers::getSupergroupMembers(int53 supergroup_id_, object_ptr<SupergroupMembersFilter> &&filter_, int32 offset_, int32 limit_) + : supergroup_id_(supergroup_id_) + , filter_(std::move(filter_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getSupergroupMembers::ID; + +void getSupergroupMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSupergroupMembers"); + s.store_field("supergroup_id", supergroup_id_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getSupportUser::getSupportUser() { +} + +const std::int32_t getSupportUser::ID; + +void getSupportUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getSupportUser"); + s.store_class_end(); + } +} + +getTemporaryPasswordState::getTemporaryPasswordState() { +} + +const std::int32_t getTemporaryPasswordState::ID; + +void getTemporaryPasswordState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getTemporaryPasswordState"); + s.store_class_end(); + } +} + +getTextEntities::getTextEntities() + : text_() +{} + +getTextEntities::getTextEntities(string const &text_) + : text_(text_) +{} + +const std::int32_t getTextEntities::ID; + +void getTextEntities::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getTextEntities"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +getThemeParametersJsonString::getThemeParametersJsonString() + : theme_() +{} + +getThemeParametersJsonString::getThemeParametersJsonString(object_ptr<themeParameters> &&theme_) + : theme_(std::move(theme_)) +{} + +const std::int32_t getThemeParametersJsonString::ID; + +void getThemeParametersJsonString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getThemeParametersJsonString"); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + s.store_class_end(); + } +} + +getThemedEmojiStatuses::getThemedEmojiStatuses() { +} + +const std::int32_t getThemedEmojiStatuses::ID; + +void getThemedEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getThemedEmojiStatuses"); + s.store_class_end(); + } +} + +getTopChats::getTopChats() + : category_() + , limit_() +{} + +getTopChats::getTopChats(object_ptr<TopChatCategory> &&category_, int32 limit_) + : category_(std::move(category_)) + , limit_(limit_) +{} + +const std::int32_t getTopChats::ID; + +void getTopChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getTopChats"); + s.store_object_field("category", static_cast<const BaseObject *>(category_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getTrendingStickerSets::getTrendingStickerSets() + : sticker_type_() + , offset_() + , limit_() +{} + +getTrendingStickerSets::getTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, int32 offset_, int32 limit_) + : sticker_type_(std::move(sticker_type_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getTrendingStickerSets::ID; + +void getTrendingStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getTrendingStickerSets"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getUser::getUser() + : user_id_() +{} + +getUser::getUser(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t getUser::ID; + +void getUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getUser"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +getUserFullInfo::getUserFullInfo() + : user_id_() +{} + +getUserFullInfo::getUserFullInfo(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t getUserFullInfo::ID; + +void getUserFullInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getUserFullInfo"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +getUserPrivacySettingRules::getUserPrivacySettingRules() + : setting_() +{} + +getUserPrivacySettingRules::getUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_) + : setting_(std::move(setting_)) +{} + +const std::int32_t getUserPrivacySettingRules::ID; + +void getUserPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getUserPrivacySettingRules"); + s.store_object_field("setting", static_cast<const BaseObject *>(setting_.get())); + s.store_class_end(); + } +} + +getUserProfilePhotos::getUserProfilePhotos() + : user_id_() + , offset_() + , limit_() +{} + +getUserProfilePhotos::getUserProfilePhotos(int53 user_id_, int32 offset_, int32 limit_) + : user_id_(user_id_) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t getUserProfilePhotos::ID; + +void getUserProfilePhotos::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getUserProfilePhotos"); + s.store_field("user_id", user_id_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +getUserSupportInfo::getUserSupportInfo() + : user_id_() +{} + +getUserSupportInfo::getUserSupportInfo(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t getUserSupportInfo::ID; + +void getUserSupportInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getUserSupportInfo"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +getVideoChatAvailableParticipants::getVideoChatAvailableParticipants() + : chat_id_() +{} + +getVideoChatAvailableParticipants::getVideoChatAvailableParticipants(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getVideoChatAvailableParticipants::ID; + +void getVideoChatAvailableParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getVideoChatAvailableParticipants"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getVideoChatRtmpUrl::getVideoChatRtmpUrl() + : chat_id_() +{} + +getVideoChatRtmpUrl::getVideoChatRtmpUrl(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t getVideoChatRtmpUrl::ID; + +void getVideoChatRtmpUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getVideoChatRtmpUrl"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +getWebAppUrl::getWebAppUrl() + : bot_user_id_() + , url_() + , theme_() + , application_name_() +{} + +getWebAppUrl::getWebAppUrl(int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_) + : bot_user_id_(bot_user_id_) + , url_(url_) + , theme_(std::move(theme_)) + , application_name_(application_name_) +{} + +const std::int32_t getWebAppUrl::ID; + +void getWebAppUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getWebAppUrl"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("url", url_); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + s.store_field("application_name", application_name_); + s.store_class_end(); + } +} + +getWebPageInstantView::getWebPageInstantView() + : url_() + , force_full_() +{} + +getWebPageInstantView::getWebPageInstantView(string const &url_, bool force_full_) + : url_(url_) + , force_full_(force_full_) +{} + +const std::int32_t getWebPageInstantView::ID; + +void getWebPageInstantView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getWebPageInstantView"); + s.store_field("url", url_); + s.store_field("force_full", force_full_); + s.store_class_end(); + } +} + +getWebPagePreview::getWebPagePreview() + : text_() +{} + +getWebPagePreview::getWebPagePreview(object_ptr<formattedText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t getWebPagePreview::ID; + +void getWebPagePreview::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "getWebPagePreview"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +hideSuggestedAction::hideSuggestedAction() + : action_() +{} + +hideSuggestedAction::hideSuggestedAction(object_ptr<SuggestedAction> &&action_) + : action_(std::move(action_)) +{} + +const std::int32_t hideSuggestedAction::ID; + +void hideSuggestedAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "hideSuggestedAction"); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +importContacts::importContacts() + : contacts_() +{} + +importContacts::importContacts(array<object_ptr<contact>> &&contacts_) + : contacts_(std::move(contacts_)) +{} + +const std::int32_t importContacts::ID; + +void importContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "importContacts"); + { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +importMessages::importMessages() + : chat_id_() + , message_file_() + , attached_files_() +{} + +importMessages::importMessages(int53 chat_id_, object_ptr<InputFile> &&message_file_, array<object_ptr<InputFile>> &&attached_files_) + : chat_id_(chat_id_) + , message_file_(std::move(message_file_)) + , attached_files_(std::move(attached_files_)) +{} + +const std::int32_t importMessages::ID; + +void importMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "importMessages"); + s.store_field("chat_id", chat_id_); + s.store_object_field("message_file", static_cast<const BaseObject *>(message_file_.get())); + { s.store_vector_begin("attached_files", attached_files_.size()); for (const auto &_value : attached_files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +inviteGroupCallParticipants::inviteGroupCallParticipants() + : group_call_id_() + , user_ids_() +{} + +inviteGroupCallParticipants::inviteGroupCallParticipants(int32 group_call_id_, array<int53> &&user_ids_) + : group_call_id_(group_call_id_) + , user_ids_(std::move(user_ids_)) +{} + +const std::int32_t inviteGroupCallParticipants::ID; + +void inviteGroupCallParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inviteGroupCallParticipants"); + s.store_field("group_call_id", group_call_id_); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +joinChat::joinChat() + : chat_id_() +{} + +joinChat::joinChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t joinChat::ID; + +void joinChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "joinChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +joinChatByInviteLink::joinChatByInviteLink() + : invite_link_() +{} + +joinChatByInviteLink::joinChatByInviteLink(string const &invite_link_) + : invite_link_(invite_link_) +{} + +const std::int32_t joinChatByInviteLink::ID; + +void joinChatByInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "joinChatByInviteLink"); + s.store_field("invite_link", invite_link_); + s.store_class_end(); + } +} + +joinGroupCall::joinGroupCall() + : group_call_id_() + , participant_id_() + , audio_source_id_() + , payload_() + , is_muted_() + , is_my_video_enabled_() + , invite_hash_() +{} + +joinGroupCall::joinGroupCall(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, string const &payload_, bool is_muted_, bool is_my_video_enabled_, string const &invite_hash_) + : group_call_id_(group_call_id_) + , participant_id_(std::move(participant_id_)) + , audio_source_id_(audio_source_id_) + , payload_(payload_) + , is_muted_(is_muted_) + , is_my_video_enabled_(is_my_video_enabled_) + , invite_hash_(invite_hash_) +{} + +const std::int32_t joinGroupCall::ID; + +void joinGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "joinGroupCall"); + s.store_field("group_call_id", group_call_id_); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("audio_source_id", audio_source_id_); + s.store_field("payload", payload_); + s.store_field("is_muted", is_muted_); + s.store_field("is_my_video_enabled", is_my_video_enabled_); + s.store_field("invite_hash", invite_hash_); + s.store_class_end(); + } +} + +leaveChat::leaveChat() + : chat_id_() +{} + +leaveChat::leaveChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t leaveChat::ID; + +void leaveChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "leaveChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +leaveGroupCall::leaveGroupCall() + : group_call_id_() +{} + +leaveGroupCall::leaveGroupCall(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t leaveGroupCall::ID; + +void leaveGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "leaveGroupCall"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +loadChats::loadChats() + : chat_list_() + , limit_() +{} + +loadChats::loadChats(object_ptr<ChatList> &&chat_list_, int32 limit_) + : chat_list_(std::move(chat_list_)) + , limit_(limit_) +{} + +const std::int32_t loadChats::ID; + +void loadChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "loadChats"); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +loadGroupCallParticipants::loadGroupCallParticipants() + : group_call_id_() + , limit_() +{} + +loadGroupCallParticipants::loadGroupCallParticipants(int32 group_call_id_, int32 limit_) + : group_call_id_(group_call_id_) + , limit_(limit_) +{} + +const std::int32_t loadGroupCallParticipants::ID; + +void loadGroupCallParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "loadGroupCallParticipants"); + s.store_field("group_call_id", group_call_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +logOut::logOut() { +} + +const std::int32_t logOut::ID; + +void logOut::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "logOut"); + s.store_class_end(); + } +} + +openChat::openChat() + : chat_id_() +{} + +openChat::openChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t openChat::ID; + +void openChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "openChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +openMessageContent::openMessageContent() + : chat_id_() + , message_id_() +{} + +openMessageContent::openMessageContent(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t openMessageContent::ID; + +void openMessageContent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "openMessageContent"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +openWebApp::openWebApp() + : chat_id_() + , bot_user_id_() + , url_() + , theme_() + , application_name_() + , message_thread_id_() + , reply_to_message_id_() +{} + +openWebApp::openWebApp(int53 chat_id_, int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_, int53 message_thread_id_, int53 reply_to_message_id_) + : chat_id_(chat_id_) + , bot_user_id_(bot_user_id_) + , url_(url_) + , theme_(std::move(theme_)) + , application_name_(application_name_) + , message_thread_id_(message_thread_id_) + , reply_to_message_id_(reply_to_message_id_) +{} + +const std::int32_t openWebApp::ID; + +void openWebApp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "openWebApp"); + s.store_field("chat_id", chat_id_); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("url", url_); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + s.store_field("application_name", application_name_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("reply_to_message_id", reply_to_message_id_); + s.store_class_end(); + } +} + +optimizeStorage::optimizeStorage() + : size_() + , ttl_() + , count_() + , immunity_delay_() + , file_types_() + , chat_ids_() + , exclude_chat_ids_() + , return_deleted_file_statistics_() + , chat_limit_() +{} + +optimizeStorage::optimizeStorage(int53 size_, int32 ttl_, int32 count_, int32 immunity_delay_, array<object_ptr<FileType>> &&file_types_, array<int53> &&chat_ids_, array<int53> &&exclude_chat_ids_, bool return_deleted_file_statistics_, int32 chat_limit_) + : size_(size_) + , ttl_(ttl_) + , count_(count_) + , immunity_delay_(immunity_delay_) + , file_types_(std::move(file_types_)) + , chat_ids_(std::move(chat_ids_)) + , exclude_chat_ids_(std::move(exclude_chat_ids_)) + , return_deleted_file_statistics_(return_deleted_file_statistics_) + , chat_limit_(chat_limit_) +{} + +const std::int32_t optimizeStorage::ID; + +void optimizeStorage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "optimizeStorage"); + s.store_field("size", size_); + s.store_field("ttl", ttl_); + s.store_field("count", count_); + s.store_field("immunity_delay", immunity_delay_); + { s.store_vector_begin("file_types", file_types_.size()); for (const auto &_value : file_types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("exclude_chat_ids", exclude_chat_ids_.size()); for (const auto &_value : exclude_chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("return_deleted_file_statistics", return_deleted_file_statistics_); + s.store_field("chat_limit", chat_limit_); + s.store_class_end(); + } +} + +parseMarkdown::parseMarkdown() + : text_() +{} + +parseMarkdown::parseMarkdown(object_ptr<formattedText> &&text_) + : text_(std::move(text_)) +{} + +const std::int32_t parseMarkdown::ID; + +void parseMarkdown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "parseMarkdown"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +parseTextEntities::parseTextEntities() + : text_() + , parse_mode_() +{} + +parseTextEntities::parseTextEntities(string const &text_, object_ptr<TextParseMode> &&parse_mode_) + : text_(text_) + , parse_mode_(std::move(parse_mode_)) +{} + +const std::int32_t parseTextEntities::ID; + +void parseTextEntities::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "parseTextEntities"); + s.store_field("text", text_); + s.store_object_field("parse_mode", static_cast<const BaseObject *>(parse_mode_.get())); + s.store_class_end(); + } +} + +pinChatMessage::pinChatMessage() + : chat_id_() + , message_id_() + , disable_notification_() + , only_for_self_() +{} + +pinChatMessage::pinChatMessage(int53 chat_id_, int53 message_id_, bool disable_notification_, bool only_for_self_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , disable_notification_(disable_notification_) + , only_for_self_(only_for_self_) +{} + +const std::int32_t pinChatMessage::ID; + +void pinChatMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pinChatMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("disable_notification", disable_notification_); + s.store_field("only_for_self", only_for_self_); + s.store_class_end(); + } +} + +pingProxy::pingProxy() + : proxy_id_() +{} + +pingProxy::pingProxy(int32 proxy_id_) + : proxy_id_(proxy_id_) +{} + +const std::int32_t pingProxy::ID; + +void pingProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pingProxy"); + s.store_field("proxy_id", proxy_id_); + s.store_class_end(); + } +} + +preliminaryUploadFile::preliminaryUploadFile() + : file_() + , file_type_() + , priority_() +{} + +preliminaryUploadFile::preliminaryUploadFile(object_ptr<InputFile> &&file_, object_ptr<FileType> &&file_type_, int32 priority_) + : file_(std::move(file_)) + , file_type_(std::move(file_type_)) + , priority_(priority_) +{} + +const std::int32_t preliminaryUploadFile::ID; + +void preliminaryUploadFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "preliminaryUploadFile"); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get())); + s.store_field("priority", priority_); + s.store_class_end(); + } +} + +processChatJoinRequest::processChatJoinRequest() + : chat_id_() + , user_id_() + , approve_() +{} + +processChatJoinRequest::processChatJoinRequest(int53 chat_id_, int53 user_id_, bool approve_) + : chat_id_(chat_id_) + , user_id_(user_id_) + , approve_(approve_) +{} + +const std::int32_t processChatJoinRequest::ID; + +void processChatJoinRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "processChatJoinRequest"); + s.store_field("chat_id", chat_id_); + s.store_field("user_id", user_id_); + s.store_field("approve", approve_); + s.store_class_end(); + } +} + +processChatJoinRequests::processChatJoinRequests() + : chat_id_() + , invite_link_() + , approve_() +{} + +processChatJoinRequests::processChatJoinRequests(int53 chat_id_, string const &invite_link_, bool approve_) + : chat_id_(chat_id_) + , invite_link_(invite_link_) + , approve_(approve_) +{} + +const std::int32_t processChatJoinRequests::ID; + +void processChatJoinRequests::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "processChatJoinRequests"); + s.store_field("chat_id", chat_id_); + s.store_field("invite_link", invite_link_); + s.store_field("approve", approve_); + s.store_class_end(); + } +} + +processPushNotification::processPushNotification() + : payload_() +{} + +processPushNotification::processPushNotification(string const &payload_) + : payload_(payload_) +{} + +const std::int32_t processPushNotification::ID; + +void processPushNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "processPushNotification"); + s.store_field("payload", payload_); + s.store_class_end(); + } +} + +rateSpeechRecognition::rateSpeechRecognition() + : chat_id_() + , message_id_() + , is_good_() +{} + +rateSpeechRecognition::rateSpeechRecognition(int53 chat_id_, int53 message_id_, bool is_good_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , is_good_(is_good_) +{} + +const std::int32_t rateSpeechRecognition::ID; + +void rateSpeechRecognition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "rateSpeechRecognition"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("is_good", is_good_); + s.store_class_end(); + } +} + +readAllChatMentions::readAllChatMentions() + : chat_id_() +{} + +readAllChatMentions::readAllChatMentions(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t readAllChatMentions::ID; + +void readAllChatMentions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "readAllChatMentions"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +readAllChatReactions::readAllChatReactions() + : chat_id_() +{} + +readAllChatReactions::readAllChatReactions(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t readAllChatReactions::ID; + +void readAllChatReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "readAllChatReactions"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +readAllMessageThreadMentions::readAllMessageThreadMentions() + : chat_id_() + , message_thread_id_() +{} + +readAllMessageThreadMentions::readAllMessageThreadMentions(int53 chat_id_, int53 message_thread_id_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) +{} + +const std::int32_t readAllMessageThreadMentions::ID; + +void readAllMessageThreadMentions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "readAllMessageThreadMentions"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +readAllMessageThreadReactions::readAllMessageThreadReactions() + : chat_id_() + , message_thread_id_() +{} + +readAllMessageThreadReactions::readAllMessageThreadReactions(int53 chat_id_, int53 message_thread_id_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) +{} + +const std::int32_t readAllMessageThreadReactions::ID; + +void readAllMessageThreadReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "readAllMessageThreadReactions"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +readFilePart::readFilePart() + : file_id_() + , offset_() + , count_() +{} + +readFilePart::readFilePart(int32 file_id_, int53 offset_, int53 count_) + : file_id_(file_id_) + , offset_(offset_) + , count_(count_) +{} + +const std::int32_t readFilePart::ID; + +void readFilePart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "readFilePart"); + s.store_field("file_id", file_id_); + s.store_field("offset", offset_); + s.store_field("count", count_); + s.store_class_end(); + } +} + +recognizeSpeech::recognizeSpeech() + : chat_id_() + , message_id_() +{} + +recognizeSpeech::recognizeSpeech(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t recognizeSpeech::ID; + +void recognizeSpeech::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recognizeSpeech"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +recoverAuthenticationPassword::recoverAuthenticationPassword() + : recovery_code_() + , new_password_() + , new_hint_() +{} + +recoverAuthenticationPassword::recoverAuthenticationPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_) + : recovery_code_(recovery_code_) + , new_password_(new_password_) + , new_hint_(new_hint_) +{} + +const std::int32_t recoverAuthenticationPassword::ID; + +void recoverAuthenticationPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recoverAuthenticationPassword"); + s.store_field("recovery_code", recovery_code_); + s.store_field("new_password", new_password_); + s.store_field("new_hint", new_hint_); + s.store_class_end(); + } +} + +recoverPassword::recoverPassword() + : recovery_code_() + , new_password_() + , new_hint_() +{} + +recoverPassword::recoverPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_) + : recovery_code_(recovery_code_) + , new_password_(new_password_) + , new_hint_(new_hint_) +{} + +const std::int32_t recoverPassword::ID; + +void recoverPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recoverPassword"); + s.store_field("recovery_code", recovery_code_); + s.store_field("new_password", new_password_); + s.store_field("new_hint", new_hint_); + s.store_class_end(); + } +} + +registerDevice::registerDevice() + : device_token_() + , other_user_ids_() +{} + +registerDevice::registerDevice(object_ptr<DeviceToken> &&device_token_, array<int53> &&other_user_ids_) + : device_token_(std::move(device_token_)) + , other_user_ids_(std::move(other_user_ids_)) +{} + +const std::int32_t registerDevice::ID; + +void registerDevice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "registerDevice"); + s.store_object_field("device_token", static_cast<const BaseObject *>(device_token_.get())); + { s.store_vector_begin("other_user_ids", other_user_ids_.size()); for (const auto &_value : other_user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +registerUser::registerUser() + : first_name_() + , last_name_() +{} + +registerUser::registerUser(string const &first_name_, string const &last_name_) + : first_name_(first_name_) + , last_name_(last_name_) +{} + +const std::int32_t registerUser::ID; + +void registerUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "registerUser"); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_class_end(); + } +} + +removeAllFilesFromDownloads::removeAllFilesFromDownloads() + : only_active_() + , only_completed_() + , delete_from_cache_() +{} + +removeAllFilesFromDownloads::removeAllFilesFromDownloads(bool only_active_, bool only_completed_, bool delete_from_cache_) + : only_active_(only_active_) + , only_completed_(only_completed_) + , delete_from_cache_(delete_from_cache_) +{} + +const std::int32_t removeAllFilesFromDownloads::ID; + +void removeAllFilesFromDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeAllFilesFromDownloads"); + s.store_field("only_active", only_active_); + s.store_field("only_completed", only_completed_); + s.store_field("delete_from_cache", delete_from_cache_); + s.store_class_end(); + } +} + +removeBackground::removeBackground() + : background_id_() +{} + +removeBackground::removeBackground(int64 background_id_) + : background_id_(background_id_) +{} + +const std::int32_t removeBackground::ID; + +void removeBackground::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeBackground"); + s.store_field("background_id", background_id_); + s.store_class_end(); + } +} + +removeChatActionBar::removeChatActionBar() + : chat_id_() +{} + +removeChatActionBar::removeChatActionBar(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t removeChatActionBar::ID; + +void removeChatActionBar::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeChatActionBar"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +removeContacts::removeContacts() + : user_ids_() +{} + +removeContacts::removeContacts(array<int53> &&user_ids_) + : user_ids_(std::move(user_ids_)) +{} + +const std::int32_t removeContacts::ID; + +void removeContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeContacts"); + { s.store_vector_begin("user_ids", user_ids_.size()); for (const auto &_value : user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +removeFavoriteSticker::removeFavoriteSticker() + : sticker_() +{} + +removeFavoriteSticker::removeFavoriteSticker(object_ptr<InputFile> &&sticker_) + : sticker_(std::move(sticker_)) +{} + +const std::int32_t removeFavoriteSticker::ID; + +void removeFavoriteSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeFavoriteSticker"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +removeFileFromDownloads::removeFileFromDownloads() + : file_id_() + , delete_from_cache_() +{} + +removeFileFromDownloads::removeFileFromDownloads(int32 file_id_, bool delete_from_cache_) + : file_id_(file_id_) + , delete_from_cache_(delete_from_cache_) +{} + +const std::int32_t removeFileFromDownloads::ID; + +void removeFileFromDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeFileFromDownloads"); + s.store_field("file_id", file_id_); + s.store_field("delete_from_cache", delete_from_cache_); + s.store_class_end(); + } +} + +removeMessageReaction::removeMessageReaction() + : chat_id_() + , message_id_() + , reaction_type_() +{} + +removeMessageReaction::removeMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reaction_type_(std::move(reaction_type_)) +{} + +const std::int32_t removeMessageReaction::ID; + +void removeMessageReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeMessageReaction"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get())); + s.store_class_end(); + } +} + +removeNotification::removeNotification() + : notification_group_id_() + , notification_id_() +{} + +removeNotification::removeNotification(int32 notification_group_id_, int32 notification_id_) + : notification_group_id_(notification_group_id_) + , notification_id_(notification_id_) +{} + +const std::int32_t removeNotification::ID; + +void removeNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeNotification"); + s.store_field("notification_group_id", notification_group_id_); + s.store_field("notification_id", notification_id_); + s.store_class_end(); + } +} + +removeNotificationGroup::removeNotificationGroup() + : notification_group_id_() + , max_notification_id_() +{} + +removeNotificationGroup::removeNotificationGroup(int32 notification_group_id_, int32 max_notification_id_) + : notification_group_id_(notification_group_id_) + , max_notification_id_(max_notification_id_) +{} + +const std::int32_t removeNotificationGroup::ID; + +void removeNotificationGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeNotificationGroup"); + s.store_field("notification_group_id", notification_group_id_); + s.store_field("max_notification_id", max_notification_id_); + s.store_class_end(); + } +} + +removeProxy::removeProxy() + : proxy_id_() +{} + +removeProxy::removeProxy(int32 proxy_id_) + : proxy_id_(proxy_id_) +{} + +const std::int32_t removeProxy::ID; + +void removeProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeProxy"); + s.store_field("proxy_id", proxy_id_); + s.store_class_end(); + } +} + +removeRecentHashtag::removeRecentHashtag() + : hashtag_() +{} + +removeRecentHashtag::removeRecentHashtag(string const &hashtag_) + : hashtag_(hashtag_) +{} + +const std::int32_t removeRecentHashtag::ID; + +void removeRecentHashtag::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeRecentHashtag"); + s.store_field("hashtag", hashtag_); + s.store_class_end(); + } +} + +removeRecentSticker::removeRecentSticker() + : is_attached_() + , sticker_() +{} + +removeRecentSticker::removeRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_) + : is_attached_(is_attached_) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t removeRecentSticker::ID; + +void removeRecentSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeRecentSticker"); + s.store_field("is_attached", is_attached_); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +removeRecentlyFoundChat::removeRecentlyFoundChat() + : chat_id_() +{} + +removeRecentlyFoundChat::removeRecentlyFoundChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t removeRecentlyFoundChat::ID; + +void removeRecentlyFoundChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeRecentlyFoundChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +removeSavedAnimation::removeSavedAnimation() + : animation_() +{} + +removeSavedAnimation::removeSavedAnimation(object_ptr<InputFile> &&animation_) + : animation_(std::move(animation_)) +{} + +const std::int32_t removeSavedAnimation::ID; + +void removeSavedAnimation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeSavedAnimation"); + s.store_object_field("animation", static_cast<const BaseObject *>(animation_.get())); + s.store_class_end(); + } +} + +removeSavedNotificationSound::removeSavedNotificationSound() + : notification_sound_id_() +{} + +removeSavedNotificationSound::removeSavedNotificationSound(int64 notification_sound_id_) + : notification_sound_id_(notification_sound_id_) +{} + +const std::int32_t removeSavedNotificationSound::ID; + +void removeSavedNotificationSound::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeSavedNotificationSound"); + s.store_field("notification_sound_id", notification_sound_id_); + s.store_class_end(); + } +} + +removeStickerFromSet::removeStickerFromSet() + : sticker_() +{} + +removeStickerFromSet::removeStickerFromSet(object_ptr<InputFile> &&sticker_) + : sticker_(std::move(sticker_)) +{} + +const std::int32_t removeStickerFromSet::ID; + +void removeStickerFromSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeStickerFromSet"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +removeTopChat::removeTopChat() + : category_() + , chat_id_() +{} + +removeTopChat::removeTopChat(object_ptr<TopChatCategory> &&category_, int53 chat_id_) + : category_(std::move(category_)) + , chat_id_(chat_id_) +{} + +const std::int32_t removeTopChat::ID; + +void removeTopChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "removeTopChat"); + s.store_object_field("category", static_cast<const BaseObject *>(category_.get())); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +reorderActiveUsernames::reorderActiveUsernames() + : usernames_() +{} + +reorderActiveUsernames::reorderActiveUsernames(array<string> &&usernames_) + : usernames_(std::move(usernames_)) +{} + +const std::int32_t reorderActiveUsernames::ID; + +void reorderActiveUsernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reorderActiveUsernames"); + { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +reorderChatFilters::reorderChatFilters() + : chat_filter_ids_() + , main_chat_list_position_() +{} + +reorderChatFilters::reorderChatFilters(array<int32> &&chat_filter_ids_, int32 main_chat_list_position_) + : chat_filter_ids_(std::move(chat_filter_ids_)) + , main_chat_list_position_(main_chat_list_position_) +{} + +const std::int32_t reorderChatFilters::ID; + +void reorderChatFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reorderChatFilters"); + { s.store_vector_begin("chat_filter_ids", chat_filter_ids_.size()); for (const auto &_value : chat_filter_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("main_chat_list_position", main_chat_list_position_); + s.store_class_end(); + } +} + +reorderInstalledStickerSets::reorderInstalledStickerSets() + : sticker_type_() + , sticker_set_ids_() +{} + +reorderInstalledStickerSets::reorderInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_) + : sticker_type_(std::move(sticker_type_)) + , sticker_set_ids_(std::move(sticker_set_ids_)) +{} + +const std::int32_t reorderInstalledStickerSets::ID; + +void reorderInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reorderInstalledStickerSets"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + { s.store_vector_begin("sticker_set_ids", sticker_set_ids_.size()); for (const auto &_value : sticker_set_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +reorderSupergroupActiveUsernames::reorderSupergroupActiveUsernames() + : supergroup_id_() + , usernames_() +{} + +reorderSupergroupActiveUsernames::reorderSupergroupActiveUsernames(int53 supergroup_id_, array<string> &&usernames_) + : supergroup_id_(supergroup_id_) + , usernames_(std::move(usernames_)) +{} + +const std::int32_t reorderSupergroupActiveUsernames::ID; + +void reorderSupergroupActiveUsernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reorderSupergroupActiveUsernames"); + s.store_field("supergroup_id", supergroup_id_); + { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +replacePrimaryChatInviteLink::replacePrimaryChatInviteLink() + : chat_id_() +{} + +replacePrimaryChatInviteLink::replacePrimaryChatInviteLink(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t replacePrimaryChatInviteLink::ID; + +void replacePrimaryChatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replacePrimaryChatInviteLink"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +replaceVideoChatRtmpUrl::replaceVideoChatRtmpUrl() + : chat_id_() +{} + +replaceVideoChatRtmpUrl::replaceVideoChatRtmpUrl(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t replaceVideoChatRtmpUrl::ID; + +void replaceVideoChatRtmpUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replaceVideoChatRtmpUrl"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +reportChat::reportChat() + : chat_id_() + , message_ids_() + , reason_() + , text_() +{} + +reportChat::reportChat(int53 chat_id_, array<int53> &&message_ids_, object_ptr<ChatReportReason> &&reason_, string const &text_) + : chat_id_(chat_id_) + , message_ids_(std::move(message_ids_)) + , reason_(std::move(reason_)) + , text_(text_) +{} + +const std::int32_t reportChat::ID; + +void reportChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reportChat"); + s.store_field("chat_id", chat_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); + s.store_field("text", text_); + s.store_class_end(); + } +} + +reportChatPhoto::reportChatPhoto() + : chat_id_() + , file_id_() + , reason_() + , text_() +{} + +reportChatPhoto::reportChatPhoto(int53 chat_id_, int32 file_id_, object_ptr<ChatReportReason> &&reason_, string const &text_) + : chat_id_(chat_id_) + , file_id_(file_id_) + , reason_(std::move(reason_)) + , text_(text_) +{} + +const std::int32_t reportChatPhoto::ID; + +void reportChatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reportChatPhoto"); + s.store_field("chat_id", chat_id_); + s.store_field("file_id", file_id_); + s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); + s.store_field("text", text_); + s.store_class_end(); + } +} + +reportMessageReactions::reportMessageReactions() + : chat_id_() + , message_id_() + , sender_id_() +{} + +reportMessageReactions::reportMessageReactions(int53 chat_id_, int53 message_id_, object_ptr<MessageSender> &&sender_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , sender_id_(std::move(sender_id_)) +{} + +const std::int32_t reportMessageReactions::ID; + +void reportMessageReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reportMessageReactions"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_class_end(); + } +} + +reportSupergroupSpam::reportSupergroupSpam() + : supergroup_id_() + , message_ids_() +{} + +reportSupergroupSpam::reportSupergroupSpam(int53 supergroup_id_, array<int53> &&message_ids_) + : supergroup_id_(supergroup_id_) + , message_ids_(std::move(message_ids_)) +{} + +const std::int32_t reportSupergroupSpam::ID; + +void reportSupergroupSpam::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reportSupergroupSpam"); + s.store_field("supergroup_id", supergroup_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +requestAuthenticationPasswordRecovery::requestAuthenticationPasswordRecovery() { +} + +const std::int32_t requestAuthenticationPasswordRecovery::ID; + +void requestAuthenticationPasswordRecovery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "requestAuthenticationPasswordRecovery"); + s.store_class_end(); + } +} + +requestPasswordRecovery::requestPasswordRecovery() { +} + +const std::int32_t requestPasswordRecovery::ID; + +void requestPasswordRecovery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "requestPasswordRecovery"); + s.store_class_end(); + } +} + +requestQrCodeAuthentication::requestQrCodeAuthentication() + : other_user_ids_() +{} + +requestQrCodeAuthentication::requestQrCodeAuthentication(array<int53> &&other_user_ids_) + : other_user_ids_(std::move(other_user_ids_)) +{} + +const std::int32_t requestQrCodeAuthentication::ID; + +void requestQrCodeAuthentication::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "requestQrCodeAuthentication"); + { s.store_vector_begin("other_user_ids", other_user_ids_.size()); for (const auto &_value : other_user_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +resendAuthenticationCode::resendAuthenticationCode() { +} + +const std::int32_t resendAuthenticationCode::ID; + +void resendAuthenticationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendAuthenticationCode"); + s.store_class_end(); + } +} + +resendChangePhoneNumberCode::resendChangePhoneNumberCode() { +} + +const std::int32_t resendChangePhoneNumberCode::ID; + +void resendChangePhoneNumberCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendChangePhoneNumberCode"); + s.store_class_end(); + } +} + +resendEmailAddressVerificationCode::resendEmailAddressVerificationCode() { +} + +const std::int32_t resendEmailAddressVerificationCode::ID; + +void resendEmailAddressVerificationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendEmailAddressVerificationCode"); + s.store_class_end(); + } +} + +resendLoginEmailAddressCode::resendLoginEmailAddressCode() { +} + +const std::int32_t resendLoginEmailAddressCode::ID; + +void resendLoginEmailAddressCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendLoginEmailAddressCode"); + s.store_class_end(); + } +} + +resendMessages::resendMessages() + : chat_id_() + , message_ids_() +{} + +resendMessages::resendMessages(int53 chat_id_, array<int53> &&message_ids_) + : chat_id_(chat_id_) + , message_ids_(std::move(message_ids_)) +{} + +const std::int32_t resendMessages::ID; + +void resendMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendMessages"); + s.store_field("chat_id", chat_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +resendPhoneNumberConfirmationCode::resendPhoneNumberConfirmationCode() { +} + +const std::int32_t resendPhoneNumberConfirmationCode::ID; + +void resendPhoneNumberConfirmationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendPhoneNumberConfirmationCode"); + s.store_class_end(); + } +} + +resendPhoneNumberVerificationCode::resendPhoneNumberVerificationCode() { +} + +const std::int32_t resendPhoneNumberVerificationCode::ID; + +void resendPhoneNumberVerificationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendPhoneNumberVerificationCode"); + s.store_class_end(); + } +} + +resendRecoveryEmailAddressCode::resendRecoveryEmailAddressCode() { +} + +const std::int32_t resendRecoveryEmailAddressCode::ID; + +void resendRecoveryEmailAddressCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resendRecoveryEmailAddressCode"); + s.store_class_end(); + } +} + +resetAllNotificationSettings::resetAllNotificationSettings() { +} + +const std::int32_t resetAllNotificationSettings::ID; + +void resetAllNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resetAllNotificationSettings"); + s.store_class_end(); + } +} + +resetBackgrounds::resetBackgrounds() { +} + +const std::int32_t resetBackgrounds::ID; + +void resetBackgrounds::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resetBackgrounds"); + s.store_class_end(); + } +} + +resetNetworkStatistics::resetNetworkStatistics() { +} + +const std::int32_t resetNetworkStatistics::ID; + +void resetNetworkStatistics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resetNetworkStatistics"); + s.store_class_end(); + } +} + +resetPassword::resetPassword() { +} + +const std::int32_t resetPassword::ID; + +void resetPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "resetPassword"); + s.store_class_end(); + } +} + +revokeChatInviteLink::revokeChatInviteLink() + : chat_id_() + , invite_link_() +{} + +revokeChatInviteLink::revokeChatInviteLink(int53 chat_id_, string const &invite_link_) + : chat_id_(chat_id_) + , invite_link_(invite_link_) +{} + +const std::int32_t revokeChatInviteLink::ID; + +void revokeChatInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "revokeChatInviteLink"); + s.store_field("chat_id", chat_id_); + s.store_field("invite_link", invite_link_); + s.store_class_end(); + } +} + +revokeGroupCallInviteLink::revokeGroupCallInviteLink() + : group_call_id_() +{} + +revokeGroupCallInviteLink::revokeGroupCallInviteLink(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t revokeGroupCallInviteLink::ID; + +void revokeGroupCallInviteLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "revokeGroupCallInviteLink"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +saveApplicationLogEvent::saveApplicationLogEvent() + : type_() + , chat_id_() + , data_() +{} + +saveApplicationLogEvent::saveApplicationLogEvent(string const &type_, int53 chat_id_, object_ptr<JsonValue> &&data_) + : type_(type_) + , chat_id_(chat_id_) + , data_(std::move(data_)) +{} + +const std::int32_t saveApplicationLogEvent::ID; + +void saveApplicationLogEvent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "saveApplicationLogEvent"); + s.store_field("type", type_); + s.store_field("chat_id", chat_id_); + s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); + s.store_class_end(); + } +} + +searchBackground::searchBackground() + : name_() +{} + +searchBackground::searchBackground(string const &name_) + : name_(name_) +{} + +const std::int32_t searchBackground::ID; + +void searchBackground::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchBackground"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +searchCallMessages::searchCallMessages() + : from_message_id_() + , limit_() + , only_missed_() +{} + +searchCallMessages::searchCallMessages(int53 from_message_id_, int32 limit_, bool only_missed_) + : from_message_id_(from_message_id_) + , limit_(limit_) + , only_missed_(only_missed_) +{} + +const std::int32_t searchCallMessages::ID; + +void searchCallMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchCallMessages"); + s.store_field("from_message_id", from_message_id_); + s.store_field("limit", limit_); + s.store_field("only_missed", only_missed_); + s.store_class_end(); + } +} + +searchChatMembers::searchChatMembers() + : chat_id_() + , query_() + , limit_() + , filter_() +{} + +searchChatMembers::searchChatMembers(int53 chat_id_, string const &query_, int32 limit_, object_ptr<ChatMembersFilter> &&filter_) + : chat_id_(chat_id_) + , query_(query_) + , limit_(limit_) + , filter_(std::move(filter_)) +{} + +const std::int32_t searchChatMembers::ID; + +void searchChatMembers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchChatMembers"); + s.store_field("chat_id", chat_id_); + s.store_field("query", query_); + s.store_field("limit", limit_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_class_end(); + } +} + +searchChatMessages::searchChatMessages() + : chat_id_() + , query_() + , sender_id_() + , from_message_id_() + , offset_() + , limit_() + , filter_() + , message_thread_id_() +{} + +searchChatMessages::searchChatMessages(int53 chat_id_, string const &query_, object_ptr<MessageSender> &&sender_id_, int53 from_message_id_, int32 offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_) + : chat_id_(chat_id_) + , query_(query_) + , sender_id_(std::move(sender_id_)) + , from_message_id_(from_message_id_) + , offset_(offset_) + , limit_(limit_) + , filter_(std::move(filter_)) + , message_thread_id_(message_thread_id_) +{} + +const std::int32_t searchChatMessages::ID; + +void searchChatMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchChatMessages"); + s.store_field("chat_id", chat_id_); + s.store_field("query", query_); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_field("from_message_id", from_message_id_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +searchChatRecentLocationMessages::searchChatRecentLocationMessages() + : chat_id_() + , limit_() +{} + +searchChatRecentLocationMessages::searchChatRecentLocationMessages(int53 chat_id_, int32 limit_) + : chat_id_(chat_id_) + , limit_(limit_) +{} + +const std::int32_t searchChatRecentLocationMessages::ID; + +void searchChatRecentLocationMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchChatRecentLocationMessages"); + s.store_field("chat_id", chat_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchChats::searchChats() + : query_() + , limit_() +{} + +searchChats::searchChats(string const &query_, int32 limit_) + : query_(query_) + , limit_(limit_) +{} + +const std::int32_t searchChats::ID; + +void searchChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchChats"); + s.store_field("query", query_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchChatsNearby::searchChatsNearby() + : location_() +{} + +searchChatsNearby::searchChatsNearby(object_ptr<location> &&location_) + : location_(std::move(location_)) +{} + +const std::int32_t searchChatsNearby::ID; + +void searchChatsNearby::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchChatsNearby"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_class_end(); + } +} + +searchChatsOnServer::searchChatsOnServer() + : query_() + , limit_() +{} + +searchChatsOnServer::searchChatsOnServer(string const &query_, int32 limit_) + : query_(query_) + , limit_(limit_) +{} + +const std::int32_t searchChatsOnServer::ID; + +void searchChatsOnServer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchChatsOnServer"); + s.store_field("query", query_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchContacts::searchContacts() + : query_() + , limit_() +{} + +searchContacts::searchContacts(string const &query_, int32 limit_) + : query_(query_) + , limit_(limit_) +{} + +const std::int32_t searchContacts::ID; + +void searchContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchContacts"); + s.store_field("query", query_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchEmojis::searchEmojis() + : text_() + , exact_match_() + , input_language_codes_() +{} + +searchEmojis::searchEmojis(string const &text_, bool exact_match_, array<string> &&input_language_codes_) + : text_(text_) + , exact_match_(exact_match_) + , input_language_codes_(std::move(input_language_codes_)) +{} + +const std::int32_t searchEmojis::ID; + +void searchEmojis::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchEmojis"); + s.store_field("text", text_); + s.store_field("exact_match", exact_match_); + { s.store_vector_begin("input_language_codes", input_language_codes_.size()); for (const auto &_value : input_language_codes_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +searchFileDownloads::searchFileDownloads() + : query_() + , only_active_() + , only_completed_() + , offset_() + , limit_() +{} + +searchFileDownloads::searchFileDownloads(string const &query_, bool only_active_, bool only_completed_, string const &offset_, int32 limit_) + : query_(query_) + , only_active_(only_active_) + , only_completed_(only_completed_) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t searchFileDownloads::ID; + +void searchFileDownloads::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchFileDownloads"); + s.store_field("query", query_); + s.store_field("only_active", only_active_); + s.store_field("only_completed", only_completed_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchHashtags::searchHashtags() + : prefix_() + , limit_() +{} + +searchHashtags::searchHashtags(string const &prefix_, int32 limit_) + : prefix_(prefix_) + , limit_(limit_) +{} + +const std::int32_t searchHashtags::ID; + +void searchHashtags::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchHashtags"); + s.store_field("prefix", prefix_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchInstalledStickerSets::searchInstalledStickerSets() + : sticker_type_() + , query_() + , limit_() +{} + +searchInstalledStickerSets::searchInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_) + : sticker_type_(std::move(sticker_type_)) + , query_(query_) + , limit_(limit_) +{} + +const std::int32_t searchInstalledStickerSets::ID; + +void searchInstalledStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchInstalledStickerSets"); + s.store_object_field("sticker_type", static_cast<const BaseObject *>(sticker_type_.get())); + s.store_field("query", query_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchMessages::searchMessages() + : chat_list_() + , query_() + , offset_date_() + , offset_chat_id_() + , offset_message_id_() + , limit_() + , filter_() + , min_date_() + , max_date_() +{} + +searchMessages::searchMessages(object_ptr<ChatList> &&chat_list_, string const &query_, int32 offset_date_, int53 offset_chat_id_, int53 offset_message_id_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int32 min_date_, int32 max_date_) + : chat_list_(std::move(chat_list_)) + , query_(query_) + , offset_date_(offset_date_) + , offset_chat_id_(offset_chat_id_) + , offset_message_id_(offset_message_id_) + , limit_(limit_) + , filter_(std::move(filter_)) + , min_date_(min_date_) + , max_date_(max_date_) +{} + +const std::int32_t searchMessages::ID; + +void searchMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchMessages"); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + s.store_field("query", query_); + s.store_field("offset_date", offset_date_); + s.store_field("offset_chat_id", offset_chat_id_); + s.store_field("offset_message_id", offset_message_id_); + s.store_field("limit", limit_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("min_date", min_date_); + s.store_field("max_date", max_date_); + s.store_class_end(); + } +} + +searchOutgoingDocumentMessages::searchOutgoingDocumentMessages() + : query_() + , limit_() +{} + +searchOutgoingDocumentMessages::searchOutgoingDocumentMessages(string const &query_, int32 limit_) + : query_(query_) + , limit_(limit_) +{} + +const std::int32_t searchOutgoingDocumentMessages::ID; + +void searchOutgoingDocumentMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchOutgoingDocumentMessages"); + s.store_field("query", query_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchPublicChat::searchPublicChat() + : username_() +{} + +searchPublicChat::searchPublicChat(string const &username_) + : username_(username_) +{} + +const std::int32_t searchPublicChat::ID; + +void searchPublicChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchPublicChat"); + s.store_field("username", username_); + s.store_class_end(); + } +} + +searchPublicChats::searchPublicChats() + : query_() +{} + +searchPublicChats::searchPublicChats(string const &query_) + : query_(query_) +{} + +const std::int32_t searchPublicChats::ID; + +void searchPublicChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchPublicChats"); + s.store_field("query", query_); + s.store_class_end(); + } +} + +searchSecretMessages::searchSecretMessages() + : chat_id_() + , query_() + , offset_() + , limit_() + , filter_() +{} + +searchSecretMessages::searchSecretMessages(int53 chat_id_, string const &query_, string const &offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_) + : chat_id_(chat_id_) + , query_(query_) + , offset_(offset_) + , limit_(limit_) + , filter_(std::move(filter_)) +{} + +const std::int32_t searchSecretMessages::ID; + +void searchSecretMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchSecretMessages"); + s.store_field("chat_id", chat_id_); + s.store_field("query", query_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_class_end(); + } +} + +searchStickerSet::searchStickerSet() + : name_() +{} + +searchStickerSet::searchStickerSet(string const &name_) + : name_(name_) +{} + +const std::int32_t searchStickerSet::ID; + +void searchStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchStickerSet"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +searchStickerSets::searchStickerSets() + : query_() +{} + +searchStickerSets::searchStickerSets(string const &query_) + : query_(query_) +{} + +const std::int32_t searchStickerSets::ID; + +void searchStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchStickerSets"); + s.store_field("query", query_); + s.store_class_end(); + } +} + +searchStickers::searchStickers() + : emoji_() + , limit_() +{} + +searchStickers::searchStickers(string const &emoji_, int32 limit_) + : emoji_(emoji_) + , limit_(limit_) +{} + +const std::int32_t searchStickers::ID; + +void searchStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchStickers"); + s.store_field("emoji", emoji_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +searchUserByPhoneNumber::searchUserByPhoneNumber() + : phone_number_() +{} + +searchUserByPhoneNumber::searchUserByPhoneNumber(string const &phone_number_) + : phone_number_(phone_number_) +{} + +const std::int32_t searchUserByPhoneNumber::ID; + +void searchUserByPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchUserByPhoneNumber"); + s.store_field("phone_number", phone_number_); + s.store_class_end(); + } +} + +sendBotStartMessage::sendBotStartMessage() + : bot_user_id_() + , chat_id_() + , parameter_() +{} + +sendBotStartMessage::sendBotStartMessage(int53 bot_user_id_, int53 chat_id_, string const ¶meter_) + : bot_user_id_(bot_user_id_) + , chat_id_(chat_id_) + , parameter_(parameter_) +{} + +const std::int32_t sendBotStartMessage::ID; + +void sendBotStartMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendBotStartMessage"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("chat_id", chat_id_); + s.store_field("parameter", parameter_); + s.store_class_end(); + } +} + +sendCallDebugInformation::sendCallDebugInformation() + : call_id_() + , debug_information_() +{} + +sendCallDebugInformation::sendCallDebugInformation(int32 call_id_, string const &debug_information_) + : call_id_(call_id_) + , debug_information_(debug_information_) +{} + +const std::int32_t sendCallDebugInformation::ID; + +void sendCallDebugInformation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendCallDebugInformation"); + s.store_field("call_id", call_id_); + s.store_field("debug_information", debug_information_); + s.store_class_end(); + } +} + +sendCallLog::sendCallLog() + : call_id_() + , log_file_() +{} + +sendCallLog::sendCallLog(int32 call_id_, object_ptr<InputFile> &&log_file_) + : call_id_(call_id_) + , log_file_(std::move(log_file_)) +{} + +const std::int32_t sendCallLog::ID; + +void sendCallLog::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendCallLog"); + s.store_field("call_id", call_id_); + s.store_object_field("log_file", static_cast<const BaseObject *>(log_file_.get())); + s.store_class_end(); + } +} + +sendCallRating::sendCallRating() + : call_id_() + , rating_() + , comment_() + , problems_() +{} + +sendCallRating::sendCallRating(int32 call_id_, int32 rating_, string const &comment_, array<object_ptr<CallProblem>> &&problems_) + : call_id_(call_id_) + , rating_(rating_) + , comment_(comment_) + , problems_(std::move(problems_)) +{} + +const std::int32_t sendCallRating::ID; + +void sendCallRating::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendCallRating"); + s.store_field("call_id", call_id_); + s.store_field("rating", rating_); + s.store_field("comment", comment_); + { s.store_vector_begin("problems", problems_.size()); for (const auto &_value : problems_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +sendCallSignalingData::sendCallSignalingData() + : call_id_() + , data_() +{} + +sendCallSignalingData::sendCallSignalingData(int32 call_id_, bytes const &data_) + : call_id_(call_id_) + , data_(std::move(data_)) +{} + +const std::int32_t sendCallSignalingData::ID; + +void sendCallSignalingData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendCallSignalingData"); + s.store_field("call_id", call_id_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +sendChatAction::sendChatAction() + : chat_id_() + , message_thread_id_() + , action_() +{} + +sendChatAction::sendChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<ChatAction> &&action_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , action_(std::move(action_)) +{} + +const std::int32_t sendChatAction::ID; + +void sendChatAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendChatAction"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +sendChatScreenshotTakenNotification::sendChatScreenshotTakenNotification() + : chat_id_() +{} + +sendChatScreenshotTakenNotification::sendChatScreenshotTakenNotification(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t sendChatScreenshotTakenNotification::ID; + +void sendChatScreenshotTakenNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendChatScreenshotTakenNotification"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +sendCustomRequest::sendCustomRequest() + : method_() + , parameters_() +{} + +sendCustomRequest::sendCustomRequest(string const &method_, string const ¶meters_) + : method_(method_) + , parameters_(parameters_) +{} + +const std::int32_t sendCustomRequest::ID; + +void sendCustomRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendCustomRequest"); + s.store_field("method", method_); + s.store_field("parameters", parameters_); + s.store_class_end(); + } +} + +sendEmailAddressVerificationCode::sendEmailAddressVerificationCode() + : email_address_() +{} + +sendEmailAddressVerificationCode::sendEmailAddressVerificationCode(string const &email_address_) + : email_address_(email_address_) +{} + +const std::int32_t sendEmailAddressVerificationCode::ID; + +void sendEmailAddressVerificationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendEmailAddressVerificationCode"); + s.store_field("email_address", email_address_); + s.store_class_end(); + } +} + +sendInlineQueryResultMessage::sendInlineQueryResultMessage() + : chat_id_() + , message_thread_id_() + , reply_to_message_id_() + , options_() + , query_id_() + , result_id_() + , hide_via_bot_() +{} + +sendInlineQueryResultMessage::sendInlineQueryResultMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, int64 query_id_, string const &result_id_, bool hide_via_bot_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , reply_to_message_id_(reply_to_message_id_) + , options_(std::move(options_)) + , query_id_(query_id_) + , result_id_(result_id_) + , hide_via_bot_(hide_via_bot_) +{} + +const std::int32_t sendInlineQueryResultMessage::ID; + +void sendInlineQueryResultMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendInlineQueryResultMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("reply_to_message_id", reply_to_message_id_); + s.store_object_field("options", static_cast<const BaseObject *>(options_.get())); + s.store_field("query_id", query_id_); + s.store_field("result_id", result_id_); + s.store_field("hide_via_bot", hide_via_bot_); + s.store_class_end(); + } +} + +sendMessage::sendMessage() + : chat_id_() + , message_thread_id_() + , reply_to_message_id_() + , options_() + , reply_markup_() + , input_message_content_() +{} + +sendMessage::sendMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , reply_to_message_id_(reply_to_message_id_) + , options_(std::move(options_)) + , reply_markup_(std::move(reply_markup_)) + , input_message_content_(std::move(input_message_content_)) +{} + +const std::int32_t sendMessage::ID; + +void sendMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("reply_to_message_id", reply_to_message_id_); + s.store_object_field("options", static_cast<const BaseObject *>(options_.get())); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_object_field("input_message_content", static_cast<const BaseObject *>(input_message_content_.get())); + s.store_class_end(); + } +} + +sendMessageAlbum::sendMessageAlbum() + : chat_id_() + , message_thread_id_() + , reply_to_message_id_() + , options_() + , input_message_contents_() + , only_preview_() +{} + +sendMessageAlbum::sendMessageAlbum(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, array<object_ptr<InputMessageContent>> &&input_message_contents_, bool only_preview_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , reply_to_message_id_(reply_to_message_id_) + , options_(std::move(options_)) + , input_message_contents_(std::move(input_message_contents_)) + , only_preview_(only_preview_) +{} + +const std::int32_t sendMessageAlbum::ID; + +void sendMessageAlbum::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageAlbum"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("reply_to_message_id", reply_to_message_id_); + s.store_object_field("options", static_cast<const BaseObject *>(options_.get())); + { s.store_vector_begin("input_message_contents", input_message_contents_.size()); for (const auto &_value : input_message_contents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("only_preview", only_preview_); + s.store_class_end(); + } +} + +sendPassportAuthorizationForm::sendPassportAuthorizationForm() + : autorization_form_id_() + , types_() +{} + +sendPassportAuthorizationForm::sendPassportAuthorizationForm(int32 autorization_form_id_, array<object_ptr<PassportElementType>> &&types_) + : autorization_form_id_(autorization_form_id_) + , types_(std::move(types_)) +{} + +const std::int32_t sendPassportAuthorizationForm::ID; + +void sendPassportAuthorizationForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendPassportAuthorizationForm"); + s.store_field("autorization_form_id", autorization_form_id_); + { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +sendPaymentForm::sendPaymentForm() + : input_invoice_() + , payment_form_id_() + , order_info_id_() + , shipping_option_id_() + , credentials_() + , tip_amount_() +{} + +sendPaymentForm::sendPaymentForm(object_ptr<InputInvoice> &&input_invoice_, int64 payment_form_id_, string const &order_info_id_, string const &shipping_option_id_, object_ptr<InputCredentials> &&credentials_, int53 tip_amount_) + : input_invoice_(std::move(input_invoice_)) + , payment_form_id_(payment_form_id_) + , order_info_id_(order_info_id_) + , shipping_option_id_(shipping_option_id_) + , credentials_(std::move(credentials_)) + , tip_amount_(tip_amount_) +{} + +const std::int32_t sendPaymentForm::ID; + +void sendPaymentForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendPaymentForm"); + s.store_object_field("input_invoice", static_cast<const BaseObject *>(input_invoice_.get())); + s.store_field("payment_form_id", payment_form_id_); + s.store_field("order_info_id", order_info_id_); + s.store_field("shipping_option_id", shipping_option_id_); + s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get())); + s.store_field("tip_amount", tip_amount_); + s.store_class_end(); + } +} + +sendPhoneNumberConfirmationCode::sendPhoneNumberConfirmationCode() + : hash_() + , phone_number_() + , settings_() +{} + +sendPhoneNumberConfirmationCode::sendPhoneNumberConfirmationCode(string const &hash_, string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_) + : hash_(hash_) + , phone_number_(phone_number_) + , settings_(std::move(settings_)) +{} + +const std::int32_t sendPhoneNumberConfirmationCode::ID; + +void sendPhoneNumberConfirmationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendPhoneNumberConfirmationCode"); + s.store_field("hash", hash_); + s.store_field("phone_number", phone_number_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +sendPhoneNumberVerificationCode::sendPhoneNumberVerificationCode() + : phone_number_() + , settings_() +{} + +sendPhoneNumberVerificationCode::sendPhoneNumberVerificationCode(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_) + : phone_number_(phone_number_) + , settings_(std::move(settings_)) +{} + +const std::int32_t sendPhoneNumberVerificationCode::ID; + +void sendPhoneNumberVerificationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendPhoneNumberVerificationCode"); + s.store_field("phone_number", phone_number_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +sendWebAppData::sendWebAppData() + : bot_user_id_() + , button_text_() + , data_() +{} + +sendWebAppData::sendWebAppData(int53 bot_user_id_, string const &button_text_, string const &data_) + : bot_user_id_(bot_user_id_) + , button_text_(button_text_) + , data_(data_) +{} + +const std::int32_t sendWebAppData::ID; + +void sendWebAppData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendWebAppData"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("button_text", button_text_); + s.store_field("data", data_); + s.store_class_end(); + } +} + +setAccountTtl::setAccountTtl() + : ttl_() +{} + +setAccountTtl::setAccountTtl(object_ptr<accountTtl> &&ttl_) + : ttl_(std::move(ttl_)) +{} + +const std::int32_t setAccountTtl::ID; + +void setAccountTtl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setAccountTtl"); + s.store_object_field("ttl", static_cast<const BaseObject *>(ttl_.get())); + s.store_class_end(); + } +} + +setAlarm::setAlarm() + : seconds_() +{} + +setAlarm::setAlarm(double seconds_) + : seconds_(seconds_) +{} + +const std::int32_t setAlarm::ID; + +void setAlarm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setAlarm"); + s.store_field("seconds", seconds_); + s.store_class_end(); + } +} + +setAuthenticationEmailAddress::setAuthenticationEmailAddress() + : email_address_() +{} + +setAuthenticationEmailAddress::setAuthenticationEmailAddress(string const &email_address_) + : email_address_(email_address_) +{} + +const std::int32_t setAuthenticationEmailAddress::ID; + +void setAuthenticationEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setAuthenticationEmailAddress"); + s.store_field("email_address", email_address_); + s.store_class_end(); + } +} + +setAuthenticationPhoneNumber::setAuthenticationPhoneNumber() + : phone_number_() + , settings_() +{} + +setAuthenticationPhoneNumber::setAuthenticationPhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_) + : phone_number_(phone_number_) + , settings_(std::move(settings_)) +{} + +const std::int32_t setAuthenticationPhoneNumber::ID; + +void setAuthenticationPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setAuthenticationPhoneNumber"); + s.store_field("phone_number", phone_number_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +setAutoDownloadSettings::setAutoDownloadSettings() + : settings_() + , type_() +{} + +setAutoDownloadSettings::setAutoDownloadSettings(object_ptr<autoDownloadSettings> &&settings_, object_ptr<NetworkType> &&type_) + : settings_(std::move(settings_)) + , type_(std::move(type_)) +{} + +const std::int32_t setAutoDownloadSettings::ID; + +void setAutoDownloadSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setAutoDownloadSettings"); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +setBackground::setBackground() + : background_() + , type_() + , for_dark_theme_() +{} + +setBackground::setBackground(object_ptr<InputBackground> &&background_, object_ptr<BackgroundType> &&type_, bool for_dark_theme_) + : background_(std::move(background_)) + , type_(std::move(type_)) + , for_dark_theme_(for_dark_theme_) +{} + +const std::int32_t setBackground::ID; + +void setBackground::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setBackground"); + s.store_object_field("background", static_cast<const BaseObject *>(background_.get())); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("for_dark_theme", for_dark_theme_); + s.store_class_end(); + } +} + +setBio::setBio() + : bio_() +{} + +setBio::setBio(string const &bio_) + : bio_(bio_) +{} + +const std::int32_t setBio::ID; + +void setBio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setBio"); + s.store_field("bio", bio_); + s.store_class_end(); + } +} + +setBotUpdatesStatus::setBotUpdatesStatus() + : pending_update_count_() + , error_message_() +{} + +setBotUpdatesStatus::setBotUpdatesStatus(int32 pending_update_count_, string const &error_message_) + : pending_update_count_(pending_update_count_) + , error_message_(error_message_) +{} + +const std::int32_t setBotUpdatesStatus::ID; + +void setBotUpdatesStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setBotUpdatesStatus"); + s.store_field("pending_update_count", pending_update_count_); + s.store_field("error_message", error_message_); + s.store_class_end(); + } +} + +setChatAvailableReactions::setChatAvailableReactions() + : chat_id_() + , available_reactions_() +{} + +setChatAvailableReactions::setChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_) + : chat_id_(chat_id_) + , available_reactions_(std::move(available_reactions_)) +{} + +const std::int32_t setChatAvailableReactions::ID; + +void setChatAvailableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatAvailableReactions"); + s.store_field("chat_id", chat_id_); + s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); + s.store_class_end(); + } +} + +setChatClientData::setChatClientData() + : chat_id_() + , client_data_() +{} + +setChatClientData::setChatClientData(int53 chat_id_, string const &client_data_) + : chat_id_(chat_id_) + , client_data_(client_data_) +{} + +const std::int32_t setChatClientData::ID; + +void setChatClientData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatClientData"); + s.store_field("chat_id", chat_id_); + s.store_field("client_data", client_data_); + s.store_class_end(); + } +} + +setChatDescription::setChatDescription() + : chat_id_() + , description_() +{} + +setChatDescription::setChatDescription(int53 chat_id_, string const &description_) + : chat_id_(chat_id_) + , description_(description_) +{} + +const std::int32_t setChatDescription::ID; + +void setChatDescription::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatDescription"); + s.store_field("chat_id", chat_id_); + s.store_field("description", description_); + s.store_class_end(); + } +} + +setChatDiscussionGroup::setChatDiscussionGroup() + : chat_id_() + , discussion_chat_id_() +{} + +setChatDiscussionGroup::setChatDiscussionGroup(int53 chat_id_, int53 discussion_chat_id_) + : chat_id_(chat_id_) + , discussion_chat_id_(discussion_chat_id_) +{} + +const std::int32_t setChatDiscussionGroup::ID; + +void setChatDiscussionGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatDiscussionGroup"); + s.store_field("chat_id", chat_id_); + s.store_field("discussion_chat_id", discussion_chat_id_); + s.store_class_end(); + } +} + +setChatDraftMessage::setChatDraftMessage() + : chat_id_() + , message_thread_id_() + , draft_message_() +{} + +setChatDraftMessage::setChatDraftMessage(int53 chat_id_, int53 message_thread_id_, object_ptr<draftMessage> &&draft_message_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , draft_message_(std::move(draft_message_)) +{} + +const std::int32_t setChatDraftMessage::ID; + +void setChatDraftMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatDraftMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_object_field("draft_message", static_cast<const BaseObject *>(draft_message_.get())); + s.store_class_end(); + } +} + +setChatLocation::setChatLocation() + : chat_id_() + , location_() +{} + +setChatLocation::setChatLocation(int53 chat_id_, object_ptr<chatLocation> &&location_) + : chat_id_(chat_id_) + , location_(std::move(location_)) +{} + +const std::int32_t setChatLocation::ID; + +void setChatLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatLocation"); + s.store_field("chat_id", chat_id_); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_class_end(); + } +} + +setChatMemberStatus::setChatMemberStatus() + : chat_id_() + , member_id_() + , status_() +{} + +setChatMemberStatus::setChatMemberStatus(int53 chat_id_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&status_) + : chat_id_(chat_id_) + , member_id_(std::move(member_id_)) + , status_(std::move(status_)) +{} + +const std::int32_t setChatMemberStatus::ID; + +void setChatMemberStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatMemberStatus"); + s.store_field("chat_id", chat_id_); + s.store_object_field("member_id", static_cast<const BaseObject *>(member_id_.get())); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_class_end(); + } +} + +setChatMessageSender::setChatMessageSender() + : chat_id_() + , message_sender_id_() +{} + +setChatMessageSender::setChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_) + : chat_id_(chat_id_) + , message_sender_id_(std::move(message_sender_id_)) +{} + +const std::int32_t setChatMessageSender::ID; + +void setChatMessageSender::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatMessageSender"); + s.store_field("chat_id", chat_id_); + s.store_object_field("message_sender_id", static_cast<const BaseObject *>(message_sender_id_.get())); + s.store_class_end(); + } +} + +setChatMessageTtl::setChatMessageTtl() + : chat_id_() + , ttl_() +{} + +setChatMessageTtl::setChatMessageTtl(int53 chat_id_, int32 ttl_) + : chat_id_(chat_id_) + , ttl_(ttl_) +{} + +const std::int32_t setChatMessageTtl::ID; + +void setChatMessageTtl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatMessageTtl"); + s.store_field("chat_id", chat_id_); + s.store_field("ttl", ttl_); + s.store_class_end(); + } +} + +setChatNotificationSettings::setChatNotificationSettings() + : chat_id_() + , notification_settings_() +{} + +setChatNotificationSettings::setChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &¬ification_settings_) + : chat_id_(chat_id_) + , notification_settings_(std::move(notification_settings_)) +{} + +const std::int32_t setChatNotificationSettings::ID; + +void setChatNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatNotificationSettings"); + s.store_field("chat_id", chat_id_); + s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get())); + s.store_class_end(); + } +} + +setChatPermissions::setChatPermissions() + : chat_id_() + , permissions_() +{} + +setChatPermissions::setChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_) + : chat_id_(chat_id_) + , permissions_(std::move(permissions_)) +{} + +const std::int32_t setChatPermissions::ID; + +void setChatPermissions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatPermissions"); + s.store_field("chat_id", chat_id_); + s.store_object_field("permissions", static_cast<const BaseObject *>(permissions_.get())); + s.store_class_end(); + } +} + +setChatPhoto::setChatPhoto() + : chat_id_() + , photo_() +{} + +setChatPhoto::setChatPhoto(int53 chat_id_, object_ptr<InputChatPhoto> &&photo_) + : chat_id_(chat_id_) + , photo_(std::move(photo_)) +{} + +const std::int32_t setChatPhoto::ID; + +void setChatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatPhoto"); + s.store_field("chat_id", chat_id_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +setChatSlowModeDelay::setChatSlowModeDelay() + : chat_id_() + , slow_mode_delay_() +{} + +setChatSlowModeDelay::setChatSlowModeDelay(int53 chat_id_, int32 slow_mode_delay_) + : chat_id_(chat_id_) + , slow_mode_delay_(slow_mode_delay_) +{} + +const std::int32_t setChatSlowModeDelay::ID; + +void setChatSlowModeDelay::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatSlowModeDelay"); + s.store_field("chat_id", chat_id_); + s.store_field("slow_mode_delay", slow_mode_delay_); + s.store_class_end(); + } +} + +setChatTheme::setChatTheme() + : chat_id_() + , theme_name_() +{} + +setChatTheme::setChatTheme(int53 chat_id_, string const &theme_name_) + : chat_id_(chat_id_) + , theme_name_(theme_name_) +{} + +const std::int32_t setChatTheme::ID; + +void setChatTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatTheme"); + s.store_field("chat_id", chat_id_); + s.store_field("theme_name", theme_name_); + s.store_class_end(); + } +} + +setChatTitle::setChatTitle() + : chat_id_() + , title_() +{} + +setChatTitle::setChatTitle(int53 chat_id_, string const &title_) + : chat_id_(chat_id_) + , title_(title_) +{} + +const std::int32_t setChatTitle::ID; + +void setChatTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setChatTitle"); + s.store_field("chat_id", chat_id_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +setCommands::setCommands() + : scope_() + , language_code_() + , commands_() +{} + +setCommands::setCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_, array<object_ptr<botCommand>> &&commands_) + : scope_(std::move(scope_)) + , language_code_(language_code_) + , commands_(std::move(commands_)) +{} + +const std::int32_t setCommands::ID; + +void setCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setCommands"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_field("language_code", language_code_); + { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +setCustomLanguagePack::setCustomLanguagePack() + : info_() + , strings_() +{} + +setCustomLanguagePack::setCustomLanguagePack(object_ptr<languagePackInfo> &&info_, array<object_ptr<languagePackString>> &&strings_) + : info_(std::move(info_)) + , strings_(std::move(strings_)) +{} + +const std::int32_t setCustomLanguagePack::ID; + +void setCustomLanguagePack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setCustomLanguagePack"); + s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); + { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +setCustomLanguagePackString::setCustomLanguagePackString() + : language_pack_id_() + , new_string_() +{} + +setCustomLanguagePackString::setCustomLanguagePackString(string const &language_pack_id_, object_ptr<languagePackString> &&new_string_) + : language_pack_id_(language_pack_id_) + , new_string_(std::move(new_string_)) +{} + +const std::int32_t setCustomLanguagePackString::ID; + +void setCustomLanguagePackString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setCustomLanguagePackString"); + s.store_field("language_pack_id", language_pack_id_); + s.store_object_field("new_string", static_cast<const BaseObject *>(new_string_.get())); + s.store_class_end(); + } +} + +setDatabaseEncryptionKey::setDatabaseEncryptionKey() + : new_encryption_key_() +{} + +setDatabaseEncryptionKey::setDatabaseEncryptionKey(bytes const &new_encryption_key_) + : new_encryption_key_(std::move(new_encryption_key_)) +{} + +const std::int32_t setDatabaseEncryptionKey::ID; + +void setDatabaseEncryptionKey::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setDatabaseEncryptionKey"); + s.store_bytes_field("new_encryption_key", new_encryption_key_); + s.store_class_end(); + } +} + +setDefaultChannelAdministratorRights::setDefaultChannelAdministratorRights() + : default_channel_administrator_rights_() +{} + +setDefaultChannelAdministratorRights::setDefaultChannelAdministratorRights(object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_) + : default_channel_administrator_rights_(std::move(default_channel_administrator_rights_)) +{} + +const std::int32_t setDefaultChannelAdministratorRights::ID; + +void setDefaultChannelAdministratorRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setDefaultChannelAdministratorRights"); + s.store_object_field("default_channel_administrator_rights", static_cast<const BaseObject *>(default_channel_administrator_rights_.get())); + s.store_class_end(); + } +} + +setDefaultGroupAdministratorRights::setDefaultGroupAdministratorRights() + : default_group_administrator_rights_() +{} + +setDefaultGroupAdministratorRights::setDefaultGroupAdministratorRights(object_ptr<chatAdministratorRights> &&default_group_administrator_rights_) + : default_group_administrator_rights_(std::move(default_group_administrator_rights_)) +{} + +const std::int32_t setDefaultGroupAdministratorRights::ID; + +void setDefaultGroupAdministratorRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setDefaultGroupAdministratorRights"); + s.store_object_field("default_group_administrator_rights", static_cast<const BaseObject *>(default_group_administrator_rights_.get())); + s.store_class_end(); + } +} + +setDefaultReactionType::setDefaultReactionType() + : reaction_type_() +{} + +setDefaultReactionType::setDefaultReactionType(object_ptr<ReactionType> &&reaction_type_) + : reaction_type_(std::move(reaction_type_)) +{} + +const std::int32_t setDefaultReactionType::ID; + +void setDefaultReactionType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setDefaultReactionType"); + s.store_object_field("reaction_type", static_cast<const BaseObject *>(reaction_type_.get())); + s.store_class_end(); + } +} + +setEmojiStatus::setEmojiStatus() + : emoji_status_() + , duration_() +{} + +setEmojiStatus::setEmojiStatus(object_ptr<emojiStatus> &&emoji_status_, int32 duration_) + : emoji_status_(std::move(emoji_status_)) + , duration_(duration_) +{} + +const std::int32_t setEmojiStatus::ID; + +void setEmojiStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setEmojiStatus"); + s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get())); + s.store_field("duration", duration_); + s.store_class_end(); + } +} + +setFileGenerationProgress::setFileGenerationProgress() + : generation_id_() + , expected_size_() + , local_prefix_size_() +{} + +setFileGenerationProgress::setFileGenerationProgress(int64 generation_id_, int53 expected_size_, int53 local_prefix_size_) + : generation_id_(generation_id_) + , expected_size_(expected_size_) + , local_prefix_size_(local_prefix_size_) +{} + +const std::int32_t setFileGenerationProgress::ID; + +void setFileGenerationProgress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setFileGenerationProgress"); + s.store_field("generation_id", generation_id_); + s.store_field("expected_size", expected_size_); + s.store_field("local_prefix_size", local_prefix_size_); + s.store_class_end(); + } +} + +setGameScore::setGameScore() + : chat_id_() + , message_id_() + , edit_message_() + , user_id_() + , score_() + , force_() +{} + +setGameScore::setGameScore(int53 chat_id_, int53 message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , edit_message_(edit_message_) + , user_id_(user_id_) + , score_(score_) + , force_(force_) +{} + +const std::int32_t setGameScore::ID; + +void setGameScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setGameScore"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_field("edit_message", edit_message_); + s.store_field("user_id", user_id_); + s.store_field("score", score_); + s.store_field("force", force_); + s.store_class_end(); + } +} + +setGroupCallParticipantIsSpeaking::setGroupCallParticipantIsSpeaking() + : group_call_id_() + , audio_source_() + , is_speaking_() +{} + +setGroupCallParticipantIsSpeaking::setGroupCallParticipantIsSpeaking(int32 group_call_id_, int32 audio_source_, bool is_speaking_) + : group_call_id_(group_call_id_) + , audio_source_(audio_source_) + , is_speaking_(is_speaking_) +{} + +const std::int32_t setGroupCallParticipantIsSpeaking::ID; + +void setGroupCallParticipantIsSpeaking::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setGroupCallParticipantIsSpeaking"); + s.store_field("group_call_id", group_call_id_); + s.store_field("audio_source", audio_source_); + s.store_field("is_speaking", is_speaking_); + s.store_class_end(); + } +} + +setGroupCallParticipantVolumeLevel::setGroupCallParticipantVolumeLevel() + : group_call_id_() + , participant_id_() + , volume_level_() +{} + +setGroupCallParticipantVolumeLevel::setGroupCallParticipantVolumeLevel(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 volume_level_) + : group_call_id_(group_call_id_) + , participant_id_(std::move(participant_id_)) + , volume_level_(volume_level_) +{} + +const std::int32_t setGroupCallParticipantVolumeLevel::ID; + +void setGroupCallParticipantVolumeLevel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setGroupCallParticipantVolumeLevel"); + s.store_field("group_call_id", group_call_id_); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("volume_level", volume_level_); + s.store_class_end(); + } +} + +setGroupCallTitle::setGroupCallTitle() + : group_call_id_() + , title_() +{} + +setGroupCallTitle::setGroupCallTitle(int32 group_call_id_, string const &title_) + : group_call_id_(group_call_id_) + , title_(title_) +{} + +const std::int32_t setGroupCallTitle::ID; + +void setGroupCallTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setGroupCallTitle"); + s.store_field("group_call_id", group_call_id_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +setInactiveSessionTtl::setInactiveSessionTtl() + : inactive_session_ttl_days_() +{} + +setInactiveSessionTtl::setInactiveSessionTtl(int32 inactive_session_ttl_days_) + : inactive_session_ttl_days_(inactive_session_ttl_days_) +{} + +const std::int32_t setInactiveSessionTtl::ID; + +void setInactiveSessionTtl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setInactiveSessionTtl"); + s.store_field("inactive_session_ttl_days", inactive_session_ttl_days_); + s.store_class_end(); + } +} + +setInlineGameScore::setInlineGameScore() + : inline_message_id_() + , edit_message_() + , user_id_() + , score_() + , force_() +{} + +setInlineGameScore::setInlineGameScore(string const &inline_message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_) + : inline_message_id_(inline_message_id_) + , edit_message_(edit_message_) + , user_id_(user_id_) + , score_(score_) + , force_(force_) +{} + +const std::int32_t setInlineGameScore::ID; + +void setInlineGameScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setInlineGameScore"); + s.store_field("inline_message_id", inline_message_id_); + s.store_field("edit_message", edit_message_); + s.store_field("user_id", user_id_); + s.store_field("score", score_); + s.store_field("force", force_); + s.store_class_end(); + } +} + +setLocation::setLocation() + : location_() +{} + +setLocation::setLocation(object_ptr<location> &&location_) + : location_(std::move(location_)) +{} + +const std::int32_t setLocation::ID; + +void setLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setLocation"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_class_end(); + } +} + +setLogStream::setLogStream() + : log_stream_() +{} + +setLogStream::setLogStream(object_ptr<LogStream> &&log_stream_) + : log_stream_(std::move(log_stream_)) +{} + +const std::int32_t setLogStream::ID; + +void setLogStream::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setLogStream"); + s.store_object_field("log_stream", static_cast<const BaseObject *>(log_stream_.get())); + s.store_class_end(); + } +} + +setLogTagVerbosityLevel::setLogTagVerbosityLevel() + : tag_() + , new_verbosity_level_() +{} + +setLogTagVerbosityLevel::setLogTagVerbosityLevel(string const &tag_, int32 new_verbosity_level_) + : tag_(tag_) + , new_verbosity_level_(new_verbosity_level_) +{} + +const std::int32_t setLogTagVerbosityLevel::ID; + +void setLogTagVerbosityLevel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setLogTagVerbosityLevel"); + s.store_field("tag", tag_); + s.store_field("new_verbosity_level", new_verbosity_level_); + s.store_class_end(); + } +} + +setLogVerbosityLevel::setLogVerbosityLevel() + : new_verbosity_level_() +{} + +setLogVerbosityLevel::setLogVerbosityLevel(int32 new_verbosity_level_) + : new_verbosity_level_(new_verbosity_level_) +{} + +const std::int32_t setLogVerbosityLevel::ID; + +void setLogVerbosityLevel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setLogVerbosityLevel"); + s.store_field("new_verbosity_level", new_verbosity_level_); + s.store_class_end(); + } +} + +setLoginEmailAddress::setLoginEmailAddress() + : new_login_email_address_() +{} + +setLoginEmailAddress::setLoginEmailAddress(string const &new_login_email_address_) + : new_login_email_address_(new_login_email_address_) +{} + +const std::int32_t setLoginEmailAddress::ID; + +void setLoginEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setLoginEmailAddress"); + s.store_field("new_login_email_address", new_login_email_address_); + s.store_class_end(); + } +} + +setMenuButton::setMenuButton() + : user_id_() + , menu_button_() +{} + +setMenuButton::setMenuButton(int53 user_id_, object_ptr<botMenuButton> &&menu_button_) + : user_id_(user_id_) + , menu_button_(std::move(menu_button_)) +{} + +const std::int32_t setMenuButton::ID; + +void setMenuButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setMenuButton"); + s.store_field("user_id", user_id_); + s.store_object_field("menu_button", static_cast<const BaseObject *>(menu_button_.get())); + s.store_class_end(); + } +} + +setName::setName() + : first_name_() + , last_name_() +{} + +setName::setName(string const &first_name_, string const &last_name_) + : first_name_(first_name_) + , last_name_(last_name_) +{} + +const std::int32_t setName::ID; + +void setName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setName"); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_class_end(); + } +} + +setNetworkType::setNetworkType() + : type_() +{} + +setNetworkType::setNetworkType(object_ptr<NetworkType> &&type_) + : type_(std::move(type_)) +{} + +const std::int32_t setNetworkType::ID; + +void setNetworkType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setNetworkType"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +setOption::setOption() + : name_() + , value_() +{} + +setOption::setOption(string const &name_, object_ptr<OptionValue> &&value_) + : name_(name_) + , value_(std::move(value_)) +{} + +const std::int32_t setOption::ID; + +void setOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setOption"); + s.store_field("name", name_); + s.store_object_field("value", static_cast<const BaseObject *>(value_.get())); + s.store_class_end(); + } +} + +setPassportElement::setPassportElement() + : element_() + , password_() +{} + +setPassportElement::setPassportElement(object_ptr<InputPassportElement> &&element_, string const &password_) + : element_(std::move(element_)) + , password_(password_) +{} + +const std::int32_t setPassportElement::ID; + +void setPassportElement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setPassportElement"); + s.store_object_field("element", static_cast<const BaseObject *>(element_.get())); + s.store_field("password", password_); + s.store_class_end(); + } +} + +setPassportElementErrors::setPassportElementErrors() + : user_id_() + , errors_() +{} + +setPassportElementErrors::setPassportElementErrors(int53 user_id_, array<object_ptr<inputPassportElementError>> &&errors_) + : user_id_(user_id_) + , errors_(std::move(errors_)) +{} + +const std::int32_t setPassportElementErrors::ID; + +void setPassportElementErrors::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setPassportElementErrors"); + s.store_field("user_id", user_id_); + { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +setPassword::setPassword() + : old_password_() + , new_password_() + , new_hint_() + , set_recovery_email_address_() + , new_recovery_email_address_() +{} + +setPassword::setPassword(string const &old_password_, string const &new_password_, string const &new_hint_, bool set_recovery_email_address_, string const &new_recovery_email_address_) + : old_password_(old_password_) + , new_password_(new_password_) + , new_hint_(new_hint_) + , set_recovery_email_address_(set_recovery_email_address_) + , new_recovery_email_address_(new_recovery_email_address_) +{} + +const std::int32_t setPassword::ID; + +void setPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setPassword"); + s.store_field("old_password", old_password_); + s.store_field("new_password", new_password_); + s.store_field("new_hint", new_hint_); + s.store_field("set_recovery_email_address", set_recovery_email_address_); + s.store_field("new_recovery_email_address", new_recovery_email_address_); + s.store_class_end(); + } +} + +setPinnedChats::setPinnedChats() + : chat_list_() + , chat_ids_() +{} + +setPinnedChats::setPinnedChats(object_ptr<ChatList> &&chat_list_, array<int53> &&chat_ids_) + : chat_list_(std::move(chat_list_)) + , chat_ids_(std::move(chat_ids_)) +{} + +const std::int32_t setPinnedChats::ID; + +void setPinnedChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setPinnedChats"); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + { s.store_vector_begin("chat_ids", chat_ids_.size()); for (const auto &_value : chat_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +setPollAnswer::setPollAnswer() + : chat_id_() + , message_id_() + , option_ids_() +{} + +setPollAnswer::setPollAnswer(int53 chat_id_, int53 message_id_, array<int32> &&option_ids_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , option_ids_(std::move(option_ids_)) +{} + +const std::int32_t setPollAnswer::ID; + +void setPollAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setPollAnswer"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + { s.store_vector_begin("option_ids", option_ids_.size()); for (const auto &_value : option_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +setProfilePhoto::setProfilePhoto() + : photo_() +{} + +setProfilePhoto::setProfilePhoto(object_ptr<InputChatPhoto> &&photo_) + : photo_(std::move(photo_)) +{} + +const std::int32_t setProfilePhoto::ID; + +void setProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setProfilePhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +setRecoveryEmailAddress::setRecoveryEmailAddress() + : password_() + , new_recovery_email_address_() +{} + +setRecoveryEmailAddress::setRecoveryEmailAddress(string const &password_, string const &new_recovery_email_address_) + : password_(password_) + , new_recovery_email_address_(new_recovery_email_address_) +{} + +const std::int32_t setRecoveryEmailAddress::ID; + +void setRecoveryEmailAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setRecoveryEmailAddress"); + s.store_field("password", password_); + s.store_field("new_recovery_email_address", new_recovery_email_address_); + s.store_class_end(); + } +} + +setScopeNotificationSettings::setScopeNotificationSettings() + : scope_() + , notification_settings_() +{} + +setScopeNotificationSettings::setScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &¬ification_settings_) + : scope_(std::move(scope_)) + , notification_settings_(std::move(notification_settings_)) +{} + +const std::int32_t setScopeNotificationSettings::ID; + +void setScopeNotificationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setScopeNotificationSettings"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_object_field("notification_settings", static_cast<const BaseObject *>(notification_settings_.get())); + s.store_class_end(); + } +} + +setStickerPositionInSet::setStickerPositionInSet() + : sticker_() + , position_() +{} + +setStickerPositionInSet::setStickerPositionInSet(object_ptr<InputFile> &&sticker_, int32 position_) + : sticker_(std::move(sticker_)) + , position_(position_) +{} + +const std::int32_t setStickerPositionInSet::ID; + +void setStickerPositionInSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setStickerPositionInSet"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_field("position", position_); + s.store_class_end(); + } +} + +setStickerSetThumbnail::setStickerSetThumbnail() + : user_id_() + , name_() + , thumbnail_() +{} + +setStickerSetThumbnail::setStickerSetThumbnail(int53 user_id_, string const &name_, object_ptr<InputFile> &&thumbnail_) + : user_id_(user_id_) + , name_(name_) + , thumbnail_(std::move(thumbnail_)) +{} + +const std::int32_t setStickerSetThumbnail::ID; + +void setStickerSetThumbnail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setStickerSetThumbnail"); + s.store_field("user_id", user_id_); + s.store_field("name", name_); + s.store_object_field("thumbnail", static_cast<const BaseObject *>(thumbnail_.get())); + s.store_class_end(); + } +} + +setSupergroupStickerSet::setSupergroupStickerSet() + : supergroup_id_() + , sticker_set_id_() +{} + +setSupergroupStickerSet::setSupergroupStickerSet(int53 supergroup_id_, int64 sticker_set_id_) + : supergroup_id_(supergroup_id_) + , sticker_set_id_(sticker_set_id_) +{} + +const std::int32_t setSupergroupStickerSet::ID; + +void setSupergroupStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setSupergroupStickerSet"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("sticker_set_id", sticker_set_id_); + s.store_class_end(); + } +} + +setSupergroupUsername::setSupergroupUsername() + : supergroup_id_() + , username_() +{} + +setSupergroupUsername::setSupergroupUsername(int53 supergroup_id_, string const &username_) + : supergroup_id_(supergroup_id_) + , username_(username_) +{} + +const std::int32_t setSupergroupUsername::ID; + +void setSupergroupUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setSupergroupUsername"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("username", username_); + s.store_class_end(); + } +} + +setTdlibParameters::setTdlibParameters() + : use_test_dc_() + , database_directory_() + , files_directory_() + , database_encryption_key_() + , use_file_database_() + , use_chat_info_database_() + , use_message_database_() + , use_secret_chats_() + , api_id_() + , api_hash_() + , system_language_code_() + , device_model_() + , system_version_() + , application_version_() + , enable_storage_optimizer_() + , ignore_file_names_() +{} + +setTdlibParameters::setTdlibParameters(bool use_test_dc_, string const &database_directory_, string const &files_directory_, bytes const &database_encryption_key_, bool use_file_database_, bool use_chat_info_database_, bool use_message_database_, bool use_secret_chats_, int32 api_id_, string const &api_hash_, string const &system_language_code_, string const &device_model_, string const &system_version_, string const &application_version_, bool enable_storage_optimizer_, bool ignore_file_names_) + : use_test_dc_(use_test_dc_) + , database_directory_(database_directory_) + , files_directory_(files_directory_) + , database_encryption_key_(std::move(database_encryption_key_)) + , use_file_database_(use_file_database_) + , use_chat_info_database_(use_chat_info_database_) + , use_message_database_(use_message_database_) + , use_secret_chats_(use_secret_chats_) + , api_id_(api_id_) + , api_hash_(api_hash_) + , system_language_code_(system_language_code_) + , device_model_(device_model_) + , system_version_(system_version_) + , application_version_(application_version_) + , enable_storage_optimizer_(enable_storage_optimizer_) + , ignore_file_names_(ignore_file_names_) +{} + +const std::int32_t setTdlibParameters::ID; + +void setTdlibParameters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setTdlibParameters"); + s.store_field("use_test_dc", use_test_dc_); + s.store_field("database_directory", database_directory_); + s.store_field("files_directory", files_directory_); + s.store_bytes_field("database_encryption_key", database_encryption_key_); + s.store_field("use_file_database", use_file_database_); + s.store_field("use_chat_info_database", use_chat_info_database_); + s.store_field("use_message_database", use_message_database_); + s.store_field("use_secret_chats", use_secret_chats_); + s.store_field("api_id", api_id_); + s.store_field("api_hash", api_hash_); + s.store_field("system_language_code", system_language_code_); + s.store_field("device_model", device_model_); + s.store_field("system_version", system_version_); + s.store_field("application_version", application_version_); + s.store_field("enable_storage_optimizer", enable_storage_optimizer_); + s.store_field("ignore_file_names", ignore_file_names_); + s.store_class_end(); + } +} + +setUserPrivacySettingRules::setUserPrivacySettingRules() + : setting_() + , rules_() +{} + +setUserPrivacySettingRules::setUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_) + : setting_(std::move(setting_)) + , rules_(std::move(rules_)) +{} + +const std::int32_t setUserPrivacySettingRules::ID; + +void setUserPrivacySettingRules::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setUserPrivacySettingRules"); + s.store_object_field("setting", static_cast<const BaseObject *>(setting_.get())); + s.store_object_field("rules", static_cast<const BaseObject *>(rules_.get())); + s.store_class_end(); + } +} + +setUserSupportInfo::setUserSupportInfo() + : user_id_() + , message_() +{} + +setUserSupportInfo::setUserSupportInfo(int53 user_id_, object_ptr<formattedText> &&message_) + : user_id_(user_id_) + , message_(std::move(message_)) +{} + +const std::int32_t setUserSupportInfo::ID; + +void setUserSupportInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setUserSupportInfo"); + s.store_field("user_id", user_id_); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +setUsername::setUsername() + : username_() +{} + +setUsername::setUsername(string const &username_) + : username_(username_) +{} + +const std::int32_t setUsername::ID; + +void setUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setUsername"); + s.store_field("username", username_); + s.store_class_end(); + } +} + +setVideoChatDefaultParticipant::setVideoChatDefaultParticipant() + : chat_id_() + , default_participant_id_() +{} + +setVideoChatDefaultParticipant::setVideoChatDefaultParticipant(int53 chat_id_, object_ptr<MessageSender> &&default_participant_id_) + : chat_id_(chat_id_) + , default_participant_id_(std::move(default_participant_id_)) +{} + +const std::int32_t setVideoChatDefaultParticipant::ID; + +void setVideoChatDefaultParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "setVideoChatDefaultParticipant"); + s.store_field("chat_id", chat_id_); + s.store_object_field("default_participant_id", static_cast<const BaseObject *>(default_participant_id_.get())); + s.store_class_end(); + } +} + +sharePhoneNumber::sharePhoneNumber() + : user_id_() +{} + +sharePhoneNumber::sharePhoneNumber(int53 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t sharePhoneNumber::ID; + +void sharePhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sharePhoneNumber"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +startGroupCallRecording::startGroupCallRecording() + : group_call_id_() + , title_() + , record_video_() + , use_portrait_orientation_() +{} + +startGroupCallRecording::startGroupCallRecording(int32 group_call_id_, string const &title_, bool record_video_, bool use_portrait_orientation_) + : group_call_id_(group_call_id_) + , title_(title_) + , record_video_(record_video_) + , use_portrait_orientation_(use_portrait_orientation_) +{} + +const std::int32_t startGroupCallRecording::ID; + +void startGroupCallRecording::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "startGroupCallRecording"); + s.store_field("group_call_id", group_call_id_); + s.store_field("title", title_); + s.store_field("record_video", record_video_); + s.store_field("use_portrait_orientation", use_portrait_orientation_); + s.store_class_end(); + } +} + +startGroupCallScreenSharing::startGroupCallScreenSharing() + : group_call_id_() + , audio_source_id_() + , payload_() +{} + +startGroupCallScreenSharing::startGroupCallScreenSharing(int32 group_call_id_, int32 audio_source_id_, string const &payload_) + : group_call_id_(group_call_id_) + , audio_source_id_(audio_source_id_) + , payload_(payload_) +{} + +const std::int32_t startGroupCallScreenSharing::ID; + +void startGroupCallScreenSharing::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "startGroupCallScreenSharing"); + s.store_field("group_call_id", group_call_id_); + s.store_field("audio_source_id", audio_source_id_); + s.store_field("payload", payload_); + s.store_class_end(); + } +} + +startScheduledGroupCall::startScheduledGroupCall() + : group_call_id_() +{} + +startScheduledGroupCall::startScheduledGroupCall(int32 group_call_id_) + : group_call_id_(group_call_id_) +{} + +const std::int32_t startScheduledGroupCall::ID; + +void startScheduledGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "startScheduledGroupCall"); + s.store_field("group_call_id", group_call_id_); + s.store_class_end(); + } +} + +stopPoll::stopPoll() + : chat_id_() + , message_id_() + , reply_markup_() +{} + +stopPoll::stopPoll(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_) + : chat_id_(chat_id_) + , message_id_(message_id_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t stopPoll::ID; + +void stopPoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stopPoll"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); + s.store_class_end(); + } +} + +synchronizeLanguagePack::synchronizeLanguagePack() + : language_pack_id_() +{} + +synchronizeLanguagePack::synchronizeLanguagePack(string const &language_pack_id_) + : language_pack_id_(language_pack_id_) +{} + +const std::int32_t synchronizeLanguagePack::ID; + +void synchronizeLanguagePack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "synchronizeLanguagePack"); + s.store_field("language_pack_id", language_pack_id_); + s.store_class_end(); + } +} + +terminateAllOtherSessions::terminateAllOtherSessions() { +} + +const std::int32_t terminateAllOtherSessions::ID; + +void terminateAllOtherSessions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "terminateAllOtherSessions"); + s.store_class_end(); + } +} + +terminateSession::terminateSession() + : session_id_() +{} + +terminateSession::terminateSession(int64 session_id_) + : session_id_(session_id_) +{} + +const std::int32_t terminateSession::ID; + +void terminateSession::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "terminateSession"); + s.store_field("session_id", session_id_); + s.store_class_end(); + } +} + +testCallBytes::testCallBytes() + : x_() +{} + +testCallBytes::testCallBytes(bytes const &x_) + : x_(std::move(x_)) +{} + +const std::int32_t testCallBytes::ID; + +void testCallBytes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testCallBytes"); + s.store_bytes_field("x", x_); + s.store_class_end(); + } +} + +testCallEmpty::testCallEmpty() { +} + +const std::int32_t testCallEmpty::ID; + +void testCallEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testCallEmpty"); + s.store_class_end(); + } +} + +testCallString::testCallString() + : x_() +{} + +testCallString::testCallString(string const &x_) + : x_(x_) +{} + +const std::int32_t testCallString::ID; + +void testCallString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testCallString"); + s.store_field("x", x_); + s.store_class_end(); + } +} + +testCallVectorInt::testCallVectorInt() + : x_() +{} + +testCallVectorInt::testCallVectorInt(array<int32> &&x_) + : x_(std::move(x_)) +{} + +const std::int32_t testCallVectorInt::ID; + +void testCallVectorInt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testCallVectorInt"); + { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +testCallVectorIntObject::testCallVectorIntObject() + : x_() +{} + +testCallVectorIntObject::testCallVectorIntObject(array<object_ptr<testInt>> &&x_) + : x_(std::move(x_)) +{} + +const std::int32_t testCallVectorIntObject::ID; + +void testCallVectorIntObject::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testCallVectorIntObject"); + { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +testCallVectorString::testCallVectorString() + : x_() +{} + +testCallVectorString::testCallVectorString(array<string> &&x_) + : x_(std::move(x_)) +{} + +const std::int32_t testCallVectorString::ID; + +void testCallVectorString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testCallVectorString"); + { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +testCallVectorStringObject::testCallVectorStringObject() + : x_() +{} + +testCallVectorStringObject::testCallVectorStringObject(array<object_ptr<testString>> &&x_) + : x_(std::move(x_)) +{} + +const std::int32_t testCallVectorStringObject::ID; + +void testCallVectorStringObject::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testCallVectorStringObject"); + { s.store_vector_begin("x", x_.size()); for (const auto &_value : x_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +testGetDifference::testGetDifference() { +} + +const std::int32_t testGetDifference::ID; + +void testGetDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testGetDifference"); + s.store_class_end(); + } +} + +testNetwork::testNetwork() { +} + +const std::int32_t testNetwork::ID; + +void testNetwork::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testNetwork"); + s.store_class_end(); + } +} + +testProxy::testProxy() + : server_() + , port_() + , type_() + , dc_id_() + , timeout_() +{} + +testProxy::testProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_, int32 dc_id_, double timeout_) + : server_(server_) + , port_(port_) + , type_(std::move(type_)) + , dc_id_(dc_id_) + , timeout_(timeout_) +{} + +const std::int32_t testProxy::ID; + +void testProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testProxy"); + s.store_field("server", server_); + s.store_field("port", port_); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("dc_id", dc_id_); + s.store_field("timeout", timeout_); + s.store_class_end(); + } +} + +testReturnError::testReturnError() + : error_() +{} + +testReturnError::testReturnError(object_ptr<error> &&error_) + : error_(std::move(error_)) +{} + +const std::int32_t testReturnError::ID; + +void testReturnError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testReturnError"); + s.store_object_field("error", static_cast<const BaseObject *>(error_.get())); + s.store_class_end(); + } +} + +testSquareInt::testSquareInt() + : x_() +{} + +testSquareInt::testSquareInt(int32 x_) + : x_(x_) +{} + +const std::int32_t testSquareInt::ID; + +void testSquareInt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testSquareInt"); + s.store_field("x", x_); + s.store_class_end(); + } +} + +testUseUpdate::testUseUpdate() { +} + +const std::int32_t testUseUpdate::ID; + +void testUseUpdate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "testUseUpdate"); + s.store_class_end(); + } +} + +toggleAllDownloadsArePaused::toggleAllDownloadsArePaused() + : are_paused_() +{} + +toggleAllDownloadsArePaused::toggleAllDownloadsArePaused(bool are_paused_) + : are_paused_(are_paused_) +{} + +const std::int32_t toggleAllDownloadsArePaused::ID; + +void toggleAllDownloadsArePaused::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleAllDownloadsArePaused"); + s.store_field("are_paused", are_paused_); + s.store_class_end(); + } +} + +toggleBotIsAddedToAttachmentMenu::toggleBotIsAddedToAttachmentMenu() + : bot_user_id_() + , is_added_() +{} + +toggleBotIsAddedToAttachmentMenu::toggleBotIsAddedToAttachmentMenu(int53 bot_user_id_, bool is_added_) + : bot_user_id_(bot_user_id_) + , is_added_(is_added_) +{} + +const std::int32_t toggleBotIsAddedToAttachmentMenu::ID; + +void toggleBotIsAddedToAttachmentMenu::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleBotIsAddedToAttachmentMenu"); + s.store_field("bot_user_id", bot_user_id_); + s.store_field("is_added", is_added_); + s.store_class_end(); + } +} + +toggleChatDefaultDisableNotification::toggleChatDefaultDisableNotification() + : chat_id_() + , default_disable_notification_() +{} + +toggleChatDefaultDisableNotification::toggleChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_) + : chat_id_(chat_id_) + , default_disable_notification_(default_disable_notification_) +{} + +const std::int32_t toggleChatDefaultDisableNotification::ID; + +void toggleChatDefaultDisableNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleChatDefaultDisableNotification"); + s.store_field("chat_id", chat_id_); + s.store_field("default_disable_notification", default_disable_notification_); + s.store_class_end(); + } +} + +toggleChatHasProtectedContent::toggleChatHasProtectedContent() + : chat_id_() + , has_protected_content_() +{} + +toggleChatHasProtectedContent::toggleChatHasProtectedContent(int53 chat_id_, bool has_protected_content_) + : chat_id_(chat_id_) + , has_protected_content_(has_protected_content_) +{} + +const std::int32_t toggleChatHasProtectedContent::ID; + +void toggleChatHasProtectedContent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleChatHasProtectedContent"); + s.store_field("chat_id", chat_id_); + s.store_field("has_protected_content", has_protected_content_); + s.store_class_end(); + } +} + +toggleChatIsMarkedAsUnread::toggleChatIsMarkedAsUnread() + : chat_id_() + , is_marked_as_unread_() +{} + +toggleChatIsMarkedAsUnread::toggleChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_) + : chat_id_(chat_id_) + , is_marked_as_unread_(is_marked_as_unread_) +{} + +const std::int32_t toggleChatIsMarkedAsUnread::ID; + +void toggleChatIsMarkedAsUnread::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleChatIsMarkedAsUnread"); + s.store_field("chat_id", chat_id_); + s.store_field("is_marked_as_unread", is_marked_as_unread_); + s.store_class_end(); + } +} + +toggleChatIsPinned::toggleChatIsPinned() + : chat_list_() + , chat_id_() + , is_pinned_() +{} + +toggleChatIsPinned::toggleChatIsPinned(object_ptr<ChatList> &&chat_list_, int53 chat_id_, bool is_pinned_) + : chat_list_(std::move(chat_list_)) + , chat_id_(chat_id_) + , is_pinned_(is_pinned_) +{} + +const std::int32_t toggleChatIsPinned::ID; + +void toggleChatIsPinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleChatIsPinned"); + s.store_object_field("chat_list", static_cast<const BaseObject *>(chat_list_.get())); + s.store_field("chat_id", chat_id_); + s.store_field("is_pinned", is_pinned_); + s.store_class_end(); + } +} + +toggleDownloadIsPaused::toggleDownloadIsPaused() + : file_id_() + , is_paused_() +{} + +toggleDownloadIsPaused::toggleDownloadIsPaused(int32 file_id_, bool is_paused_) + : file_id_(file_id_) + , is_paused_(is_paused_) +{} + +const std::int32_t toggleDownloadIsPaused::ID; + +void toggleDownloadIsPaused::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleDownloadIsPaused"); + s.store_field("file_id", file_id_); + s.store_field("is_paused", is_paused_); + s.store_class_end(); + } +} + +toggleForumTopicIsClosed::toggleForumTopicIsClosed() + : chat_id_() + , message_thread_id_() + , is_closed_() +{} + +toggleForumTopicIsClosed::toggleForumTopicIsClosed(int53 chat_id_, int53 message_thread_id_, bool is_closed_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , is_closed_(is_closed_) +{} + +const std::int32_t toggleForumTopicIsClosed::ID; + +void toggleForumTopicIsClosed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleForumTopicIsClosed"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_field("is_closed", is_closed_); + s.store_class_end(); + } +} + +toggleGroupCallEnabledStartNotification::toggleGroupCallEnabledStartNotification() + : group_call_id_() + , enabled_start_notification_() +{} + +toggleGroupCallEnabledStartNotification::toggleGroupCallEnabledStartNotification(int32 group_call_id_, bool enabled_start_notification_) + : group_call_id_(group_call_id_) + , enabled_start_notification_(enabled_start_notification_) +{} + +const std::int32_t toggleGroupCallEnabledStartNotification::ID; + +void toggleGroupCallEnabledStartNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleGroupCallEnabledStartNotification"); + s.store_field("group_call_id", group_call_id_); + s.store_field("enabled_start_notification", enabled_start_notification_); + s.store_class_end(); + } +} + +toggleGroupCallIsMyVideoEnabled::toggleGroupCallIsMyVideoEnabled() + : group_call_id_() + , is_my_video_enabled_() +{} + +toggleGroupCallIsMyVideoEnabled::toggleGroupCallIsMyVideoEnabled(int32 group_call_id_, bool is_my_video_enabled_) + : group_call_id_(group_call_id_) + , is_my_video_enabled_(is_my_video_enabled_) +{} + +const std::int32_t toggleGroupCallIsMyVideoEnabled::ID; + +void toggleGroupCallIsMyVideoEnabled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleGroupCallIsMyVideoEnabled"); + s.store_field("group_call_id", group_call_id_); + s.store_field("is_my_video_enabled", is_my_video_enabled_); + s.store_class_end(); + } +} + +toggleGroupCallIsMyVideoPaused::toggleGroupCallIsMyVideoPaused() + : group_call_id_() + , is_my_video_paused_() +{} + +toggleGroupCallIsMyVideoPaused::toggleGroupCallIsMyVideoPaused(int32 group_call_id_, bool is_my_video_paused_) + : group_call_id_(group_call_id_) + , is_my_video_paused_(is_my_video_paused_) +{} + +const std::int32_t toggleGroupCallIsMyVideoPaused::ID; + +void toggleGroupCallIsMyVideoPaused::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleGroupCallIsMyVideoPaused"); + s.store_field("group_call_id", group_call_id_); + s.store_field("is_my_video_paused", is_my_video_paused_); + s.store_class_end(); + } +} + +toggleGroupCallMuteNewParticipants::toggleGroupCallMuteNewParticipants() + : group_call_id_() + , mute_new_participants_() +{} + +toggleGroupCallMuteNewParticipants::toggleGroupCallMuteNewParticipants(int32 group_call_id_, bool mute_new_participants_) + : group_call_id_(group_call_id_) + , mute_new_participants_(mute_new_participants_) +{} + +const std::int32_t toggleGroupCallMuteNewParticipants::ID; + +void toggleGroupCallMuteNewParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleGroupCallMuteNewParticipants"); + s.store_field("group_call_id", group_call_id_); + s.store_field("mute_new_participants", mute_new_participants_); + s.store_class_end(); + } +} + +toggleGroupCallParticipantIsHandRaised::toggleGroupCallParticipantIsHandRaised() + : group_call_id_() + , participant_id_() + , is_hand_raised_() +{} + +toggleGroupCallParticipantIsHandRaised::toggleGroupCallParticipantIsHandRaised(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_hand_raised_) + : group_call_id_(group_call_id_) + , participant_id_(std::move(participant_id_)) + , is_hand_raised_(is_hand_raised_) +{} + +const std::int32_t toggleGroupCallParticipantIsHandRaised::ID; + +void toggleGroupCallParticipantIsHandRaised::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleGroupCallParticipantIsHandRaised"); + s.store_field("group_call_id", group_call_id_); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("is_hand_raised", is_hand_raised_); + s.store_class_end(); + } +} + +toggleGroupCallParticipantIsMuted::toggleGroupCallParticipantIsMuted() + : group_call_id_() + , participant_id_() + , is_muted_() +{} + +toggleGroupCallParticipantIsMuted::toggleGroupCallParticipantIsMuted(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_muted_) + : group_call_id_(group_call_id_) + , participant_id_(std::move(participant_id_)) + , is_muted_(is_muted_) +{} + +const std::int32_t toggleGroupCallParticipantIsMuted::ID; + +void toggleGroupCallParticipantIsMuted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleGroupCallParticipantIsMuted"); + s.store_field("group_call_id", group_call_id_); + s.store_object_field("participant_id", static_cast<const BaseObject *>(participant_id_.get())); + s.store_field("is_muted", is_muted_); + s.store_class_end(); + } +} + +toggleGroupCallScreenSharingIsPaused::toggleGroupCallScreenSharingIsPaused() + : group_call_id_() + , is_paused_() +{} + +toggleGroupCallScreenSharingIsPaused::toggleGroupCallScreenSharingIsPaused(int32 group_call_id_, bool is_paused_) + : group_call_id_(group_call_id_) + , is_paused_(is_paused_) +{} + +const std::int32_t toggleGroupCallScreenSharingIsPaused::ID; + +void toggleGroupCallScreenSharingIsPaused::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleGroupCallScreenSharingIsPaused"); + s.store_field("group_call_id", group_call_id_); + s.store_field("is_paused", is_paused_); + s.store_class_end(); + } +} + +toggleMessageSenderIsBlocked::toggleMessageSenderIsBlocked() + : sender_id_() + , is_blocked_() +{} + +toggleMessageSenderIsBlocked::toggleMessageSenderIsBlocked(object_ptr<MessageSender> &&sender_id_, bool is_blocked_) + : sender_id_(std::move(sender_id_)) + , is_blocked_(is_blocked_) +{} + +const std::int32_t toggleMessageSenderIsBlocked::ID; + +void toggleMessageSenderIsBlocked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleMessageSenderIsBlocked"); + s.store_object_field("sender_id", static_cast<const BaseObject *>(sender_id_.get())); + s.store_field("is_blocked", is_blocked_); + s.store_class_end(); + } +} + +toggleSessionCanAcceptCalls::toggleSessionCanAcceptCalls() + : session_id_() + , can_accept_calls_() +{} + +toggleSessionCanAcceptCalls::toggleSessionCanAcceptCalls(int64 session_id_, bool can_accept_calls_) + : session_id_(session_id_) + , can_accept_calls_(can_accept_calls_) +{} + +const std::int32_t toggleSessionCanAcceptCalls::ID; + +void toggleSessionCanAcceptCalls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSessionCanAcceptCalls"); + s.store_field("session_id", session_id_); + s.store_field("can_accept_calls", can_accept_calls_); + s.store_class_end(); + } +} + +toggleSessionCanAcceptSecretChats::toggleSessionCanAcceptSecretChats() + : session_id_() + , can_accept_secret_chats_() +{} + +toggleSessionCanAcceptSecretChats::toggleSessionCanAcceptSecretChats(int64 session_id_, bool can_accept_secret_chats_) + : session_id_(session_id_) + , can_accept_secret_chats_(can_accept_secret_chats_) +{} + +const std::int32_t toggleSessionCanAcceptSecretChats::ID; + +void toggleSessionCanAcceptSecretChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSessionCanAcceptSecretChats"); + s.store_field("session_id", session_id_); + s.store_field("can_accept_secret_chats", can_accept_secret_chats_); + s.store_class_end(); + } +} + +toggleSupergroupIsAllHistoryAvailable::toggleSupergroupIsAllHistoryAvailable() + : supergroup_id_() + , is_all_history_available_() +{} + +toggleSupergroupIsAllHistoryAvailable::toggleSupergroupIsAllHistoryAvailable(int53 supergroup_id_, bool is_all_history_available_) + : supergroup_id_(supergroup_id_) + , is_all_history_available_(is_all_history_available_) +{} + +const std::int32_t toggleSupergroupIsAllHistoryAvailable::ID; + +void toggleSupergroupIsAllHistoryAvailable::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSupergroupIsAllHistoryAvailable"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("is_all_history_available", is_all_history_available_); + s.store_class_end(); + } +} + +toggleSupergroupIsBroadcastGroup::toggleSupergroupIsBroadcastGroup() + : supergroup_id_() +{} + +toggleSupergroupIsBroadcastGroup::toggleSupergroupIsBroadcastGroup(int53 supergroup_id_) + : supergroup_id_(supergroup_id_) +{} + +const std::int32_t toggleSupergroupIsBroadcastGroup::ID; + +void toggleSupergroupIsBroadcastGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSupergroupIsBroadcastGroup"); + s.store_field("supergroup_id", supergroup_id_); + s.store_class_end(); + } +} + +toggleSupergroupIsForum::toggleSupergroupIsForum() + : supergroup_id_() + , is_forum_() +{} + +toggleSupergroupIsForum::toggleSupergroupIsForum(int53 supergroup_id_, bool is_forum_) + : supergroup_id_(supergroup_id_) + , is_forum_(is_forum_) +{} + +const std::int32_t toggleSupergroupIsForum::ID; + +void toggleSupergroupIsForum::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSupergroupIsForum"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("is_forum", is_forum_); + s.store_class_end(); + } +} + +toggleSupergroupJoinByRequest::toggleSupergroupJoinByRequest() + : supergroup_id_() + , join_by_request_() +{} + +toggleSupergroupJoinByRequest::toggleSupergroupJoinByRequest(int53 supergroup_id_, bool join_by_request_) + : supergroup_id_(supergroup_id_) + , join_by_request_(join_by_request_) +{} + +const std::int32_t toggleSupergroupJoinByRequest::ID; + +void toggleSupergroupJoinByRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSupergroupJoinByRequest"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("join_by_request", join_by_request_); + s.store_class_end(); + } +} + +toggleSupergroupJoinToSendMessages::toggleSupergroupJoinToSendMessages() + : supergroup_id_() + , join_to_send_messages_() +{} + +toggleSupergroupJoinToSendMessages::toggleSupergroupJoinToSendMessages(int53 supergroup_id_, bool join_to_send_messages_) + : supergroup_id_(supergroup_id_) + , join_to_send_messages_(join_to_send_messages_) +{} + +const std::int32_t toggleSupergroupJoinToSendMessages::ID; + +void toggleSupergroupJoinToSendMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSupergroupJoinToSendMessages"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("join_to_send_messages", join_to_send_messages_); + s.store_class_end(); + } +} + +toggleSupergroupSignMessages::toggleSupergroupSignMessages() + : supergroup_id_() + , sign_messages_() +{} + +toggleSupergroupSignMessages::toggleSupergroupSignMessages(int53 supergroup_id_, bool sign_messages_) + : supergroup_id_(supergroup_id_) + , sign_messages_(sign_messages_) +{} + +const std::int32_t toggleSupergroupSignMessages::ID; + +void toggleSupergroupSignMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSupergroupSignMessages"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("sign_messages", sign_messages_); + s.store_class_end(); + } +} + +toggleSupergroupUsernameIsActive::toggleSupergroupUsernameIsActive() + : supergroup_id_() + , username_() + , is_active_() +{} + +toggleSupergroupUsernameIsActive::toggleSupergroupUsernameIsActive(int53 supergroup_id_, string const &username_, bool is_active_) + : supergroup_id_(supergroup_id_) + , username_(username_) + , is_active_(is_active_) +{} + +const std::int32_t toggleSupergroupUsernameIsActive::ID; + +void toggleSupergroupUsernameIsActive::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleSupergroupUsernameIsActive"); + s.store_field("supergroup_id", supergroup_id_); + s.store_field("username", username_); + s.store_field("is_active", is_active_); + s.store_class_end(); + } +} + +toggleUsernameIsActive::toggleUsernameIsActive() + : username_() + , is_active_() +{} + +toggleUsernameIsActive::toggleUsernameIsActive(string const &username_, bool is_active_) + : username_(username_) + , is_active_(is_active_) +{} + +const std::int32_t toggleUsernameIsActive::ID; + +void toggleUsernameIsActive::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "toggleUsernameIsActive"); + s.store_field("username", username_); + s.store_field("is_active", is_active_); + s.store_class_end(); + } +} + +transferChatOwnership::transferChatOwnership() + : chat_id_() + , user_id_() + , password_() +{} + +transferChatOwnership::transferChatOwnership(int53 chat_id_, int53 user_id_, string const &password_) + : chat_id_(chat_id_) + , user_id_(user_id_) + , password_(password_) +{} + +const std::int32_t transferChatOwnership::ID; + +void transferChatOwnership::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "transferChatOwnership"); + s.store_field("chat_id", chat_id_); + s.store_field("user_id", user_id_); + s.store_field("password", password_); + s.store_class_end(); + } +} + +translateText::translateText() + : text_() + , from_language_code_() + , to_language_code_() +{} + +translateText::translateText(string const &text_, string const &from_language_code_, string const &to_language_code_) + : text_(text_) + , from_language_code_(from_language_code_) + , to_language_code_(to_language_code_) +{} + +const std::int32_t translateText::ID; + +void translateText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "translateText"); + s.store_field("text", text_); + s.store_field("from_language_code", from_language_code_); + s.store_field("to_language_code", to_language_code_); + s.store_class_end(); + } +} + +unpinAllChatMessages::unpinAllChatMessages() + : chat_id_() +{} + +unpinAllChatMessages::unpinAllChatMessages(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t unpinAllChatMessages::ID; + +void unpinAllChatMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "unpinAllChatMessages"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +unpinAllMessageThreadMessages::unpinAllMessageThreadMessages() + : chat_id_() + , message_thread_id_() +{} + +unpinAllMessageThreadMessages::unpinAllMessageThreadMessages(int53 chat_id_, int53 message_thread_id_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) +{} + +const std::int32_t unpinAllMessageThreadMessages::ID; + +void unpinAllMessageThreadMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "unpinAllMessageThreadMessages"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + s.store_class_end(); + } +} + +unpinChatMessage::unpinChatMessage() + : chat_id_() + , message_id_() +{} + +unpinChatMessage::unpinChatMessage(int53 chat_id_, int53 message_id_) + : chat_id_(chat_id_) + , message_id_(message_id_) +{} + +const std::int32_t unpinChatMessage::ID; + +void unpinChatMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "unpinChatMessage"); + s.store_field("chat_id", chat_id_); + s.store_field("message_id", message_id_); + s.store_class_end(); + } +} + +upgradeBasicGroupChatToSupergroupChat::upgradeBasicGroupChatToSupergroupChat() + : chat_id_() +{} + +upgradeBasicGroupChatToSupergroupChat::upgradeBasicGroupChatToSupergroupChat(int53 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t upgradeBasicGroupChatToSupergroupChat::ID; + +void upgradeBasicGroupChatToSupergroupChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upgradeBasicGroupChatToSupergroupChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +uploadStickerFile::uploadStickerFile() + : user_id_() + , sticker_() +{} + +uploadStickerFile::uploadStickerFile(int53 user_id_, object_ptr<inputSticker> &&sticker_) + : user_id_(user_id_) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t uploadStickerFile::ID; + +void uploadStickerFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "uploadStickerFile"); + s.store_field("user_id", user_id_); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +validateOrderInfo::validateOrderInfo() + : input_invoice_() + , order_info_() + , allow_save_() +{} + +validateOrderInfo::validateOrderInfo(object_ptr<InputInvoice> &&input_invoice_, object_ptr<orderInfo> &&order_info_, bool allow_save_) + : input_invoice_(std::move(input_invoice_)) + , order_info_(std::move(order_info_)) + , allow_save_(allow_save_) +{} + +const std::int32_t validateOrderInfo::ID; + +void validateOrderInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "validateOrderInfo"); + s.store_object_field("input_invoice", static_cast<const BaseObject *>(input_invoice_.get())); + s.store_object_field("order_info", static_cast<const BaseObject *>(order_info_.get())); + s.store_field("allow_save", allow_save_); + s.store_class_end(); + } +} + +viewMessages::viewMessages() + : chat_id_() + , message_thread_id_() + , message_ids_() + , force_read_() +{} + +viewMessages::viewMessages(int53 chat_id_, int53 message_thread_id_, array<int53> &&message_ids_, bool force_read_) + : chat_id_(chat_id_) + , message_thread_id_(message_thread_id_) + , message_ids_(std::move(message_ids_)) + , force_read_(force_read_) +{} + +const std::int32_t viewMessages::ID; + +void viewMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "viewMessages"); + s.store_field("chat_id", chat_id_); + s.store_field("message_thread_id", message_thread_id_); + { s.store_vector_begin("message_ids", message_ids_.size()); for (const auto &_value : message_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("force_read", force_read_); + s.store_class_end(); + } +} + +viewPremiumFeature::viewPremiumFeature() + : feature_() +{} + +viewPremiumFeature::viewPremiumFeature(object_ptr<PremiumFeature> &&feature_) + : feature_(std::move(feature_)) +{} + +const std::int32_t viewPremiumFeature::ID; + +void viewPremiumFeature::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "viewPremiumFeature"); + s.store_object_field("feature", static_cast<const BaseObject *>(feature_.get())); + s.store_class_end(); + } +} + +viewTrendingStickerSets::viewTrendingStickerSets() + : sticker_set_ids_() +{} + +viewTrendingStickerSets::viewTrendingStickerSets(array<int64> &&sticker_set_ids_) + : sticker_set_ids_(std::move(sticker_set_ids_)) +{} + +const std::int32_t viewTrendingStickerSets::ID; + +void viewTrendingStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "viewTrendingStickerSets"); + { s.store_vector_begin("sticker_set_ids", sticker_set_ids_.size()); for (const auto &_value : sticker_set_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +writeGeneratedFilePart::writeGeneratedFilePart() + : generation_id_() + , offset_() + , data_() +{} + +writeGeneratedFilePart::writeGeneratedFilePart(int64 generation_id_, int53 offset_, bytes const &data_) + : generation_id_(generation_id_) + , offset_(offset_) + , data_(std::move(data_)) +{} + +const std::int32_t writeGeneratedFilePart::ID; + +void writeGeneratedFilePart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "writeGeneratedFilePart"); + s.store_field("generation_id", generation_id_); + s.store_field("offset", offset_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} +} // namespace td_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.h new file mode 100644 index 0000000000..7c2724d39a --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.h @@ -0,0 +1,29772 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include <string> + +#include <cstdint> +#include <utility> +#include <vector> + +namespace td { +class TlStorerToString; + +namespace td_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = std::string; + +using bytes = std::string; + +template <class Type> +using array = std::vector<Type>; + +using BaseObject = ::td::TlObject; + +template <class Type> +using object_ptr = ::td::tl_object_ptr<Type>; + +template <class Type, class... Args> +object_ptr<Type> make_object(Args &&... args) { + return object_ptr<Type>(new Type(std::forward<Args>(args)...)); +} + +template <class ToType, class FromType> +object_ptr<ToType> move_object_as(FromType &&from) { + return object_ptr<ToType>(static_cast<ToType *>(from.release())); +} + +std::string to_string(const BaseObject &value); + +template <class T> +std::string to_string(const object_ptr<T> &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template <class T> +std::string to_string(const std::vector<object_ptr<T>> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class accountTtl; + +class addedReaction; + +class addedReactions; + +class address; + +class animatedChatPhoto; + +class animatedEmoji; + +class animation; + +class animations; + +class attachmentMenuBot; + +class attachmentMenuBotColor; + +class audio; + +class authenticationCodeInfo; + +class AuthenticationCodeType; + +class AuthorizationState; + +class autoDownloadSettings; + +class autoDownloadSettingsPresets; + +class availableReaction; + +class availableReactions; + +class background; + +class BackgroundFill; + +class BackgroundType; + +class backgrounds; + +class bankCardActionOpenUrl; + +class bankCardInfo; + +class basicGroup; + +class basicGroupFullInfo; + +class botCommand; + +class BotCommandScope; + +class botCommands; + +class botInfo; + +class botMenuButton; + +class call; + +class CallDiscardReason; + +class callId; + +class CallProblem; + +class callProtocol; + +class callServer; + +class CallServerType; + +class CallState; + +class callbackQueryAnswer; + +class CallbackQueryPayload; + +class CanTransferOwnershipResult; + +class chat; + +class ChatAction; + +class ChatActionBar; + +class chatAdministrator; + +class chatAdministratorRights; + +class chatAdministrators; + +class ChatAvailableReactions; + +class chatEvent; + +class ChatEventAction; + +class chatEventLogFilters; + +class chatEvents; + +class chatFilter; + +class chatFilterInfo; + +class chatInviteLink; + +class chatInviteLinkCount; + +class chatInviteLinkCounts; + +class chatInviteLinkInfo; + +class chatInviteLinkMember; + +class chatInviteLinkMembers; + +class chatInviteLinks; + +class chatJoinRequest; + +class chatJoinRequests; + +class chatJoinRequestsInfo; + +class ChatList; + +class chatLists; + +class chatLocation; + +class chatMember; + +class ChatMemberStatus; + +class chatMembers; + +class ChatMembersFilter; + +class chatMessageSender; + +class chatMessageSenders; + +class chatNearby; + +class chatNotificationSettings; + +class chatPermissions; + +class chatPhoto; + +class chatPhotoInfo; + +class chatPhotos; + +class chatPosition; + +class ChatReportReason; + +class ChatSource; + +class ChatStatistics; + +class chatStatisticsAdministratorActionsInfo; + +class chatStatisticsInviterInfo; + +class chatStatisticsMessageInteractionInfo; + +class chatStatisticsMessageSenderInfo; + +class chatTheme; + +class ChatType; + +class chats; + +class chatsNearby; + +class CheckChatUsernameResult; + +class CheckStickerSetNameResult; + +class closedVectorPath; + +class connectedWebsite; + +class connectedWebsites; + +class ConnectionState; + +class contact; + +class count; + +class countries; + +class countryInfo; + +class customRequestResult; + +class databaseStatistics; + +class date; + +class dateRange; + +class datedFile; + +class deepLinkInfo; + +class DeviceToken; + +class DiceStickers; + +class document; + +class downloadedFileCounts; + +class draftMessage; + +class EmailAddressAuthentication; + +class emailAddressAuthenticationCodeInfo; + +class emojiReaction; + +class emojiStatus; + +class emojiStatuses; + +class emojis; + +class encryptedCredentials; + +class encryptedPassportElement; + +class error; + +class file; + +class fileDownload; + +class fileDownloadedPrefixSize; + +class filePart; + +class FileType; + +class formattedText; + +class forumTopic; + +class forumTopicIcon; + +class forumTopicInfo; + +class foundFileDownloads; + +class foundMessages; + +class game; + +class gameHighScore; + +class gameHighScores; + +class groupCall; + +class groupCallId; + +class groupCallParticipant; + +class groupCallParticipantVideoInfo; + +class groupCallRecentSpeaker; + +class groupCallStream; + +class groupCallStreams; + +class GroupCallVideoQuality; + +class groupCallVideoSourceGroup; + +class hashtags; + +class httpUrl; + +class identityDocument; + +class importedContacts; + +class inlineKeyboardButton; + +class InlineKeyboardButtonType; + +class InlineQueryResult; + +class inlineQueryResults; + +class InputBackground; + +class InputChatPhoto; + +class InputCredentials; + +class InputFile; + +class inputIdentityDocument; + +class InputInlineQueryResult; + +class InputInvoice; + +class InputMessageContent; + +class InputPassportElement; + +class inputPassportElementError; + +class InputPassportElementErrorSource; + +class inputPersonalDocument; + +class inputSticker; + +class inputThumbnail; + +class InternalLinkType; + +class invoice; + +class jsonObjectMember; + +class JsonValue; + +class keyboardButton; + +class KeyboardButtonType; + +class labeledPricePart; + +class languagePackInfo; + +class languagePackString; + +class LanguagePackStringValue; + +class languagePackStrings; + +class localFile; + +class localizationTargetInfo; + +class location; + +class LogStream; + +class logTags; + +class logVerbosityLevel; + +class LoginUrlInfo; + +class MaskPoint; + +class maskPosition; + +class message; + +class messageCalendar; + +class messageCalendarDay; + +class MessageContent; + +class messageCopyOptions; + +class MessageExtendedMedia; + +class MessageFileType; + +class messageForwardInfo; + +class MessageForwardOrigin; + +class messageInteractionInfo; + +class messageLink; + +class messageLinkInfo; + +class messagePosition; + +class messagePositions; + +class messageReaction; + +class messageReplyInfo; + +class MessageSchedulingState; + +class messageSendOptions; + +class MessageSender; + +class messageSenders; + +class MessageSendingState; + +class messageStatistics; + +class messageThreadInfo; + +class messages; + +class minithumbnail; + +class networkStatistics; + +class NetworkStatisticsEntry; + +class NetworkType; + +class notification; + +class notificationGroup; + +class NotificationGroupType; + +class NotificationSettingsScope; + +class notificationSound; + +class notificationSounds; + +class NotificationType; + +class ok; + +class OptionValue; + +class orderInfo; + +class PageBlock; + +class pageBlockCaption; + +class PageBlockHorizontalAlignment; + +class pageBlockListItem; + +class pageBlockRelatedArticle; + +class pageBlockTableCell; + +class PageBlockVerticalAlignment; + +class passportAuthorizationForm; + +class PassportElement; + +class passportElementError; + +class PassportElementErrorSource; + +class PassportElementType; + +class passportElements; + +class passportElementsWithErrors; + +class passportRequiredElement; + +class passportSuitableElement; + +class passwordState; + +class paymentForm; + +class paymentOption; + +class PaymentProvider; + +class paymentReceipt; + +class paymentResult; + +class personalDetails; + +class personalDocument; + +class phoneNumberAuthenticationSettings; + +class phoneNumberInfo; + +class photo; + +class photoSize; + +class point; + +class poll; + +class pollOption; + +class PollType; + +class PremiumFeature; + +class premiumFeaturePromotionAnimation; + +class premiumFeatures; + +class premiumLimit; + +class PremiumLimitType; + +class premiumPaymentOption; + +class PremiumSource; + +class premiumState; + +class profilePhoto; + +class proxies; + +class proxy; + +class ProxyType; + +class PublicChatType; + +class PushMessageContent; + +class pushReceiverId; + +class ReactionType; + +class recommendedChatFilter; + +class recommendedChatFilters; + +class recoveryEmailAddress; + +class remoteFile; + +class ReplyMarkup; + +class ResetPasswordResult; + +class RichText; + +class rtmpUrl; + +class savedCredentials; + +class scopeNotificationSettings; + +class SearchMessagesFilter; + +class seconds; + +class secretChat; + +class SecretChatState; + +class sentWebAppMessage; + +class session; + +class SessionType; + +class sessions; + +class shippingOption; + +class SpeechRecognitionResult; + +class sponsoredMessage; + +class sponsoredMessages; + +class StatisticalGraph; + +class statisticalValue; + +class sticker; + +class StickerFormat; + +class stickerSet; + +class stickerSetInfo; + +class stickerSets; + +class StickerType; + +class stickers; + +class storageStatistics; + +class storageStatisticsByChat; + +class storageStatisticsByFileType; + +class storageStatisticsFast; + +class StorePaymentPurpose; + +class SuggestedAction; + +class supergroup; + +class supergroupFullInfo; + +class SupergroupMembersFilter; + +class tMeUrl; + +class TMeUrlType; + +class tMeUrls; + +class TargetChat; + +class temporaryPasswordState; + +class termsOfService; + +class testBytes; + +class testInt; + +class testString; + +class testVectorInt; + +class testVectorIntObject; + +class testVectorString; + +class testVectorStringObject; + +class text; + +class textEntities; + +class textEntity; + +class TextEntityType; + +class TextParseMode; + +class themeParameters; + +class themeSettings; + +class thumbnail; + +class ThumbnailFormat; + +class TopChatCategory; + +class trendingStickerSets; + +class unreadReaction; + +class Update; + +class updates; + +class user; + +class userFullInfo; + +class UserPrivacySetting; + +class UserPrivacySettingRule; + +class userPrivacySettingRules; + +class UserStatus; + +class userSupportInfo; + +class UserType; + +class usernames; + +class users; + +class validatedOrderInfo; + +class VectorPathCommand; + +class venue; + +class video; + +class videoChat; + +class videoNote; + +class voiceNote; + +class webAppInfo; + +class webPage; + +class webPageInstantView; + +class Object; + +class Object: public TlObject { + public: +}; + +class Function: public TlObject { + public: +}; + +class accountTtl final : public Object { + public: + int32 days_; + + accountTtl(); + + explicit accountTtl(int32 days_); + + static const std::int32_t ID = 1324495492; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addedReaction final : public Object { + public: + object_ptr<ReactionType> type_; + object_ptr<MessageSender> sender_id_; + + addedReaction(); + + addedReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_); + + static const std::int32_t ID = -1130587313; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addedReactions final : public Object { + public: + int32 total_count_; + array<object_ptr<addedReaction>> reactions_; + string next_offset_; + + addedReactions(); + + addedReactions(int32 total_count_, array<object_ptr<addedReaction>> &&reactions_, string const &next_offset_); + + static const std::int32_t ID = 226352304; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class address final : public Object { + public: + string country_code_; + string state_; + string city_; + string street_line1_; + string street_line2_; + string postal_code_; + + address(); + + address(string const &country_code_, string const &state_, string const &city_, string const &street_line1_, string const &street_line2_, string const &postal_code_); + + static const std::int32_t ID = -2043654342; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animatedChatPhoto final : public Object { + public: + int32 length_; + object_ptr<file> file_; + double main_frame_timestamp_; + + animatedChatPhoto(); + + animatedChatPhoto(int32 length_, object_ptr<file> &&file_, double main_frame_timestamp_); + + static const std::int32_t ID = 191994926; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animatedEmoji final : public Object { + public: + object_ptr<sticker> sticker_; + int32 sticker_width_; + int32 sticker_height_; + int32 fitzpatrick_type_; + object_ptr<file> sound_; + + animatedEmoji(); + + animatedEmoji(object_ptr<sticker> &&sticker_, int32 sticker_width_, int32 sticker_height_, int32 fitzpatrick_type_, object_ptr<file> &&sound_); + + static const std::int32_t ID = 1378918079; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animation final : public Object { + public: + int32 duration_; + int32 width_; + int32 height_; + string file_name_; + string mime_type_; + bool has_stickers_; + object_ptr<minithumbnail> minithumbnail_; + object_ptr<thumbnail> thumbnail_; + object_ptr<file> animation_; + + animation(); + + animation(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&animation_); + + static const std::int32_t ID = -872359106; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class animations final : public Object { + public: + array<object_ptr<animation>> animations_; + + animations(); + + explicit animations(array<object_ptr<animation>> &&animations_); + + static const std::int32_t ID = 344216945; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachmentMenuBot final : public Object { + public: + int53 bot_user_id_; + bool supports_self_chat_; + bool supports_user_chats_; + bool supports_bot_chats_; + bool supports_group_chats_; + bool supports_channel_chats_; + bool supports_settings_; + string name_; + object_ptr<attachmentMenuBotColor> name_color_; + object_ptr<file> default_icon_; + object_ptr<file> ios_static_icon_; + object_ptr<file> ios_animated_icon_; + object_ptr<file> android_icon_; + object_ptr<file> macos_icon_; + object_ptr<attachmentMenuBotColor> icon_color_; + object_ptr<file> web_app_placeholder_; + + attachmentMenuBot(); + + attachmentMenuBot(int53 bot_user_id_, bool supports_self_chat_, bool supports_user_chats_, bool supports_bot_chats_, bool supports_group_chats_, bool supports_channel_chats_, bool supports_settings_, string const &name_, object_ptr<attachmentMenuBotColor> &&name_color_, object_ptr<file> &&default_icon_, object_ptr<file> &&ios_static_icon_, object_ptr<file> &&ios_animated_icon_, object_ptr<file> &&android_icon_, object_ptr<file> &&macos_icon_, object_ptr<attachmentMenuBotColor> &&icon_color_, object_ptr<file> &&web_app_placeholder_); + + static const std::int32_t ID = -1566056904; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachmentMenuBotColor final : public Object { + public: + int32 light_color_; + int32 dark_color_; + + attachmentMenuBotColor(); + + attachmentMenuBotColor(int32 light_color_, int32 dark_color_); + + static const std::int32_t ID = 1680039612; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class audio final : public Object { + public: + int32 duration_; + string title_; + string performer_; + string file_name_; + string mime_type_; + object_ptr<minithumbnail> album_cover_minithumbnail_; + object_ptr<thumbnail> album_cover_thumbnail_; + array<object_ptr<thumbnail>> external_album_covers_; + object_ptr<file> audio_; + + audio(); + + audio(int32 duration_, string const &title_, string const &performer_, string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&album_cover_minithumbnail_, object_ptr<thumbnail> &&album_cover_thumbnail_, array<object_ptr<thumbnail>> &&external_album_covers_, object_ptr<file> &&audio_); + + static const std::int32_t ID = -166398841; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeInfo final : public Object { + public: + string phone_number_; + object_ptr<AuthenticationCodeType> type_; + object_ptr<AuthenticationCodeType> next_type_; + int32 timeout_; + + authenticationCodeInfo(); + + authenticationCodeInfo(string const &phone_number_, object_ptr<AuthenticationCodeType> &&type_, object_ptr<AuthenticationCodeType> &&next_type_, int32 timeout_); + + static const std::int32_t ID = -860345416; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AuthenticationCodeType: public Object { + public: +}; + +class authenticationCodeTypeTelegramMessage final : public AuthenticationCodeType { + public: + int32 length_; + + authenticationCodeTypeTelegramMessage(); + + explicit authenticationCodeTypeTelegramMessage(int32 length_); + + static const std::int32_t ID = 2079628074; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeSms final : public AuthenticationCodeType { + public: + int32 length_; + + authenticationCodeTypeSms(); + + explicit authenticationCodeTypeSms(int32 length_); + + static const std::int32_t ID = 962650760; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeCall final : public AuthenticationCodeType { + public: + int32 length_; + + authenticationCodeTypeCall(); + + explicit authenticationCodeTypeCall(int32 length_); + + static const std::int32_t ID = 1636265063; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeFlashCall final : public AuthenticationCodeType { + public: + string pattern_; + + authenticationCodeTypeFlashCall(); + + explicit authenticationCodeTypeFlashCall(string const &pattern_); + + static const std::int32_t ID = 1395882402; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authenticationCodeTypeMissedCall final : public AuthenticationCodeType { + public: + string phone_number_prefix_; + int32 length_; + + authenticationCodeTypeMissedCall(); + + authenticationCodeTypeMissedCall(string const &phone_number_prefix_, int32 length_); + + static const std::int32_t ID = 700123783; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AuthorizationState: public Object { + public: +}; + +class authorizationStateWaitTdlibParameters final : public AuthorizationState { + public: + + authorizationStateWaitTdlibParameters(); + + static const std::int32_t ID = 904720988; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitPhoneNumber final : public AuthorizationState { + public: + + authorizationStateWaitPhoneNumber(); + + static const std::int32_t ID = 306402531; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitEmailAddress final : public AuthorizationState { + public: + bool allow_apple_id_; + bool allow_google_id_; + + authorizationStateWaitEmailAddress(); + + authorizationStateWaitEmailAddress(bool allow_apple_id_, bool allow_google_id_); + + static const std::int32_t ID = 1040478663; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitEmailCode final : public AuthorizationState { + public: + bool allow_apple_id_; + bool allow_google_id_; + object_ptr<emailAddressAuthenticationCodeInfo> code_info_; + int32 next_phone_number_authorization_date_; + + authorizationStateWaitEmailCode(); + + authorizationStateWaitEmailCode(bool allow_apple_id_, bool allow_google_id_, object_ptr<emailAddressAuthenticationCodeInfo> &&code_info_, int32 next_phone_number_authorization_date_); + + static const std::int32_t ID = 174262505; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitCode final : public AuthorizationState { + public: + object_ptr<authenticationCodeInfo> code_info_; + + authorizationStateWaitCode(); + + explicit authorizationStateWaitCode(object_ptr<authenticationCodeInfo> &&code_info_); + + static const std::int32_t ID = 52643073; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitOtherDeviceConfirmation final : public AuthorizationState { + public: + string link_; + + authorizationStateWaitOtherDeviceConfirmation(); + + explicit authorizationStateWaitOtherDeviceConfirmation(string const &link_); + + static const std::int32_t ID = 860166378; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitRegistration final : public AuthorizationState { + public: + object_ptr<termsOfService> terms_of_service_; + + authorizationStateWaitRegistration(); + + explicit authorizationStateWaitRegistration(object_ptr<termsOfService> &&terms_of_service_); + + static const std::int32_t ID = 550350511; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateWaitPassword final : public AuthorizationState { + public: + string password_hint_; + bool has_recovery_email_address_; + string recovery_email_address_pattern_; + + authorizationStateWaitPassword(); + + authorizationStateWaitPassword(string const &password_hint_, bool has_recovery_email_address_, string const &recovery_email_address_pattern_); + + static const std::int32_t ID = 187548796; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateReady final : public AuthorizationState { + public: + + authorizationStateReady(); + + static const std::int32_t ID = -1834871737; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateLoggingOut final : public AuthorizationState { + public: + + authorizationStateLoggingOut(); + + static const std::int32_t ID = 154449270; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateClosing final : public AuthorizationState { + public: + + authorizationStateClosing(); + + static const std::int32_t ID = 445855311; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorizationStateClosed final : public AuthorizationState { + public: + + authorizationStateClosed(); + + static const std::int32_t ID = 1526047584; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autoDownloadSettings final : public Object { + public: + bool is_auto_download_enabled_; + int32 max_photo_file_size_; + int53 max_video_file_size_; + int53 max_other_file_size_; + int32 video_upload_bitrate_; + bool preload_large_videos_; + bool preload_next_audio_; + bool use_less_data_for_calls_; + + autoDownloadSettings(); + + autoDownloadSettings(bool is_auto_download_enabled_, int32 max_photo_file_size_, int53 max_video_file_size_, int53 max_other_file_size_, int32 video_upload_bitrate_, bool preload_large_videos_, bool preload_next_audio_, bool use_less_data_for_calls_); + + static const std::int32_t ID = -813805749; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autoDownloadSettingsPresets final : public Object { + public: + object_ptr<autoDownloadSettings> low_; + object_ptr<autoDownloadSettings> medium_; + object_ptr<autoDownloadSettings> high_; + + autoDownloadSettingsPresets(); + + autoDownloadSettingsPresets(object_ptr<autoDownloadSettings> &&low_, object_ptr<autoDownloadSettings> &&medium_, object_ptr<autoDownloadSettings> &&high_); + + static const std::int32_t ID = -782099166; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class availableReaction final : public Object { + public: + object_ptr<ReactionType> type_; + bool needs_premium_; + + availableReaction(); + + availableReaction(object_ptr<ReactionType> &&type_, bool needs_premium_); + + static const std::int32_t ID = -117292153; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class availableReactions final : public Object { + public: + array<object_ptr<availableReaction>> top_reactions_; + array<object_ptr<availableReaction>> recent_reactions_; + array<object_ptr<availableReaction>> popular_reactions_; + bool allow_custom_emoji_; + + availableReactions(); + + availableReactions(array<object_ptr<availableReaction>> &&top_reactions_, array<object_ptr<availableReaction>> &&recent_reactions_, array<object_ptr<availableReaction>> &&popular_reactions_, bool allow_custom_emoji_); + + static const std::int32_t ID = 1995943616; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class background final : public Object { + public: + int64 id_; + bool is_default_; + bool is_dark_; + string name_; + object_ptr<document> document_; + object_ptr<BackgroundType> type_; + + background(); + + background(int64 id_, bool is_default_, bool is_dark_, string const &name_, object_ptr<document> &&document_, object_ptr<BackgroundType> &&type_); + + static const std::int32_t ID = -429971172; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BackgroundFill: public Object { + public: +}; + +class backgroundFillSolid final : public BackgroundFill { + public: + int32 color_; + + backgroundFillSolid(); + + explicit backgroundFillSolid(int32 color_); + + static const std::int32_t ID = 1010678813; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundFillGradient final : public BackgroundFill { + public: + int32 top_color_; + int32 bottom_color_; + int32 rotation_angle_; + + backgroundFillGradient(); + + backgroundFillGradient(int32 top_color_, int32 bottom_color_, int32 rotation_angle_); + + static const std::int32_t ID = -1839206017; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundFillFreeformGradient final : public BackgroundFill { + public: + array<int32> colors_; + + backgroundFillFreeformGradient(); + + explicit backgroundFillFreeformGradient(array<int32> &&colors_); + + static const std::int32_t ID = -1145469255; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BackgroundType: public Object { + public: +}; + +class backgroundTypeWallpaper final : public BackgroundType { + public: + bool is_blurred_; + bool is_moving_; + + backgroundTypeWallpaper(); + + backgroundTypeWallpaper(bool is_blurred_, bool is_moving_); + + static const std::int32_t ID = 1972128891; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundTypePattern final : public BackgroundType { + public: + object_ptr<BackgroundFill> fill_; + int32 intensity_; + bool is_inverted_; + bool is_moving_; + + backgroundTypePattern(); + + backgroundTypePattern(object_ptr<BackgroundFill> &&fill_, int32 intensity_, bool is_inverted_, bool is_moving_); + + static const std::int32_t ID = 1290213117; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgroundTypeFill final : public BackgroundType { + public: + object_ptr<BackgroundFill> fill_; + + backgroundTypeFill(); + + explicit backgroundTypeFill(object_ptr<BackgroundFill> &&fill_); + + static const std::int32_t ID = 993008684; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class backgrounds final : public Object { + public: + array<object_ptr<background>> backgrounds_; + + backgrounds(); + + explicit backgrounds(array<object_ptr<background>> &&backgrounds_); + + static const std::int32_t ID = 724728704; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bankCardActionOpenUrl final : public Object { + public: + string text_; + string url_; + + bankCardActionOpenUrl(); + + bankCardActionOpenUrl(string const &text_, string const &url_); + + static const std::int32_t ID = -196454267; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bankCardInfo final : public Object { + public: + string title_; + array<object_ptr<bankCardActionOpenUrl>> actions_; + + bankCardInfo(); + + bankCardInfo(string const &title_, array<object_ptr<bankCardActionOpenUrl>> &&actions_); + + static const std::int32_t ID = -2116647730; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class basicGroup final : public Object { + public: + int53 id_; + int32 member_count_; + object_ptr<ChatMemberStatus> status_; + bool is_active_; + int53 upgraded_to_supergroup_id_; + + basicGroup(); + + basicGroup(int53 id_, int32 member_count_, object_ptr<ChatMemberStatus> &&status_, bool is_active_, int53 upgraded_to_supergroup_id_); + + static const std::int32_t ID = -194767217; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class basicGroupFullInfo final : public Object { + public: + object_ptr<chatPhoto> photo_; + string description_; + int53 creator_user_id_; + array<object_ptr<chatMember>> members_; + object_ptr<chatInviteLink> invite_link_; + array<object_ptr<botCommands>> bot_commands_; + + basicGroupFullInfo(); + + basicGroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int53 creator_user_id_, array<object_ptr<chatMember>> &&members_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_); + + static const std::int32_t ID = 2022233397; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommand final : public Object { + public: + string command_; + string description_; + + botCommand(); + + botCommand(string const &command_, string const &description_); + + static const std::int32_t ID = -1032140601; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BotCommandScope: public Object { + public: +}; + +class botCommandScopeDefault final : public BotCommandScope { + public: + + botCommandScopeDefault(); + + static const std::int32_t ID = 795652779; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeAllPrivateChats final : public BotCommandScope { + public: + + botCommandScopeAllPrivateChats(); + + static const std::int32_t ID = -344889543; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeAllGroupChats final : public BotCommandScope { + public: + + botCommandScopeAllGroupChats(); + + static const std::int32_t ID = -981088162; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeAllChatAdministrators final : public BotCommandScope { + public: + + botCommandScopeAllChatAdministrators(); + + static const std::int32_t ID = 1998329169; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChat final : public BotCommandScope { + public: + int53 chat_id_; + + botCommandScopeChat(); + + explicit botCommandScopeChat(int53 chat_id_); + + static const std::int32_t ID = -430234971; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChatAdministrators final : public BotCommandScope { + public: + int53 chat_id_; + + botCommandScopeChatAdministrators(); + + explicit botCommandScopeChatAdministrators(int53 chat_id_); + + static const std::int32_t ID = 1119682126; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChatMember final : public BotCommandScope { + public: + int53 chat_id_; + int53 user_id_; + + botCommandScopeChatMember(); + + botCommandScopeChatMember(int53 chat_id_, int53 user_id_); + + static const std::int32_t ID = -211380494; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommands final : public Object { + public: + int53 bot_user_id_; + array<object_ptr<botCommand>> commands_; + + botCommands(); + + botCommands(int53 bot_user_id_, array<object_ptr<botCommand>> &&commands_); + + static const std::int32_t ID = 1741364468; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInfo final : public Object { + public: + string share_text_; + string description_; + object_ptr<photo> photo_; + object_ptr<animation> animation_; + object_ptr<botMenuButton> menu_button_; + array<object_ptr<botCommand>> commands_; + object_ptr<chatAdministratorRights> default_group_administrator_rights_; + object_ptr<chatAdministratorRights> default_channel_administrator_rights_; + + botInfo(); + + botInfo(string const &share_text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_, object_ptr<botMenuButton> &&menu_button_, array<object_ptr<botCommand>> &&commands_, object_ptr<chatAdministratorRights> &&default_group_administrator_rights_, object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_); + + static const std::int32_t ID = 429675178; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botMenuButton final : public Object { + public: + string text_; + string url_; + + botMenuButton(); + + botMenuButton(string const &text_, string const &url_); + + static const std::int32_t ID = -944407322; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class call final : public Object { + public: + int32 id_; + int53 user_id_; + bool is_outgoing_; + bool is_video_; + object_ptr<CallState> state_; + + call(); + + call(int32 id_, int53 user_id_, bool is_outgoing_, bool is_video_, object_ptr<CallState> &&state_); + + static const std::int32_t ID = 920360804; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallDiscardReason: public Object { + public: +}; + +class callDiscardReasonEmpty final : public CallDiscardReason { + public: + + callDiscardReasonEmpty(); + + static const std::int32_t ID = -1258917949; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonMissed final : public CallDiscardReason { + public: + + callDiscardReasonMissed(); + + static const std::int32_t ID = 1680358012; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonDeclined final : public CallDiscardReason { + public: + + callDiscardReasonDeclined(); + + static const std::int32_t ID = -1729926094; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonDisconnected final : public CallDiscardReason { + public: + + callDiscardReasonDisconnected(); + + static const std::int32_t ID = -1342872670; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callDiscardReasonHungUp final : public CallDiscardReason { + public: + + callDiscardReasonHungUp(); + + static const std::int32_t ID = 438216166; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callId final : public Object { + public: + int32 id_; + + callId(); + + explicit callId(int32 id_); + + static const std::int32_t ID = 65717769; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallProblem: public Object { + public: +}; + +class callProblemEcho final : public CallProblem { + public: + + callProblemEcho(); + + static const std::int32_t ID = 801116548; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemNoise final : public CallProblem { + public: + + callProblemNoise(); + + static const std::int32_t ID = 1053065359; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemInterruptions final : public CallProblem { + public: + + callProblemInterruptions(); + + static const std::int32_t ID = 1119493218; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemDistortedSpeech final : public CallProblem { + public: + + callProblemDistortedSpeech(); + + static const std::int32_t ID = 379960581; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemSilentLocal final : public CallProblem { + public: + + callProblemSilentLocal(); + + static const std::int32_t ID = 253652790; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemSilentRemote final : public CallProblem { + public: + + callProblemSilentRemote(); + + static const std::int32_t ID = 573634714; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemDropped final : public CallProblem { + public: + + callProblemDropped(); + + static const std::int32_t ID = -1207311487; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemDistortedVideo final : public CallProblem { + public: + + callProblemDistortedVideo(); + + static const std::int32_t ID = 385245706; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProblemPixelatedVideo final : public CallProblem { + public: + + callProblemPixelatedVideo(); + + static const std::int32_t ID = 2115315411; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callProtocol final : public Object { + public: + bool udp_p2p_; + bool udp_reflector_; + int32 min_layer_; + int32 max_layer_; + array<string> library_versions_; + + callProtocol(); + + callProtocol(bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_); + + static const std::int32_t ID = -1075562897; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callServer final : public Object { + public: + int64 id_; + string ip_address_; + string ipv6_address_; + int32 port_; + object_ptr<CallServerType> type_; + + callServer(); + + callServer(int64 id_, string const &ip_address_, string const &ipv6_address_, int32 port_, object_ptr<CallServerType> &&type_); + + static const std::int32_t ID = 1865932695; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallServerType: public Object { + public: +}; + +class callServerTypeTelegramReflector final : public CallServerType { + public: + bytes peer_tag_; + bool is_tcp_; + + callServerTypeTelegramReflector(); + + callServerTypeTelegramReflector(bytes const &peer_tag_, bool is_tcp_); + + static const std::int32_t ID = 850343189; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callServerTypeWebrtc final : public CallServerType { + public: + string username_; + string password_; + bool supports_turn_; + bool supports_stun_; + + callServerTypeWebrtc(); + + callServerTypeWebrtc(string const &username_, string const &password_, bool supports_turn_, bool supports_stun_); + + static const std::int32_t ID = 1250622821; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallState: public Object { + public: +}; + +class callStatePending final : public CallState { + public: + bool is_created_; + bool is_received_; + + callStatePending(); + + callStatePending(bool is_created_, bool is_received_); + + static const std::int32_t ID = 1073048620; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateExchangingKeys final : public CallState { + public: + + callStateExchangingKeys(); + + static const std::int32_t ID = -1848149403; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateReady final : public CallState { + public: + object_ptr<callProtocol> protocol_; + array<object_ptr<callServer>> servers_; + string config_; + bytes encryption_key_; + array<string> emojis_; + bool allow_p2p_; + + callStateReady(); + + callStateReady(object_ptr<callProtocol> &&protocol_, array<object_ptr<callServer>> &&servers_, string const &config_, bytes const &encryption_key_, array<string> &&emojis_, bool allow_p2p_); + + static const std::int32_t ID = -2000107571; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateHangingUp final : public CallState { + public: + + callStateHangingUp(); + + static const std::int32_t ID = -2133790038; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateDiscarded final : public CallState { + public: + object_ptr<CallDiscardReason> reason_; + bool need_rating_; + bool need_debug_information_; + bool need_log_; + + callStateDiscarded(); + + callStateDiscarded(object_ptr<CallDiscardReason> &&reason_, bool need_rating_, bool need_debug_information_, bool need_log_); + + static const std::int32_t ID = 1394310213; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callStateError final : public CallState { + public: + object_ptr<error> error_; + + callStateError(); + + explicit callStateError(object_ptr<error> &&error_); + + static const std::int32_t ID = -975215467; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callbackQueryAnswer final : public Object { + public: + string text_; + bool show_alert_; + string url_; + + callbackQueryAnswer(); + + callbackQueryAnswer(string const &text_, bool show_alert_, string const &url_); + + static const std::int32_t ID = 360867933; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CallbackQueryPayload: public Object { + public: +}; + +class callbackQueryPayloadData final : public CallbackQueryPayload { + public: + bytes data_; + + callbackQueryPayloadData(); + + explicit callbackQueryPayloadData(bytes const &data_); + + static const std::int32_t ID = -1977729946; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callbackQueryPayloadDataWithPassword final : public CallbackQueryPayload { + public: + string password_; + bytes data_; + + callbackQueryPayloadDataWithPassword(); + + callbackQueryPayloadDataWithPassword(string const &password_, bytes const &data_); + + static const std::int32_t ID = 1340266738; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class callbackQueryPayloadGame final : public CallbackQueryPayload { + public: + string game_short_name_; + + callbackQueryPayloadGame(); + + explicit callbackQueryPayloadGame(string const &game_short_name_); + + static const std::int32_t ID = 1303571512; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CanTransferOwnershipResult: public Object { + public: +}; + +class canTransferOwnershipResultOk final : public CanTransferOwnershipResult { + public: + + canTransferOwnershipResultOk(); + + static const std::int32_t ID = -89881021; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canTransferOwnershipResultPasswordNeeded final : public CanTransferOwnershipResult { + public: + + canTransferOwnershipResultPasswordNeeded(); + + static const std::int32_t ID = 1548372703; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canTransferOwnershipResultPasswordTooFresh final : public CanTransferOwnershipResult { + public: + int32 retry_after_; + + canTransferOwnershipResultPasswordTooFresh(); + + explicit canTransferOwnershipResultPasswordTooFresh(int32 retry_after_); + + static const std::int32_t ID = 811440913; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canTransferOwnershipResultSessionTooFresh final : public CanTransferOwnershipResult { + public: + int32 retry_after_; + + canTransferOwnershipResultSessionTooFresh(); + + explicit canTransferOwnershipResultSessionTooFresh(int32 retry_after_); + + static const std::int32_t ID = 984664289; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chat final : public Object { + public: + int53 id_; + object_ptr<ChatType> type_; + string title_; + object_ptr<chatPhotoInfo> photo_; + object_ptr<chatPermissions> permissions_; + object_ptr<message> last_message_; + array<object_ptr<chatPosition>> positions_; + object_ptr<MessageSender> message_sender_id_; + bool has_protected_content_; + bool is_marked_as_unread_; + bool is_blocked_; + bool has_scheduled_messages_; + bool can_be_deleted_only_for_self_; + bool can_be_deleted_for_all_users_; + bool can_be_reported_; + bool default_disable_notification_; + int32 unread_count_; + int53 last_read_inbox_message_id_; + int53 last_read_outbox_message_id_; + int32 unread_mention_count_; + int32 unread_reaction_count_; + object_ptr<chatNotificationSettings> notification_settings_; + object_ptr<ChatAvailableReactions> available_reactions_; + int32 message_ttl_; + string theme_name_; + object_ptr<ChatActionBar> action_bar_; + object_ptr<videoChat> video_chat_; + object_ptr<chatJoinRequestsInfo> pending_join_requests_; + int53 reply_markup_message_id_; + object_ptr<draftMessage> draft_message_; + string client_data_; + + chat(); + + chat(int53 id_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, object_ptr<chatPermissions> &&permissions_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_, object_ptr<MessageSender> &&message_sender_id_, bool has_protected_content_, bool is_marked_as_unread_, bool is_blocked_, bool has_scheduled_messages_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_be_reported_, bool default_disable_notification_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &¬ification_settings_, object_ptr<ChatAvailableReactions> &&available_reactions_, int32 message_ttl_, string const &theme_name_, object_ptr<ChatActionBar> &&action_bar_, object_ptr<videoChat> &&video_chat_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_, int53 reply_markup_message_id_, object_ptr<draftMessage> &&draft_message_, string const &client_data_); + + static const std::int32_t ID = -1395697186; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatAction: public Object { + public: +}; + +class chatActionTyping final : public ChatAction { + public: + + chatActionTyping(); + + static const std::int32_t ID = 380122167; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionRecordingVideo final : public ChatAction { + public: + + chatActionRecordingVideo(); + + static const std::int32_t ID = 216553362; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingVideo final : public ChatAction { + public: + int32 progress_; + + chatActionUploadingVideo(); + + explicit chatActionUploadingVideo(int32 progress_); + + static const std::int32_t ID = 1234185270; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionRecordingVoiceNote final : public ChatAction { + public: + + chatActionRecordingVoiceNote(); + + static const std::int32_t ID = -808850058; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingVoiceNote final : public ChatAction { + public: + int32 progress_; + + chatActionUploadingVoiceNote(); + + explicit chatActionUploadingVoiceNote(int32 progress_); + + static const std::int32_t ID = -613643666; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingPhoto final : public ChatAction { + public: + int32 progress_; + + chatActionUploadingPhoto(); + + explicit chatActionUploadingPhoto(int32 progress_); + + static const std::int32_t ID = 654240583; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingDocument final : public ChatAction { + public: + int32 progress_; + + chatActionUploadingDocument(); + + explicit chatActionUploadingDocument(int32 progress_); + + static const std::int32_t ID = 167884362; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionChoosingSticker final : public ChatAction { + public: + + chatActionChoosingSticker(); + + static const std::int32_t ID = 372753697; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionChoosingLocation final : public ChatAction { + public: + + chatActionChoosingLocation(); + + static const std::int32_t ID = -2017893596; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionChoosingContact final : public ChatAction { + public: + + chatActionChoosingContact(); + + static const std::int32_t ID = -1222507496; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionStartPlayingGame final : public ChatAction { + public: + + chatActionStartPlayingGame(); + + static const std::int32_t ID = -865884164; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionRecordingVideoNote final : public ChatAction { + public: + + chatActionRecordingVideoNote(); + + static const std::int32_t ID = 16523393; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionUploadingVideoNote final : public ChatAction { + public: + int32 progress_; + + chatActionUploadingVideoNote(); + + explicit chatActionUploadingVideoNote(int32 progress_); + + static const std::int32_t ID = 1172364918; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionWatchingAnimations final : public ChatAction { + public: + string emoji_; + + chatActionWatchingAnimations(); + + explicit chatActionWatchingAnimations(string const &emoji_); + + static const std::int32_t ID = 2052990641; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionCancel final : public ChatAction { + public: + + chatActionCancel(); + + static const std::int32_t ID = 1160523958; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatActionBar: public Object { + public: +}; + +class chatActionBarReportSpam final : public ChatActionBar { + public: + bool can_unarchive_; + + chatActionBarReportSpam(); + + explicit chatActionBarReportSpam(bool can_unarchive_); + + static const std::int32_t ID = -1312758246; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarReportUnrelatedLocation final : public ChatActionBar { + public: + + chatActionBarReportUnrelatedLocation(); + + static const std::int32_t ID = 758175489; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarInviteMembers final : public ChatActionBar { + public: + + chatActionBarInviteMembers(); + + static const std::int32_t ID = 1985313904; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarReportAddBlock final : public ChatActionBar { + public: + bool can_unarchive_; + int32 distance_; + + chatActionBarReportAddBlock(); + + chatActionBarReportAddBlock(bool can_unarchive_, int32 distance_); + + static const std::int32_t ID = -914150419; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarAddContact final : public ChatActionBar { + public: + + chatActionBarAddContact(); + + static const std::int32_t ID = -733325295; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarSharePhoneNumber final : public ChatActionBar { + public: + + chatActionBarSharePhoneNumber(); + + static const std::int32_t ID = 35188697; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatActionBarJoinRequest final : public ChatActionBar { + public: + string title_; + bool is_channel_; + int32 request_date_; + + chatActionBarJoinRequest(); + + chatActionBarJoinRequest(string const &title_, bool is_channel_, int32 request_date_); + + static const std::int32_t ID = 1037140744; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdministrator final : public Object { + public: + int53 user_id_; + string custom_title_; + bool is_owner_; + + chatAdministrator(); + + chatAdministrator(int53 user_id_, string const &custom_title_, bool is_owner_); + + static const std::int32_t ID = 1920449836; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdministratorRights final : public Object { + public: + bool can_manage_chat_; + bool can_change_info_; + bool can_post_messages_; + bool can_edit_messages_; + bool can_delete_messages_; + bool can_invite_users_; + bool can_restrict_members_; + bool can_pin_messages_; + bool can_manage_topics_; + bool can_promote_members_; + bool can_manage_video_chats_; + bool is_anonymous_; + + chatAdministratorRights(); + + chatAdministratorRights(bool can_manage_chat_, bool can_change_info_, bool can_post_messages_, bool can_edit_messages_, bool can_delete_messages_, bool can_invite_users_, bool can_restrict_members_, bool can_pin_messages_, bool can_manage_topics_, bool can_promote_members_, bool can_manage_video_chats_, bool is_anonymous_); + + static const std::int32_t ID = -1384650041; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdministrators final : public Object { + public: + array<object_ptr<chatAdministrator>> administrators_; + + chatAdministrators(); + + explicit chatAdministrators(array<object_ptr<chatAdministrator>> &&administrators_); + + static const std::int32_t ID = -2126186435; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatAvailableReactions: public Object { + public: +}; + +class chatAvailableReactionsAll final : public ChatAvailableReactions { + public: + + chatAvailableReactionsAll(); + + static const std::int32_t ID = -537887666; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAvailableReactionsSome final : public ChatAvailableReactions { + public: + array<object_ptr<ReactionType>> reactions_; + + chatAvailableReactionsSome(); + + explicit chatAvailableReactionsSome(array<object_ptr<ReactionType>> &&reactions_); + + static const std::int32_t ID = -640810821; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEvent final : public Object { + public: + int64 id_; + int32 date_; + object_ptr<MessageSender> member_id_; + object_ptr<ChatEventAction> action_; + + chatEvent(); + + chatEvent(int64 id_, int32 date_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatEventAction> &&action_); + + static const std::int32_t ID = -652102704; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatEventAction: public Object { + public: +}; + +class chatEventMessageEdited final : public ChatEventAction { + public: + object_ptr<message> old_message_; + object_ptr<message> new_message_; + + chatEventMessageEdited(); + + chatEventMessageEdited(object_ptr<message> &&old_message_, object_ptr<message> &&new_message_); + + static const std::int32_t ID = -430967304; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessageDeleted final : public ChatEventAction { + public: + object_ptr<message> message_; + + chatEventMessageDeleted(); + + explicit chatEventMessageDeleted(object_ptr<message> &&message_); + + static const std::int32_t ID = -892974601; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessagePinned final : public ChatEventAction { + public: + object_ptr<message> message_; + + chatEventMessagePinned(); + + explicit chatEventMessagePinned(object_ptr<message> &&message_); + + static const std::int32_t ID = 438742298; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessageUnpinned final : public ChatEventAction { + public: + object_ptr<message> message_; + + chatEventMessageUnpinned(); + + explicit chatEventMessageUnpinned(object_ptr<message> &&message_); + + static const std::int32_t ID = -376161513; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventPollStopped final : public ChatEventAction { + public: + object_ptr<message> message_; + + chatEventPollStopped(); + + explicit chatEventPollStopped(object_ptr<message> &&message_); + + static const std::int32_t ID = 2009893861; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberJoined final : public ChatEventAction { + public: + + chatEventMemberJoined(); + + static const std::int32_t ID = -235468508; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberJoinedByInviteLink final : public ChatEventAction { + public: + object_ptr<chatInviteLink> invite_link_; + + chatEventMemberJoinedByInviteLink(); + + explicit chatEventMemberJoinedByInviteLink(object_ptr<chatInviteLink> &&invite_link_); + + static const std::int32_t ID = -253307459; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberJoinedByRequest final : public ChatEventAction { + public: + int53 approver_user_id_; + object_ptr<chatInviteLink> invite_link_; + + chatEventMemberJoinedByRequest(); + + chatEventMemberJoinedByRequest(int53 approver_user_id_, object_ptr<chatInviteLink> &&invite_link_); + + static const std::int32_t ID = -1647804865; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberInvited final : public ChatEventAction { + public: + int53 user_id_; + object_ptr<ChatMemberStatus> status_; + + chatEventMemberInvited(); + + chatEventMemberInvited(int53 user_id_, object_ptr<ChatMemberStatus> &&status_); + + static const std::int32_t ID = 953663433; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberLeft final : public ChatEventAction { + public: + + chatEventMemberLeft(); + + static const std::int32_t ID = -948420593; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberPromoted final : public ChatEventAction { + public: + int53 user_id_; + object_ptr<ChatMemberStatus> old_status_; + object_ptr<ChatMemberStatus> new_status_; + + chatEventMemberPromoted(); + + chatEventMemberPromoted(int53 user_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_); + + static const std::int32_t ID = 525297761; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMemberRestricted final : public ChatEventAction { + public: + object_ptr<MessageSender> member_id_; + object_ptr<ChatMemberStatus> old_status_; + object_ptr<ChatMemberStatus> new_status_; + + chatEventMemberRestricted(); + + chatEventMemberRestricted(object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&old_status_, object_ptr<ChatMemberStatus> &&new_status_); + + static const std::int32_t ID = 1603608069; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventAvailableReactionsChanged final : public ChatEventAction { + public: + object_ptr<ChatAvailableReactions> old_available_reactions_; + object_ptr<ChatAvailableReactions> new_available_reactions_; + + chatEventAvailableReactionsChanged(); + + chatEventAvailableReactionsChanged(object_ptr<ChatAvailableReactions> &&old_available_reactions_, object_ptr<ChatAvailableReactions> &&new_available_reactions_); + + static const std::int32_t ID = -1749491521; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventDescriptionChanged final : public ChatEventAction { + public: + string old_description_; + string new_description_; + + chatEventDescriptionChanged(); + + chatEventDescriptionChanged(string const &old_description_, string const &new_description_); + + static const std::int32_t ID = 39112478; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventLinkedChatChanged final : public ChatEventAction { + public: + int53 old_linked_chat_id_; + int53 new_linked_chat_id_; + + chatEventLinkedChatChanged(); + + chatEventLinkedChatChanged(int53 old_linked_chat_id_, int53 new_linked_chat_id_); + + static const std::int32_t ID = 1797419439; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventLocationChanged final : public ChatEventAction { + public: + object_ptr<chatLocation> old_location_; + object_ptr<chatLocation> new_location_; + + chatEventLocationChanged(); + + chatEventLocationChanged(object_ptr<chatLocation> &&old_location_, object_ptr<chatLocation> &&new_location_); + + static const std::int32_t ID = -405930674; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventMessageTtlChanged final : public ChatEventAction { + public: + int32 old_message_ttl_; + int32 new_message_ttl_; + + chatEventMessageTtlChanged(); + + chatEventMessageTtlChanged(int32 old_message_ttl_, int32 new_message_ttl_); + + static const std::int32_t ID = 776386995; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventPermissionsChanged final : public ChatEventAction { + public: + object_ptr<chatPermissions> old_permissions_; + object_ptr<chatPermissions> new_permissions_; + + chatEventPermissionsChanged(); + + chatEventPermissionsChanged(object_ptr<chatPermissions> &&old_permissions_, object_ptr<chatPermissions> &&new_permissions_); + + static const std::int32_t ID = -1311557720; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventPhotoChanged final : public ChatEventAction { + public: + object_ptr<chatPhoto> old_photo_; + object_ptr<chatPhoto> new_photo_; + + chatEventPhotoChanged(); + + chatEventPhotoChanged(object_ptr<chatPhoto> &&old_photo_, object_ptr<chatPhoto> &&new_photo_); + + static const std::int32_t ID = -811572541; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventSlowModeDelayChanged final : public ChatEventAction { + public: + int32 old_slow_mode_delay_; + int32 new_slow_mode_delay_; + + chatEventSlowModeDelayChanged(); + + chatEventSlowModeDelayChanged(int32 old_slow_mode_delay_, int32 new_slow_mode_delay_); + + static const std::int32_t ID = -1653195765; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventStickerSetChanged final : public ChatEventAction { + public: + int64 old_sticker_set_id_; + int64 new_sticker_set_id_; + + chatEventStickerSetChanged(); + + chatEventStickerSetChanged(int64 old_sticker_set_id_, int64 new_sticker_set_id_); + + static const std::int32_t ID = -1243130481; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventTitleChanged final : public ChatEventAction { + public: + string old_title_; + string new_title_; + + chatEventTitleChanged(); + + chatEventTitleChanged(string const &old_title_, string const &new_title_); + + static const std::int32_t ID = 1134103250; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventUsernameChanged final : public ChatEventAction { + public: + string old_username_; + string new_username_; + + chatEventUsernameChanged(); + + chatEventUsernameChanged(string const &old_username_, string const &new_username_); + + static const std::int32_t ID = 1728558443; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventActiveUsernamesChanged final : public ChatEventAction { + public: + array<string> old_usernames_; + array<string> new_usernames_; + + chatEventActiveUsernamesChanged(); + + chatEventActiveUsernamesChanged(array<string> &&old_usernames_, array<string> &&new_usernames_); + + static const std::int32_t ID = -1508790810; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventHasProtectedContentToggled final : public ChatEventAction { + public: + bool has_protected_content_; + + chatEventHasProtectedContentToggled(); + + explicit chatEventHasProtectedContentToggled(bool has_protected_content_); + + static const std::int32_t ID = -184270335; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInvitesToggled final : public ChatEventAction { + public: + bool can_invite_users_; + + chatEventInvitesToggled(); + + explicit chatEventInvitesToggled(bool can_invite_users_); + + static const std::int32_t ID = -62548373; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventIsAllHistoryAvailableToggled final : public ChatEventAction { + public: + bool is_all_history_available_; + + chatEventIsAllHistoryAvailableToggled(); + + explicit chatEventIsAllHistoryAvailableToggled(bool is_all_history_available_); + + static const std::int32_t ID = -1599063019; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventSignMessagesToggled final : public ChatEventAction { + public: + bool sign_messages_; + + chatEventSignMessagesToggled(); + + explicit chatEventSignMessagesToggled(bool sign_messages_); + + static const std::int32_t ID = -1313265634; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInviteLinkEdited final : public ChatEventAction { + public: + object_ptr<chatInviteLink> old_invite_link_; + object_ptr<chatInviteLink> new_invite_link_; + + chatEventInviteLinkEdited(); + + chatEventInviteLinkEdited(object_ptr<chatInviteLink> &&old_invite_link_, object_ptr<chatInviteLink> &&new_invite_link_); + + static const std::int32_t ID = -460190366; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInviteLinkRevoked final : public ChatEventAction { + public: + object_ptr<chatInviteLink> invite_link_; + + chatEventInviteLinkRevoked(); + + explicit chatEventInviteLinkRevoked(object_ptr<chatInviteLink> &&invite_link_); + + static const std::int32_t ID = -1579417629; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventInviteLinkDeleted final : public ChatEventAction { + public: + object_ptr<chatInviteLink> invite_link_; + + chatEventInviteLinkDeleted(); + + explicit chatEventInviteLinkDeleted(object_ptr<chatInviteLink> &&invite_link_); + + static const std::int32_t ID = -1394974361; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatCreated final : public ChatEventAction { + public: + int32 group_call_id_; + + chatEventVideoChatCreated(); + + explicit chatEventVideoChatCreated(int32 group_call_id_); + + static const std::int32_t ID = 1822853755; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatEnded final : public ChatEventAction { + public: + int32 group_call_id_; + + chatEventVideoChatEnded(); + + explicit chatEventVideoChatEnded(int32 group_call_id_); + + static const std::int32_t ID = 1630039112; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatMuteNewParticipantsToggled final : public ChatEventAction { + public: + bool mute_new_participants_; + + chatEventVideoChatMuteNewParticipantsToggled(); + + explicit chatEventVideoChatMuteNewParticipantsToggled(bool mute_new_participants_); + + static const std::int32_t ID = -126547970; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatParticipantIsMutedToggled final : public ChatEventAction { + public: + object_ptr<MessageSender> participant_id_; + bool is_muted_; + + chatEventVideoChatParticipantIsMutedToggled(); + + chatEventVideoChatParticipantIsMutedToggled(object_ptr<MessageSender> &&participant_id_, bool is_muted_); + + static const std::int32_t ID = 521165047; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventVideoChatParticipantVolumeLevelChanged final : public ChatEventAction { + public: + object_ptr<MessageSender> participant_id_; + int32 volume_level_; + + chatEventVideoChatParticipantVolumeLevelChanged(); + + chatEventVideoChatParticipantVolumeLevelChanged(object_ptr<MessageSender> &&participant_id_, int32 volume_level_); + + static const std::int32_t ID = 1131385534; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventIsForumToggled final : public ChatEventAction { + public: + bool is_forum_; + + chatEventIsForumToggled(); + + explicit chatEventIsForumToggled(bool is_forum_); + + static const std::int32_t ID = 1516491033; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicCreated final : public ChatEventAction { + public: + object_ptr<forumTopicInfo> topic_info_; + + chatEventForumTopicCreated(); + + explicit chatEventForumTopicCreated(object_ptr<forumTopicInfo> &&topic_info_); + + static const std::int32_t ID = 2005269314; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicEdited final : public ChatEventAction { + public: + object_ptr<forumTopicInfo> old_topic_info_; + object_ptr<forumTopicInfo> new_topic_info_; + + chatEventForumTopicEdited(); + + chatEventForumTopicEdited(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_); + + static const std::int32_t ID = 1624910860; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicToggleIsClosed final : public ChatEventAction { + public: + object_ptr<forumTopicInfo> topic_info_; + + chatEventForumTopicToggleIsClosed(); + + explicit chatEventForumTopicToggleIsClosed(object_ptr<forumTopicInfo> &&topic_info_); + + static const std::int32_t ID = -962704070; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicDeleted final : public ChatEventAction { + public: + object_ptr<forumTopicInfo> topic_info_; + + chatEventForumTopicDeleted(); + + explicit chatEventForumTopicDeleted(object_ptr<forumTopicInfo> &&topic_info_); + + static const std::int32_t ID = -1332795123; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventForumTopicPinned final : public ChatEventAction { + public: + object_ptr<forumTopicInfo> old_topic_info_; + object_ptr<forumTopicInfo> new_topic_info_; + + chatEventForumTopicPinned(); + + chatEventForumTopicPinned(object_ptr<forumTopicInfo> &&old_topic_info_, object_ptr<forumTopicInfo> &&new_topic_info_); + + static const std::int32_t ID = 2143626222; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEventLogFilters final : public Object { + public: + bool message_edits_; + bool message_deletions_; + bool message_pins_; + bool member_joins_; + bool member_leaves_; + bool member_invites_; + bool member_promotions_; + bool member_restrictions_; + bool info_changes_; + bool setting_changes_; + bool invite_link_changes_; + bool video_chat_changes_; + bool forum_changes_; + + chatEventLogFilters(); + + chatEventLogFilters(bool message_edits_, bool message_deletions_, bool message_pins_, bool member_joins_, bool member_leaves_, bool member_invites_, bool member_promotions_, bool member_restrictions_, bool info_changes_, bool setting_changes_, bool invite_link_changes_, bool video_chat_changes_, bool forum_changes_); + + static const std::int32_t ID = 1648261677; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatEvents final : public Object { + public: + array<object_ptr<chatEvent>> events_; + + chatEvents(); + + explicit chatEvents(array<object_ptr<chatEvent>> &&events_); + + static const std::int32_t ID = -585329664; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFilter final : public Object { + public: + string title_; + string icon_name_; + array<int53> pinned_chat_ids_; + array<int53> included_chat_ids_; + array<int53> excluded_chat_ids_; + bool exclude_muted_; + bool exclude_read_; + bool exclude_archived_; + bool include_contacts_; + bool include_non_contacts_; + bool include_bots_; + bool include_groups_; + bool include_channels_; + + chatFilter(); + + chatFilter(string const &title_, string const &icon_name_, array<int53> &&pinned_chat_ids_, array<int53> &&included_chat_ids_, array<int53> &&excluded_chat_ids_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, bool include_contacts_, bool include_non_contacts_, bool include_bots_, bool include_groups_, bool include_channels_); + + static const std::int32_t ID = -664815123; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatFilterInfo final : public Object { + public: + int32 id_; + string title_; + string icon_name_; + + chatFilterInfo(); + + chatFilterInfo(int32 id_, string const &title_, string const &icon_name_); + + static const std::int32_t ID = -943721165; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLink final : public Object { + public: + string invite_link_; + string name_; + int53 creator_user_id_; + int32 date_; + int32 edit_date_; + int32 expiration_date_; + int32 member_limit_; + int32 member_count_; + int32 pending_join_request_count_; + bool creates_join_request_; + bool is_primary_; + bool is_revoked_; + + chatInviteLink(); + + chatInviteLink(string const &invite_link_, string const &name_, int53 creator_user_id_, int32 date_, int32 edit_date_, int32 expiration_date_, int32 member_limit_, int32 member_count_, int32 pending_join_request_count_, bool creates_join_request_, bool is_primary_, bool is_revoked_); + + static const std::int32_t ID = -205812476; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkCount final : public Object { + public: + int53 user_id_; + int32 invite_link_count_; + int32 revoked_invite_link_count_; + + chatInviteLinkCount(); + + chatInviteLinkCount(int53 user_id_, int32 invite_link_count_, int32 revoked_invite_link_count_); + + static const std::int32_t ID = -1021999210; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkCounts final : public Object { + public: + array<object_ptr<chatInviteLinkCount>> invite_link_counts_; + + chatInviteLinkCounts(); + + explicit chatInviteLinkCounts(array<object_ptr<chatInviteLinkCount>> &&invite_link_counts_); + + static const std::int32_t ID = 920326637; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkInfo final : public Object { + public: + int53 chat_id_; + int32 accessible_for_; + object_ptr<ChatType> type_; + string title_; + object_ptr<chatPhotoInfo> photo_; + string description_; + int32 member_count_; + array<int53> member_user_ids_; + bool creates_join_request_; + bool is_public_; + + chatInviteLinkInfo(); + + chatInviteLinkInfo(int53 chat_id_, int32 accessible_for_, object_ptr<ChatType> &&type_, string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &description_, int32 member_count_, array<int53> &&member_user_ids_, bool creates_join_request_, bool is_public_); + + static const std::int32_t ID = 546234276; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkMember final : public Object { + public: + int53 user_id_; + int32 joined_chat_date_; + int53 approver_user_id_; + + chatInviteLinkMember(); + + chatInviteLinkMember(int53 user_id_, int32 joined_chat_date_, int53 approver_user_id_); + + static const std::int32_t ID = -1409060582; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinkMembers final : public Object { + public: + int32 total_count_; + array<object_ptr<chatInviteLinkMember>> members_; + + chatInviteLinkMembers(); + + chatInviteLinkMembers(int32 total_count_, array<object_ptr<chatInviteLinkMember>> &&members_); + + static const std::int32_t ID = 315635051; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteLinks final : public Object { + public: + int32 total_count_; + array<object_ptr<chatInviteLink>> invite_links_; + + chatInviteLinks(); + + chatInviteLinks(int32 total_count_, array<object_ptr<chatInviteLink>> &&invite_links_); + + static const std::int32_t ID = 112891427; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatJoinRequest final : public Object { + public: + int53 user_id_; + int32 date_; + string bio_; + + chatJoinRequest(); + + chatJoinRequest(int53 user_id_, int32 date_, string const &bio_); + + static const std::int32_t ID = 59341416; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatJoinRequests final : public Object { + public: + int32 total_count_; + array<object_ptr<chatJoinRequest>> requests_; + + chatJoinRequests(); + + chatJoinRequests(int32 total_count_, array<object_ptr<chatJoinRequest>> &&requests_); + + static const std::int32_t ID = 1291680519; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatJoinRequestsInfo final : public Object { + public: + int32 total_count_; + array<int53> user_ids_; + + chatJoinRequestsInfo(); + + chatJoinRequestsInfo(int32 total_count_, array<int53> &&user_ids_); + + static const std::int32_t ID = 888534463; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatList: public Object { + public: +}; + +class chatListMain final : public ChatList { + public: + + chatListMain(); + + static const std::int32_t ID = -400991316; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatListArchive final : public ChatList { + public: + + chatListArchive(); + + static const std::int32_t ID = 362770115; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatListFilter final : public ChatList { + public: + int32 chat_filter_id_; + + chatListFilter(); + + explicit chatListFilter(int32 chat_filter_id_); + + static const std::int32_t ID = -2022707655; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatLists final : public Object { + public: + array<object_ptr<ChatList>> chat_lists_; + + chatLists(); + + explicit chatLists(array<object_ptr<ChatList>> &&chat_lists_); + + static const std::int32_t ID = -258292771; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatLocation final : public Object { + public: + object_ptr<location> location_; + string address_; + + chatLocation(); + + chatLocation(object_ptr<location> &&location_, string const &address_); + + static const std::int32_t ID = -1566863583; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMember final : public Object { + public: + object_ptr<MessageSender> member_id_; + int53 inviter_user_id_; + int32 joined_chat_date_; + object_ptr<ChatMemberStatus> status_; + + chatMember(); + + chatMember(object_ptr<MessageSender> &&member_id_, int53 inviter_user_id_, int32 joined_chat_date_, object_ptr<ChatMemberStatus> &&status_); + + static const std::int32_t ID = 1829953909; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatMemberStatus: public Object { + public: +}; + +class chatMemberStatusCreator final : public ChatMemberStatus { + public: + string custom_title_; + bool is_anonymous_; + bool is_member_; + + chatMemberStatusCreator(); + + chatMemberStatusCreator(string const &custom_title_, bool is_anonymous_, bool is_member_); + + static const std::int32_t ID = -160019714; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusAdministrator final : public ChatMemberStatus { + public: + string custom_title_; + bool can_be_edited_; + object_ptr<chatAdministratorRights> rights_; + + chatMemberStatusAdministrator(); + + chatMemberStatusAdministrator(string const &custom_title_, bool can_be_edited_, object_ptr<chatAdministratorRights> &&rights_); + + static const std::int32_t ID = -70024163; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusMember final : public ChatMemberStatus { + public: + + chatMemberStatusMember(); + + static const std::int32_t ID = 844723285; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusRestricted final : public ChatMemberStatus { + public: + bool is_member_; + int32 restricted_until_date_; + object_ptr<chatPermissions> permissions_; + + chatMemberStatusRestricted(); + + chatMemberStatusRestricted(bool is_member_, int32 restricted_until_date_, object_ptr<chatPermissions> &&permissions_); + + static const std::int32_t ID = 1661432998; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusLeft final : public ChatMemberStatus { + public: + + chatMemberStatusLeft(); + + static const std::int32_t ID = -5815259; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMemberStatusBanned final : public ChatMemberStatus { + public: + int32 banned_until_date_; + + chatMemberStatusBanned(); + + explicit chatMemberStatusBanned(int32 banned_until_date_); + + static const std::int32_t ID = -1653518666; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembers final : public Object { + public: + int32 total_count_; + array<object_ptr<chatMember>> members_; + + chatMembers(); + + chatMembers(int32 total_count_, array<object_ptr<chatMember>> &&members_); + + static const std::int32_t ID = -497558622; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatMembersFilter: public Object { + public: +}; + +class chatMembersFilterContacts final : public ChatMembersFilter { + public: + + chatMembersFilterContacts(); + + static const std::int32_t ID = 1774485671; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterAdministrators final : public ChatMembersFilter { + public: + + chatMembersFilterAdministrators(); + + static const std::int32_t ID = -1266893796; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterMembers final : public ChatMembersFilter { + public: + + chatMembersFilterMembers(); + + static const std::int32_t ID = 670504342; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterMention final : public ChatMembersFilter { + public: + int53 message_thread_id_; + + chatMembersFilterMention(); + + explicit chatMembersFilterMention(int53 message_thread_id_); + + static const std::int32_t ID = 856419831; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterRestricted final : public ChatMembersFilter { + public: + + chatMembersFilterRestricted(); + + static const std::int32_t ID = 1256282813; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterBanned final : public ChatMembersFilter { + public: + + chatMembersFilterBanned(); + + static const std::int32_t ID = -1863102648; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMembersFilterBots final : public ChatMembersFilter { + public: + + chatMembersFilterBots(); + + static const std::int32_t ID = -1422567288; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMessageSender final : public Object { + public: + object_ptr<MessageSender> sender_; + bool needs_premium_; + + chatMessageSender(); + + chatMessageSender(object_ptr<MessageSender> &&sender_, bool needs_premium_); + + static const std::int32_t ID = 760590010; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatMessageSenders final : public Object { + public: + array<object_ptr<chatMessageSender>> senders_; + + chatMessageSenders(); + + explicit chatMessageSenders(array<object_ptr<chatMessageSender>> &&senders_); + + static const std::int32_t ID = -1866230970; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatNearby final : public Object { + public: + int53 chat_id_; + int32 distance_; + + chatNearby(); + + chatNearby(int53 chat_id_, int32 distance_); + + static const std::int32_t ID = 48120405; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatNotificationSettings final : public Object { + public: + bool use_default_mute_for_; + int32 mute_for_; + bool use_default_sound_; + int64 sound_id_; + bool use_default_show_preview_; + bool show_preview_; + bool use_default_disable_pinned_message_notifications_; + bool disable_pinned_message_notifications_; + bool use_default_disable_mention_notifications_; + bool disable_mention_notifications_; + + chatNotificationSettings(); + + chatNotificationSettings(bool use_default_mute_for_, int32 mute_for_, bool use_default_sound_, int64 sound_id_, bool use_default_show_preview_, bool show_preview_, bool use_default_disable_pinned_message_notifications_, bool disable_pinned_message_notifications_, bool use_default_disable_mention_notifications_, bool disable_mention_notifications_); + + static const std::int32_t ID = 944322400; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPermissions final : public Object { + public: + bool can_send_messages_; + bool can_send_media_messages_; + bool can_send_polls_; + bool can_send_other_messages_; + bool can_add_web_page_previews_; + bool can_change_info_; + bool can_invite_users_; + bool can_pin_messages_; + bool can_manage_topics_; + + chatPermissions(); + + chatPermissions(bool can_send_messages_, bool can_send_media_messages_, bool can_send_polls_, bool can_send_other_messages_, bool can_add_web_page_previews_, bool can_change_info_, bool can_invite_users_, bool can_pin_messages_, bool can_manage_topics_); + + static const std::int32_t ID = -835592567; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPhoto final : public Object { + public: + int64 id_; + int32 added_date_; + object_ptr<minithumbnail> minithumbnail_; + array<object_ptr<photoSize>> sizes_; + object_ptr<animatedChatPhoto> animation_; + object_ptr<animatedChatPhoto> small_animation_; + + chatPhoto(); + + chatPhoto(int64 id_, int32 added_date_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_, object_ptr<animatedChatPhoto> &&animation_, object_ptr<animatedChatPhoto> &&small_animation_); + + static const std::int32_t ID = 1854980206; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPhotoInfo final : public Object { + public: + object_ptr<file> small_; + object_ptr<file> big_; + object_ptr<minithumbnail> minithumbnail_; + bool has_animation_; + + chatPhotoInfo(); + + chatPhotoInfo(object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_); + + static const std::int32_t ID = 167058358; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPhotos final : public Object { + public: + int32 total_count_; + array<object_ptr<chatPhoto>> photos_; + + chatPhotos(); + + chatPhotos(int32 total_count_, array<object_ptr<chatPhoto>> &&photos_); + + static const std::int32_t ID = -1510699180; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPosition final : public Object { + public: + object_ptr<ChatList> list_; + int64 order_; + bool is_pinned_; + object_ptr<ChatSource> source_; + + chatPosition(); + + chatPosition(object_ptr<ChatList> &&list_, int64 order_, bool is_pinned_, object_ptr<ChatSource> &&source_); + + static const std::int32_t ID = -622557355; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatReportReason: public Object { + public: +}; + +class chatReportReasonSpam final : public ChatReportReason { + public: + + chatReportReasonSpam(); + + static const std::int32_t ID = -510848863; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonViolence final : public ChatReportReason { + public: + + chatReportReasonViolence(); + + static const std::int32_t ID = -1330235395; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonPornography final : public ChatReportReason { + public: + + chatReportReasonPornography(); + + static const std::int32_t ID = 722614385; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonChildAbuse final : public ChatReportReason { + public: + + chatReportReasonChildAbuse(); + + static const std::int32_t ID = -1070686531; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonCopyright final : public ChatReportReason { + public: + + chatReportReasonCopyright(); + + static const std::int32_t ID = 986898080; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonUnrelatedLocation final : public ChatReportReason { + public: + + chatReportReasonUnrelatedLocation(); + + static const std::int32_t ID = 2632403; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonFake final : public ChatReportReason { + public: + + chatReportReasonFake(); + + static const std::int32_t ID = -1713230446; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonIllegalDrugs final : public ChatReportReason { + public: + + chatReportReasonIllegalDrugs(); + + static const std::int32_t ID = -844539307; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonPersonalDetails final : public ChatReportReason { + public: + + chatReportReasonPersonalDetails(); + + static const std::int32_t ID = 1121159029; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReportReasonCustom final : public ChatReportReason { + public: + + chatReportReasonCustom(); + + static const std::int32_t ID = 1288925974; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatSource: public Object { + public: +}; + +class chatSourceMtprotoProxy final : public ChatSource { + public: + + chatSourceMtprotoProxy(); + + static const std::int32_t ID = 394074115; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatSourcePublicServiceAnnouncement final : public ChatSource { + public: + string type_; + string text_; + + chatSourcePublicServiceAnnouncement(); + + chatSourcePublicServiceAnnouncement(string const &type_, string const &text_); + + static const std::int32_t ID = -328571244; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatStatistics: public Object { + public: +}; + +class chatStatisticsSupergroup final : public ChatStatistics { + public: + object_ptr<dateRange> period_; + object_ptr<statisticalValue> member_count_; + object_ptr<statisticalValue> message_count_; + object_ptr<statisticalValue> viewer_count_; + object_ptr<statisticalValue> sender_count_; + object_ptr<StatisticalGraph> member_count_graph_; + object_ptr<StatisticalGraph> join_graph_; + object_ptr<StatisticalGraph> join_by_source_graph_; + object_ptr<StatisticalGraph> language_graph_; + object_ptr<StatisticalGraph> message_content_graph_; + object_ptr<StatisticalGraph> action_graph_; + object_ptr<StatisticalGraph> day_graph_; + object_ptr<StatisticalGraph> week_graph_; + array<object_ptr<chatStatisticsMessageSenderInfo>> top_senders_; + array<object_ptr<chatStatisticsAdministratorActionsInfo>> top_administrators_; + array<object_ptr<chatStatisticsInviterInfo>> top_inviters_; + + chatStatisticsSupergroup(); + + chatStatisticsSupergroup(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&message_count_, object_ptr<statisticalValue> &&viewer_count_, object_ptr<statisticalValue> &&sender_count_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_content_graph_, object_ptr<StatisticalGraph> &&action_graph_, object_ptr<StatisticalGraph> &&day_graph_, object_ptr<StatisticalGraph> &&week_graph_, array<object_ptr<chatStatisticsMessageSenderInfo>> &&top_senders_, array<object_ptr<chatStatisticsAdministratorActionsInfo>> &&top_administrators_, array<object_ptr<chatStatisticsInviterInfo>> &&top_inviters_); + + static const std::int32_t ID = -17244633; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsChannel final : public ChatStatistics { + public: + object_ptr<dateRange> period_; + object_ptr<statisticalValue> member_count_; + object_ptr<statisticalValue> mean_view_count_; + object_ptr<statisticalValue> mean_share_count_; + double enabled_notifications_percentage_; + object_ptr<StatisticalGraph> member_count_graph_; + object_ptr<StatisticalGraph> join_graph_; + object_ptr<StatisticalGraph> mute_graph_; + object_ptr<StatisticalGraph> view_count_by_hour_graph_; + object_ptr<StatisticalGraph> view_count_by_source_graph_; + object_ptr<StatisticalGraph> join_by_source_graph_; + object_ptr<StatisticalGraph> language_graph_; + object_ptr<StatisticalGraph> message_interaction_graph_; + object_ptr<StatisticalGraph> instant_view_interaction_graph_; + array<object_ptr<chatStatisticsMessageInteractionInfo>> recent_message_interactions_; + + chatStatisticsChannel(); + + chatStatisticsChannel(object_ptr<dateRange> &&period_, object_ptr<statisticalValue> &&member_count_, object_ptr<statisticalValue> &&mean_view_count_, object_ptr<statisticalValue> &&mean_share_count_, double enabled_notifications_percentage_, object_ptr<StatisticalGraph> &&member_count_graph_, object_ptr<StatisticalGraph> &&join_graph_, object_ptr<StatisticalGraph> &&mute_graph_, object_ptr<StatisticalGraph> &&view_count_by_hour_graph_, object_ptr<StatisticalGraph> &&view_count_by_source_graph_, object_ptr<StatisticalGraph> &&join_by_source_graph_, object_ptr<StatisticalGraph> &&language_graph_, object_ptr<StatisticalGraph> &&message_interaction_graph_, object_ptr<StatisticalGraph> &&instant_view_interaction_graph_, array<object_ptr<chatStatisticsMessageInteractionInfo>> &&recent_message_interactions_); + + static const std::int32_t ID = -825434183; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsAdministratorActionsInfo final : public Object { + public: + int53 user_id_; + int32 deleted_message_count_; + int32 banned_user_count_; + int32 restricted_user_count_; + + chatStatisticsAdministratorActionsInfo(); + + chatStatisticsAdministratorActionsInfo(int53 user_id_, int32 deleted_message_count_, int32 banned_user_count_, int32 restricted_user_count_); + + static const std::int32_t ID = -406467202; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsInviterInfo final : public Object { + public: + int53 user_id_; + int32 added_member_count_; + + chatStatisticsInviterInfo(); + + chatStatisticsInviterInfo(int53 user_id_, int32 added_member_count_); + + static const std::int32_t ID = 629396619; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsMessageInteractionInfo final : public Object { + public: + int53 message_id_; + int32 view_count_; + int32 forward_count_; + + chatStatisticsMessageInteractionInfo(); + + chatStatisticsMessageInteractionInfo(int53 message_id_, int32 view_count_, int32 forward_count_); + + static const std::int32_t ID = -765580756; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatStatisticsMessageSenderInfo final : public Object { + public: + int53 user_id_; + int32 sent_message_count_; + int32 average_character_count_; + + chatStatisticsMessageSenderInfo(); + + chatStatisticsMessageSenderInfo(int53 user_id_, int32 sent_message_count_, int32 average_character_count_); + + static const std::int32_t ID = 1762295371; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatTheme final : public Object { + public: + string name_; + object_ptr<themeSettings> light_settings_; + object_ptr<themeSettings> dark_settings_; + + chatTheme(); + + chatTheme(string const &name_, object_ptr<themeSettings> &&light_settings_, object_ptr<themeSettings> &&dark_settings_); + + static const std::int32_t ID = -113218503; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatType: public Object { + public: +}; + +class chatTypePrivate final : public ChatType { + public: + int53 user_id_; + + chatTypePrivate(); + + explicit chatTypePrivate(int53 user_id_); + + static const std::int32_t ID = 1579049844; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatTypeBasicGroup final : public ChatType { + public: + int53 basic_group_id_; + + chatTypeBasicGroup(); + + explicit chatTypeBasicGroup(int53 basic_group_id_); + + static const std::int32_t ID = 973884508; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatTypeSupergroup final : public ChatType { + public: + int53 supergroup_id_; + bool is_channel_; + + chatTypeSupergroup(); + + chatTypeSupergroup(int53 supergroup_id_, bool is_channel_); + + static const std::int32_t ID = -1472570774; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatTypeSecret final : public ChatType { + public: + int32 secret_chat_id_; + int53 user_id_; + + chatTypeSecret(); + + chatTypeSecret(int32 secret_chat_id_, int53 user_id_); + + static const std::int32_t ID = 862366513; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chats final : public Object { + public: + int32 total_count_; + array<int53> chat_ids_; + + chats(); + + chats(int32 total_count_, array<int53> &&chat_ids_); + + static const std::int32_t ID = 1809654812; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatsNearby final : public Object { + public: + array<object_ptr<chatNearby>> users_nearby_; + array<object_ptr<chatNearby>> supergroups_nearby_; + + chatsNearby(); + + chatsNearby(array<object_ptr<chatNearby>> &&users_nearby_, array<object_ptr<chatNearby>> &&supergroups_nearby_); + + static const std::int32_t ID = 187746081; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CheckChatUsernameResult: public Object { + public: +}; + +class checkChatUsernameResultOk final : public CheckChatUsernameResult { + public: + + checkChatUsernameResultOk(); + + static const std::int32_t ID = -1498956964; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultUsernameInvalid final : public CheckChatUsernameResult { + public: + + checkChatUsernameResultUsernameInvalid(); + + static const std::int32_t ID = -636979370; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultUsernameOccupied final : public CheckChatUsernameResult { + public: + + checkChatUsernameResultUsernameOccupied(); + + static const std::int32_t ID = 1320892201; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultPublicChatsTooMuch final : public CheckChatUsernameResult { + public: + + checkChatUsernameResultPublicChatsTooMuch(); + + static const std::int32_t ID = 858247741; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsernameResultPublicGroupsUnavailable final : public CheckChatUsernameResult { + public: + + checkChatUsernameResultPublicGroupsUnavailable(); + + static const std::int32_t ID = -51833641; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class CheckStickerSetNameResult: public Object { + public: +}; + +class checkStickerSetNameResultOk final : public CheckStickerSetNameResult { + public: + + checkStickerSetNameResultOk(); + + static const std::int32_t ID = -1404308904; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkStickerSetNameResultNameInvalid final : public CheckStickerSetNameResult { + public: + + checkStickerSetNameResultNameInvalid(); + + static const std::int32_t ID = 177992244; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkStickerSetNameResultNameOccupied final : public CheckStickerSetNameResult { + public: + + checkStickerSetNameResultNameOccupied(); + + static const std::int32_t ID = 1012980872; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class closedVectorPath final : public Object { + public: + array<object_ptr<VectorPathCommand>> commands_; + + closedVectorPath(); + + explicit closedVectorPath(array<object_ptr<VectorPathCommand>> &&commands_); + + static const std::int32_t ID = 589951657; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectedWebsite final : public Object { + public: + int64 id_; + string domain_name_; + int53 bot_user_id_; + string browser_; + string platform_; + int32 log_in_date_; + int32 last_active_date_; + string ip_; + string location_; + + connectedWebsite(); + + connectedWebsite(int64 id_, string const &domain_name_, int53 bot_user_id_, string const &browser_, string const &platform_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &location_); + + static const std::int32_t ID = 844014445; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectedWebsites final : public Object { + public: + array<object_ptr<connectedWebsite>> websites_; + + connectedWebsites(); + + explicit connectedWebsites(array<object_ptr<connectedWebsite>> &&websites_); + + static const std::int32_t ID = -1727949694; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ConnectionState: public Object { + public: +}; + +class connectionStateWaitingForNetwork final : public ConnectionState { + public: + + connectionStateWaitingForNetwork(); + + static const std::int32_t ID = 1695405912; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateConnectingToProxy final : public ConnectionState { + public: + + connectionStateConnectingToProxy(); + + static const std::int32_t ID = -93187239; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateConnecting final : public ConnectionState { + public: + + connectionStateConnecting(); + + static const std::int32_t ID = -1298400670; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateUpdating final : public ConnectionState { + public: + + connectionStateUpdating(); + + static const std::int32_t ID = -188104009; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class connectionStateReady final : public ConnectionState { + public: + + connectionStateReady(); + + static const std::int32_t ID = 48608492; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contact final : public Object { + public: + string phone_number_; + string first_name_; + string last_name_; + string vcard_; + int53 user_id_; + + contact(); + + contact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, int53 user_id_); + + static const std::int32_t ID = -1993844876; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class count final : public Object { + public: + int32 count_; + + count(); + + explicit count(int32 count_); + + static const std::int32_t ID = 1295577348; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class countries final : public Object { + public: + array<object_ptr<countryInfo>> countries_; + + countries(); + + explicit countries(array<object_ptr<countryInfo>> &&countries_); + + static const std::int32_t ID = 1854211813; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class countryInfo final : public Object { + public: + string country_code_; + string name_; + string english_name_; + bool is_hidden_; + array<string> calling_codes_; + + countryInfo(); + + countryInfo(string const &country_code_, string const &name_, string const &english_name_, bool is_hidden_, array<string> &&calling_codes_); + + static const std::int32_t ID = 1617195722; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class customRequestResult final : public Object { + public: + string result_; + + customRequestResult(); + + explicit customRequestResult(string const &result_); + + static const std::int32_t ID = -2009960452; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class databaseStatistics final : public Object { + public: + string statistics_; + + databaseStatistics(); + + explicit databaseStatistics(string const &statistics_); + + static const std::int32_t ID = -1123912880; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class date final : public Object { + public: + int32 day_; + int32 month_; + int32 year_; + + date(); + + date(int32 day_, int32 month_, int32 year_); + + static const std::int32_t ID = -277956960; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dateRange final : public Object { + public: + int32 start_date_; + int32 end_date_; + + dateRange(); + + dateRange(int32 start_date_, int32 end_date_); + + static const std::int32_t ID = 1360333926; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class datedFile final : public Object { + public: + object_ptr<file> file_; + int32 date_; + + datedFile(); + + datedFile(object_ptr<file> &&file_, int32 date_); + + static const std::int32_t ID = -1840795491; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deepLinkInfo final : public Object { + public: + object_ptr<formattedText> text_; + bool need_update_application_; + + deepLinkInfo(); + + deepLinkInfo(object_ptr<formattedText> &&text_, bool need_update_application_); + + static const std::int32_t ID = 1864081662; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DeviceToken: public Object { + public: +}; + +class deviceTokenFirebaseCloudMessaging final : public DeviceToken { + public: + string token_; + bool encrypt_; + + deviceTokenFirebaseCloudMessaging(); + + deviceTokenFirebaseCloudMessaging(string const &token_, bool encrypt_); + + static const std::int32_t ID = -797881849; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenApplePush final : public DeviceToken { + public: + string device_token_; + bool is_app_sandbox_; + + deviceTokenApplePush(); + + deviceTokenApplePush(string const &device_token_, bool is_app_sandbox_); + + static const std::int32_t ID = 387541955; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenApplePushVoIP final : public DeviceToken { + public: + string device_token_; + bool is_app_sandbox_; + bool encrypt_; + + deviceTokenApplePushVoIP(); + + deviceTokenApplePushVoIP(string const &device_token_, bool is_app_sandbox_, bool encrypt_); + + static const std::int32_t ID = 804275689; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenWindowsPush final : public DeviceToken { + public: + string access_token_; + + deviceTokenWindowsPush(); + + explicit deviceTokenWindowsPush(string const &access_token_); + + static const std::int32_t ID = -1410514289; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenMicrosoftPush final : public DeviceToken { + public: + string channel_uri_; + + deviceTokenMicrosoftPush(); + + explicit deviceTokenMicrosoftPush(string const &channel_uri_); + + static const std::int32_t ID = 1224269900; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenMicrosoftPushVoIP final : public DeviceToken { + public: + string channel_uri_; + + deviceTokenMicrosoftPushVoIP(); + + explicit deviceTokenMicrosoftPushVoIP(string const &channel_uri_); + + static const std::int32_t ID = -785603759; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenWebPush final : public DeviceToken { + public: + string endpoint_; + string p256dh_base64url_; + string auth_base64url_; + + deviceTokenWebPush(); + + deviceTokenWebPush(string const &endpoint_, string const &p256dh_base64url_, string const &auth_base64url_); + + static const std::int32_t ID = -1694507273; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenSimplePush final : public DeviceToken { + public: + string endpoint_; + + deviceTokenSimplePush(); + + explicit deviceTokenSimplePush(string const &endpoint_); + + static const std::int32_t ID = 49584736; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenUbuntuPush final : public DeviceToken { + public: + string token_; + + deviceTokenUbuntuPush(); + + explicit deviceTokenUbuntuPush(string const &token_); + + static const std::int32_t ID = 1782320422; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenBlackBerryPush final : public DeviceToken { + public: + string token_; + + deviceTokenBlackBerryPush(); + + explicit deviceTokenBlackBerryPush(string const &token_); + + static const std::int32_t ID = 1559167234; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deviceTokenTizenPush final : public DeviceToken { + public: + string reg_id_; + + deviceTokenTizenPush(); + + explicit deviceTokenTizenPush(string const ®_id_); + + static const std::int32_t ID = -1359947213; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DiceStickers: public Object { + public: +}; + +class diceStickersRegular final : public DiceStickers { + public: + object_ptr<sticker> sticker_; + + diceStickersRegular(); + + explicit diceStickersRegular(object_ptr<sticker> &&sticker_); + + static const std::int32_t ID = -740299570; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class diceStickersSlotMachine final : public DiceStickers { + public: + object_ptr<sticker> background_; + object_ptr<sticker> lever_; + object_ptr<sticker> left_reel_; + object_ptr<sticker> center_reel_; + object_ptr<sticker> right_reel_; + + diceStickersSlotMachine(); + + diceStickersSlotMachine(object_ptr<sticker> &&background_, object_ptr<sticker> &&lever_, object_ptr<sticker> &&left_reel_, object_ptr<sticker> &¢er_reel_, object_ptr<sticker> &&right_reel_); + + static const std::int32_t ID = -375223124; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class document final : public Object { + public: + string file_name_; + string mime_type_; + object_ptr<minithumbnail> minithumbnail_; + object_ptr<thumbnail> thumbnail_; + object_ptr<file> document_; + + document(); + + document(string const &file_name_, string const &mime_type_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&document_); + + static const std::int32_t ID = -1357271080; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class downloadedFileCounts final : public Object { + public: + int32 active_count_; + int32 paused_count_; + int32 completed_count_; + + downloadedFileCounts(); + + downloadedFileCounts(int32 active_count_, int32 paused_count_, int32 completed_count_); + + static const std::int32_t ID = -1973999550; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class draftMessage final : public Object { + public: + int53 reply_to_message_id_; + int32 date_; + object_ptr<InputMessageContent> input_message_text_; + + draftMessage(); + + draftMessage(int53 reply_to_message_id_, int32 date_, object_ptr<InputMessageContent> &&input_message_text_); + + static const std::int32_t ID = 1373050112; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmailAddressAuthentication: public Object { + public: +}; + +class emailAddressAuthenticationCode final : public EmailAddressAuthentication { + public: + string code_; + + emailAddressAuthenticationCode(); + + explicit emailAddressAuthenticationCode(string const &code_); + + static const std::int32_t ID = -993257022; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailAddressAuthenticationAppleId final : public EmailAddressAuthentication { + public: + string token_; + + emailAddressAuthenticationAppleId(); + + explicit emailAddressAuthenticationAppleId(string const &token_); + + static const std::int32_t ID = 633948265; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailAddressAuthenticationGoogleId final : public EmailAddressAuthentication { + public: + string token_; + + emailAddressAuthenticationGoogleId(); + + explicit emailAddressAuthenticationGoogleId(string const &token_); + + static const std::int32_t ID = -19142846; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailAddressAuthenticationCodeInfo final : public Object { + public: + string email_address_pattern_; + int32 length_; + + emailAddressAuthenticationCodeInfo(); + + emailAddressAuthenticationCodeInfo(string const &email_address_pattern_, int32 length_); + + static const std::int32_t ID = 1151066659; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiReaction final : public Object { + public: + string emoji_; + string title_; + bool is_active_; + object_ptr<sticker> static_icon_; + object_ptr<sticker> appear_animation_; + object_ptr<sticker> select_animation_; + object_ptr<sticker> activate_animation_; + object_ptr<sticker> effect_animation_; + object_ptr<sticker> around_animation_; + object_ptr<sticker> center_animation_; + + emojiReaction(); + + emojiReaction(string const &emoji_, string const &title_, bool is_active_, object_ptr<sticker> &&static_icon_, object_ptr<sticker> &&appear_animation_, object_ptr<sticker> &&select_animation_, object_ptr<sticker> &&activate_animation_, object_ptr<sticker> &&effect_animation_, object_ptr<sticker> &&around_animation_, object_ptr<sticker> &¢er_animation_); + + static const std::int32_t ID = 1616063583; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiStatus final : public Object { + public: + int64 custom_emoji_id_; + + emojiStatus(); + + explicit emojiStatus(int64 custom_emoji_id_); + + static const std::int32_t ID = 1092133478; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiStatuses final : public Object { + public: + array<object_ptr<emojiStatus>> emoji_statuses_; + + emojiStatuses(); + + explicit emojiStatuses(array<object_ptr<emojiStatus>> &&emoji_statuses_); + + static const std::int32_t ID = 1186104146; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojis final : public Object { + public: + array<string> emojis_; + + emojis(); + + explicit emojis(array<string> &&emojis_); + + static const std::int32_t ID = 950339552; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedCredentials final : public Object { + public: + bytes data_; + bytes hash_; + bytes secret_; + + encryptedCredentials(); + + encryptedCredentials(bytes const &data_, bytes const &hash_, bytes const &secret_); + + static const std::int32_t ID = 1331106766; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedPassportElement final : public Object { + public: + object_ptr<PassportElementType> type_; + bytes data_; + object_ptr<datedFile> front_side_; + object_ptr<datedFile> reverse_side_; + object_ptr<datedFile> selfie_; + array<object_ptr<datedFile>> translation_; + array<object_ptr<datedFile>> files_; + string value_; + string hash_; + + encryptedPassportElement(); + + encryptedPassportElement(object_ptr<PassportElementType> &&type_, bytes const &data_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_, array<object_ptr<datedFile>> &&files_, string const &value_, string const &hash_); + + static const std::int32_t ID = 2002386193; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class error final : public Object { + public: + int32 code_; + string message_; + + error(); + + error(int32 code_, string const &message_); + + static const std::int32_t ID = -1679978726; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class file final : public Object { + public: + int32 id_; + int53 size_; + int53 expected_size_; + object_ptr<localFile> local_; + object_ptr<remoteFile> remote_; + + file(); + + file(int32 id_, int53 size_, int53 expected_size_, object_ptr<localFile> &&local_, object_ptr<remoteFile> &&remote_); + + static const std::int32_t ID = 1263291956; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileDownload final : public Object { + public: + int32 file_id_; + object_ptr<message> message_; + int32 add_date_; + int32 complete_date_; + bool is_paused_; + + fileDownload(); + + fileDownload(int32 file_id_, object_ptr<message> &&message_, int32 add_date_, int32 complete_date_, bool is_paused_); + + static const std::int32_t ID = -2092100780; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileDownloadedPrefixSize final : public Object { + public: + int53 size_; + + fileDownloadedPrefixSize(); + + explicit fileDownloadedPrefixSize(int53 size_); + + static const std::int32_t ID = -2015205381; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class filePart final : public Object { + public: + bytes data_; + + filePart(); + + explicit filePart(bytes const &data_); + + static const std::int32_t ID = 911821878; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class FileType: public Object { + public: +}; + +class fileTypeNone final : public FileType { + public: + + fileTypeNone(); + + static const std::int32_t ID = 2003009189; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeAnimation final : public FileType { + public: + + fileTypeAnimation(); + + static const std::int32_t ID = -290816582; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeAudio final : public FileType { + public: + + fileTypeAudio(); + + static const std::int32_t ID = -709112160; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeDocument final : public FileType { + public: + + fileTypeDocument(); + + static const std::int32_t ID = -564722929; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeNotificationSound final : public FileType { + public: + + fileTypeNotificationSound(); + + static const std::int32_t ID = -1020289271; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypePhoto final : public FileType { + public: + + fileTypePhoto(); + + static const std::int32_t ID = -1718914651; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeProfilePhoto final : public FileType { + public: + + fileTypeProfilePhoto(); + + static const std::int32_t ID = 1795089315; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSecret final : public FileType { + public: + + fileTypeSecret(); + + static const std::int32_t ID = -1871899401; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSecretThumbnail final : public FileType { + public: + + fileTypeSecretThumbnail(); + + static const std::int32_t ID = -1401326026; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSecure final : public FileType { + public: + + fileTypeSecure(); + + static const std::int32_t ID = -1419133146; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeSticker final : public FileType { + public: + + fileTypeSticker(); + + static const std::int32_t ID = 475233385; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeThumbnail final : public FileType { + public: + + fileTypeThumbnail(); + + static const std::int32_t ID = -12443298; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeUnknown final : public FileType { + public: + + fileTypeUnknown(); + + static const std::int32_t ID = -2011566768; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeVideo final : public FileType { + public: + + fileTypeVideo(); + + static const std::int32_t ID = 1430816539; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeVideoNote final : public FileType { + public: + + fileTypeVideoNote(); + + static const std::int32_t ID = -518412385; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeVoiceNote final : public FileType { + public: + + fileTypeVoiceNote(); + + static const std::int32_t ID = -588681661; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileTypeWallpaper final : public FileType { + public: + + fileTypeWallpaper(); + + static const std::int32_t ID = 1854930076; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class formattedText final : public Object { + public: + string text_; + array<object_ptr<textEntity>> entities_; + + formattedText(); + + formattedText(string const &text_, array<object_ptr<textEntity>> &&entities_); + + static const std::int32_t ID = -252624564; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class forumTopic final : public Object { + public: + object_ptr<forumTopicInfo> info_; + object_ptr<message> last_message_; + bool is_pinned_; + int32 unread_count_; + int53 last_read_inbox_message_id_; + int53 last_read_outbox_message_id_; + int32 unread_mention_count_; + int32 unread_reaction_count_; + object_ptr<chatNotificationSettings> notification_settings_; + object_ptr<draftMessage> draft_message_; + + forumTopic(); + + forumTopic(object_ptr<forumTopicInfo> &&info_, object_ptr<message> &&last_message_, bool is_pinned_, int32 unread_count_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int32 unread_mention_count_, int32 unread_reaction_count_, object_ptr<chatNotificationSettings> &¬ification_settings_, object_ptr<draftMessage> &&draft_message_); + + static const std::int32_t ID = 303279334; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class forumTopicIcon final : public Object { + public: + int32 color_; + int64 custom_emoji_id_; + + forumTopicIcon(); + + forumTopicIcon(int32 color_, int64 custom_emoji_id_); + + static const std::int32_t ID = -818765421; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class forumTopicInfo final : public Object { + public: + int53 message_thread_id_; + string name_; + object_ptr<forumTopicIcon> icon_; + int32 creation_date_; + object_ptr<MessageSender> creator_id_; + bool is_outgoing_; + bool is_closed_; + + forumTopicInfo(); + + forumTopicInfo(int53 message_thread_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_, int32 creation_date_, object_ptr<MessageSender> &&creator_id_, bool is_outgoing_, bool is_closed_); + + static const std::int32_t ID = -745571750; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class foundFileDownloads final : public Object { + public: + object_ptr<downloadedFileCounts> total_counts_; + array<object_ptr<fileDownload>> files_; + string next_offset_; + + foundFileDownloads(); + + foundFileDownloads(object_ptr<downloadedFileCounts> &&total_counts_, array<object_ptr<fileDownload>> &&files_, string const &next_offset_); + + static const std::int32_t ID = 1395890392; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class foundMessages final : public Object { + public: + int32 total_count_; + array<object_ptr<message>> messages_; + string next_offset_; + + foundMessages(); + + foundMessages(int32 total_count_, array<object_ptr<message>> &&messages_, string const &next_offset_); + + static const std::int32_t ID = -529809608; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class game final : public Object { + public: + int64 id_; + string short_name_; + string title_; + object_ptr<formattedText> text_; + string description_; + object_ptr<photo> photo_; + object_ptr<animation> animation_; + + game(); + + game(int64 id_, string const &short_name_, string const &title_, object_ptr<formattedText> &&text_, string const &description_, object_ptr<photo> &&photo_, object_ptr<animation> &&animation_); + + static const std::int32_t ID = -1565597752; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class gameHighScore final : public Object { + public: + int32 position_; + int53 user_id_; + int32 score_; + + gameHighScore(); + + gameHighScore(int32 position_, int53 user_id_, int32 score_); + + static const std::int32_t ID = 342871838; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class gameHighScores final : public Object { + public: + array<object_ptr<gameHighScore>> scores_; + + gameHighScores(); + + explicit gameHighScores(array<object_ptr<gameHighScore>> &&scores_); + + static const std::int32_t ID = -725770727; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCall final : public Object { + public: + int32 id_; + string title_; + int32 scheduled_start_date_; + bool enabled_start_notification_; + bool is_active_; + bool is_rtmp_stream_; + bool is_joined_; + bool need_rejoin_; + bool can_be_managed_; + int32 participant_count_; + bool has_hidden_listeners_; + bool loaded_all_participants_; + array<object_ptr<groupCallRecentSpeaker>> recent_speakers_; + bool is_my_video_enabled_; + bool is_my_video_paused_; + bool can_enable_video_; + bool mute_new_participants_; + bool can_toggle_mute_new_participants_; + int32 record_duration_; + bool is_video_recorded_; + int32 duration_; + + groupCall(); + + groupCall(int32 id_, string const &title_, int32 scheduled_start_date_, bool enabled_start_notification_, bool is_active_, bool is_rtmp_stream_, bool is_joined_, bool need_rejoin_, bool can_be_managed_, int32 participant_count_, bool has_hidden_listeners_, bool loaded_all_participants_, array<object_ptr<groupCallRecentSpeaker>> &&recent_speakers_, bool is_my_video_enabled_, bool is_my_video_paused_, bool can_enable_video_, bool mute_new_participants_, bool can_toggle_mute_new_participants_, int32 record_duration_, bool is_video_recorded_, int32 duration_); + + static const std::int32_t ID = -123443355; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallId final : public Object { + public: + int32 id_; + + groupCallId(); + + explicit groupCallId(int32 id_); + + static const std::int32_t ID = 350534469; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallParticipant final : public Object { + public: + object_ptr<MessageSender> participant_id_; + int32 audio_source_id_; + int32 screen_sharing_audio_source_id_; + object_ptr<groupCallParticipantVideoInfo> video_info_; + object_ptr<groupCallParticipantVideoInfo> screen_sharing_video_info_; + string bio_; + bool is_current_user_; + bool is_speaking_; + bool is_hand_raised_; + bool can_be_muted_for_all_users_; + bool can_be_unmuted_for_all_users_; + bool can_be_muted_for_current_user_; + bool can_be_unmuted_for_current_user_; + bool is_muted_for_all_users_; + bool is_muted_for_current_user_; + bool can_unmute_self_; + int32 volume_level_; + string order_; + + groupCallParticipant(); + + groupCallParticipant(object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, int32 screen_sharing_audio_source_id_, object_ptr<groupCallParticipantVideoInfo> &&video_info_, object_ptr<groupCallParticipantVideoInfo> &&screen_sharing_video_info_, string const &bio_, bool is_current_user_, bool is_speaking_, bool is_hand_raised_, bool can_be_muted_for_all_users_, bool can_be_unmuted_for_all_users_, bool can_be_muted_for_current_user_, bool can_be_unmuted_for_current_user_, bool is_muted_for_all_users_, bool is_muted_for_current_user_, bool can_unmute_self_, int32 volume_level_, string const &order_); + + static const std::int32_t ID = 2059182571; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallParticipantVideoInfo final : public Object { + public: + array<object_ptr<groupCallVideoSourceGroup>> source_groups_; + string endpoint_id_; + bool is_paused_; + + groupCallParticipantVideoInfo(); + + groupCallParticipantVideoInfo(array<object_ptr<groupCallVideoSourceGroup>> &&source_groups_, string const &endpoint_id_, bool is_paused_); + + static const std::int32_t ID = -14294645; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallRecentSpeaker final : public Object { + public: + object_ptr<MessageSender> participant_id_; + bool is_speaking_; + + groupCallRecentSpeaker(); + + groupCallRecentSpeaker(object_ptr<MessageSender> &&participant_id_, bool is_speaking_); + + static const std::int32_t ID = 1819519436; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallStream final : public Object { + public: + int32 channel_id_; + int32 scale_; + int53 time_offset_; + + groupCallStream(); + + groupCallStream(int32 channel_id_, int32 scale_, int53 time_offset_); + + static const std::int32_t ID = -264564795; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallStreams final : public Object { + public: + array<object_ptr<groupCallStream>> streams_; + + groupCallStreams(); + + explicit groupCallStreams(array<object_ptr<groupCallStream>> &&streams_); + + static const std::int32_t ID = -1032959578; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class GroupCallVideoQuality: public Object { + public: +}; + +class groupCallVideoQualityThumbnail final : public GroupCallVideoQuality { + public: + + groupCallVideoQualityThumbnail(); + + static const std::int32_t ID = -379186304; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallVideoQualityMedium final : public GroupCallVideoQuality { + public: + + groupCallVideoQualityMedium(); + + static const std::int32_t ID = 394968234; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallVideoQualityFull final : public GroupCallVideoQuality { + public: + + groupCallVideoQualityFull(); + + static const std::int32_t ID = -2125916617; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallVideoSourceGroup final : public Object { + public: + string semantics_; + array<int32> source_ids_; + + groupCallVideoSourceGroup(); + + groupCallVideoSourceGroup(string const &semantics_, array<int32> &&source_ids_); + + static const std::int32_t ID = -1190900785; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class hashtags final : public Object { + public: + array<string> hashtags_; + + hashtags(); + + explicit hashtags(array<string> &&hashtags_); + + static const std::int32_t ID = 676798885; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class httpUrl final : public Object { + public: + string url_; + + httpUrl(); + + explicit httpUrl(string const &url_); + + static const std::int32_t ID = -2018019930; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class identityDocument final : public Object { + public: + string number_; + object_ptr<date> expiry_date_; + object_ptr<datedFile> front_side_; + object_ptr<datedFile> reverse_side_; + object_ptr<datedFile> selfie_; + array<object_ptr<datedFile>> translation_; + + identityDocument(); + + identityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<datedFile> &&front_side_, object_ptr<datedFile> &&reverse_side_, object_ptr<datedFile> &&selfie_, array<object_ptr<datedFile>> &&translation_); + + static const std::int32_t ID = 445952972; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class importedContacts final : public Object { + public: + array<int53> user_ids_; + array<int32> importer_count_; + + importedContacts(); + + importedContacts(array<int53> &&user_ids_, array<int32> &&importer_count_); + + static const std::int32_t ID = 2068432290; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButton final : public Object { + public: + string text_; + object_ptr<InlineKeyboardButtonType> type_; + + inlineKeyboardButton(); + + inlineKeyboardButton(string const &text_, object_ptr<InlineKeyboardButtonType> &&type_); + + static const std::int32_t ID = -372105704; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InlineKeyboardButtonType: public Object { + public: +}; + +class inlineKeyboardButtonTypeUrl final : public InlineKeyboardButtonType { + public: + string url_; + + inlineKeyboardButtonTypeUrl(); + + explicit inlineKeyboardButtonTypeUrl(string const &url_); + + static const std::int32_t ID = 1130741420; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeLoginUrl final : public InlineKeyboardButtonType { + public: + string url_; + int53 id_; + string forward_text_; + + inlineKeyboardButtonTypeLoginUrl(); + + inlineKeyboardButtonTypeLoginUrl(string const &url_, int53 id_, string const &forward_text_); + + static const std::int32_t ID = -1203413081; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeWebApp final : public InlineKeyboardButtonType { + public: + string url_; + + inlineKeyboardButtonTypeWebApp(); + + explicit inlineKeyboardButtonTypeWebApp(string const &url_); + + static const std::int32_t ID = -1767471672; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeCallback final : public InlineKeyboardButtonType { + public: + bytes data_; + + inlineKeyboardButtonTypeCallback(); + + explicit inlineKeyboardButtonTypeCallback(bytes const &data_); + + static const std::int32_t ID = -1127515139; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeCallbackWithPassword final : public InlineKeyboardButtonType { + public: + bytes data_; + + inlineKeyboardButtonTypeCallbackWithPassword(); + + explicit inlineKeyboardButtonTypeCallbackWithPassword(bytes const &data_); + + static const std::int32_t ID = 908018248; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeCallbackGame final : public InlineKeyboardButtonType { + public: + + inlineKeyboardButtonTypeCallbackGame(); + + static const std::int32_t ID = -383429528; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeSwitchInline final : public InlineKeyboardButtonType { + public: + string query_; + bool in_current_chat_; + + inlineKeyboardButtonTypeSwitchInline(); + + inlineKeyboardButtonTypeSwitchInline(string const &query_, bool in_current_chat_); + + static const std::int32_t ID = -2035563307; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeBuy final : public InlineKeyboardButtonType { + public: + + inlineKeyboardButtonTypeBuy(); + + static const std::int32_t ID = 1360739440; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineKeyboardButtonTypeUser final : public InlineKeyboardButtonType { + public: + int53 user_id_; + + inlineKeyboardButtonTypeUser(); + + explicit inlineKeyboardButtonTypeUser(int53 user_id_); + + static const std::int32_t ID = 1836574114; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InlineQueryResult: public Object { + public: +}; + +class inlineQueryResultArticle final : public InlineQueryResult { + public: + string id_; + string url_; + bool hide_url_; + string title_; + string description_; + object_ptr<thumbnail> thumbnail_; + + inlineQueryResultArticle(); + + inlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, object_ptr<thumbnail> &&thumbnail_); + + static const std::int32_t ID = 206340825; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultContact final : public InlineQueryResult { + public: + string id_; + object_ptr<contact> contact_; + object_ptr<thumbnail> thumbnail_; + + inlineQueryResultContact(); + + inlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, object_ptr<thumbnail> &&thumbnail_); + + static const std::int32_t ID = -181960174; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultLocation final : public InlineQueryResult { + public: + string id_; + object_ptr<location> location_; + string title_; + object_ptr<thumbnail> thumbnail_; + + inlineQueryResultLocation(); + + inlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, string const &title_, object_ptr<thumbnail> &&thumbnail_); + + static const std::int32_t ID = 466004752; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultVenue final : public InlineQueryResult { + public: + string id_; + object_ptr<venue> venue_; + object_ptr<thumbnail> thumbnail_; + + inlineQueryResultVenue(); + + inlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, object_ptr<thumbnail> &&thumbnail_); + + static const std::int32_t ID = 1281036382; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultGame final : public InlineQueryResult { + public: + string id_; + object_ptr<game> game_; + + inlineQueryResultGame(); + + inlineQueryResultGame(string const &id_, object_ptr<game> &&game_); + + static const std::int32_t ID = 1706916987; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultAnimation final : public InlineQueryResult { + public: + string id_; + object_ptr<animation> animation_; + string title_; + + inlineQueryResultAnimation(); + + inlineQueryResultAnimation(string const &id_, object_ptr<animation> &&animation_, string const &title_); + + static const std::int32_t ID = 2009984267; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultAudio final : public InlineQueryResult { + public: + string id_; + object_ptr<audio> audio_; + + inlineQueryResultAudio(); + + inlineQueryResultAudio(string const &id_, object_ptr<audio> &&audio_); + + static const std::int32_t ID = 842650360; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultDocument final : public InlineQueryResult { + public: + string id_; + object_ptr<document> document_; + string title_; + string description_; + + inlineQueryResultDocument(); + + inlineQueryResultDocument(string const &id_, object_ptr<document> &&document_, string const &title_, string const &description_); + + static const std::int32_t ID = -1491268539; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultPhoto final : public InlineQueryResult { + public: + string id_; + object_ptr<photo> photo_; + string title_; + string description_; + + inlineQueryResultPhoto(); + + inlineQueryResultPhoto(string const &id_, object_ptr<photo> &&photo_, string const &title_, string const &description_); + + static const std::int32_t ID = 1848319440; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultSticker final : public InlineQueryResult { + public: + string id_; + object_ptr<sticker> sticker_; + + inlineQueryResultSticker(); + + inlineQueryResultSticker(string const &id_, object_ptr<sticker> &&sticker_); + + static const std::int32_t ID = -1848224245; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultVideo final : public InlineQueryResult { + public: + string id_; + object_ptr<video> video_; + string title_; + string description_; + + inlineQueryResultVideo(); + + inlineQueryResultVideo(string const &id_, object_ptr<video> &&video_, string const &title_, string const &description_); + + static const std::int32_t ID = -1373158683; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResultVoiceNote final : public InlineQueryResult { + public: + string id_; + object_ptr<voiceNote> voice_note_; + string title_; + + inlineQueryResultVoiceNote(); + + inlineQueryResultVoiceNote(string const &id_, object_ptr<voiceNote> &&voice_note_, string const &title_); + + static const std::int32_t ID = -1897393105; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryResults final : public Object { + public: + int64 inline_query_id_; + string next_offset_; + array<object_ptr<InlineQueryResult>> results_; + string switch_pm_text_; + string switch_pm_parameter_; + + inlineQueryResults(); + + inlineQueryResults(int64 inline_query_id_, string const &next_offset_, array<object_ptr<InlineQueryResult>> &&results_, string const &switch_pm_text_, string const &switch_pm_parameter_); + + static const std::int32_t ID = 1000709656; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputBackground: public Object { + public: +}; + +class inputBackgroundLocal final : public InputBackground { + public: + object_ptr<InputFile> background_; + + inputBackgroundLocal(); + + explicit inputBackgroundLocal(object_ptr<InputFile> &&background_); + + static const std::int32_t ID = -1747094364; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBackgroundRemote final : public InputBackground { + public: + int64 background_id_; + + inputBackgroundRemote(); + + explicit inputBackgroundRemote(int64 background_id_); + + static const std::int32_t ID = -274976231; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputChatPhoto: public Object { + public: +}; + +class inputChatPhotoPrevious final : public InputChatPhoto { + public: + int64 chat_photo_id_; + + inputChatPhotoPrevious(); + + explicit inputChatPhotoPrevious(int64 chat_photo_id_); + + static const std::int32_t ID = 23128529; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputChatPhotoStatic final : public InputChatPhoto { + public: + object_ptr<InputFile> photo_; + + inputChatPhotoStatic(); + + explicit inputChatPhotoStatic(object_ptr<InputFile> &&photo_); + + static const std::int32_t ID = 1979179699; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputChatPhotoAnimation final : public InputChatPhoto { + public: + object_ptr<InputFile> animation_; + double main_frame_timestamp_; + + inputChatPhotoAnimation(); + + inputChatPhotoAnimation(object_ptr<InputFile> &&animation_, double main_frame_timestamp_); + + static const std::int32_t ID = 90846242; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputCredentials: public Object { + public: +}; + +class inputCredentialsSaved final : public InputCredentials { + public: + string saved_credentials_id_; + + inputCredentialsSaved(); + + explicit inputCredentialsSaved(string const &saved_credentials_id_); + + static const std::int32_t ID = -2034385364; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputCredentialsNew final : public InputCredentials { + public: + string data_; + bool allow_save_; + + inputCredentialsNew(); + + inputCredentialsNew(string const &data_, bool allow_save_); + + static const std::int32_t ID = -829689558; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputCredentialsApplePay final : public InputCredentials { + public: + string data_; + + inputCredentialsApplePay(); + + explicit inputCredentialsApplePay(string const &data_); + + static const std::int32_t ID = -1246570799; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputCredentialsGooglePay final : public InputCredentials { + public: + string data_; + + inputCredentialsGooglePay(); + + explicit inputCredentialsGooglePay(string const &data_); + + static const std::int32_t ID = 844384100; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputFile: public Object { + public: +}; + +class inputFileId final : public InputFile { + public: + int32 id_; + + inputFileId(); + + explicit inputFileId(int32 id_); + + static const std::int32_t ID = 1788906253; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputFileRemote final : public InputFile { + public: + string id_; + + inputFileRemote(); + + explicit inputFileRemote(string const &id_); + + static const std::int32_t ID = -107574466; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputFileLocal final : public InputFile { + public: + string path_; + + inputFileLocal(); + + explicit inputFileLocal(string const &path_); + + static const std::int32_t ID = 2056030919; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputFileGenerated final : public InputFile { + public: + string original_path_; + string conversion_; + int53 expected_size_; + + inputFileGenerated(); + + inputFileGenerated(string const &original_path_, string const &conversion_, int53 expected_size_); + + static const std::int32_t ID = -1333385216; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputIdentityDocument final : public Object { + public: + string number_; + object_ptr<date> expiry_date_; + object_ptr<InputFile> front_side_; + object_ptr<InputFile> reverse_side_; + object_ptr<InputFile> selfie_; + array<object_ptr<InputFile>> translation_; + + inputIdentityDocument(); + + inputIdentityDocument(string const &number_, object_ptr<date> &&expiry_date_, object_ptr<InputFile> &&front_side_, object_ptr<InputFile> &&reverse_side_, object_ptr<InputFile> &&selfie_, array<object_ptr<InputFile>> &&translation_); + + static const std::int32_t ID = -381776063; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputInlineQueryResult: public Object { + public: +}; + +class inputInlineQueryResultAnimation final : public InputInlineQueryResult { + public: + string id_; + string title_; + string thumbnail_url_; + string thumbnail_mime_type_; + string video_url_; + string video_mime_type_; + int32 video_duration_; + int32 video_width_; + int32 video_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultAnimation(); + + inputInlineQueryResultAnimation(string const &id_, string const &title_, string const &thumbnail_url_, string const &thumbnail_mime_type_, string const &video_url_, string const &video_mime_type_, int32 video_duration_, int32 video_width_, int32 video_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = -1489808874; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultArticle final : public InputInlineQueryResult { + public: + string id_; + string url_; + bool hide_url_; + string title_; + string description_; + string thumbnail_url_; + int32 thumbnail_width_; + int32 thumbnail_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultArticle(); + + inputInlineQueryResultArticle(string const &id_, string const &url_, bool hide_url_, string const &title_, string const &description_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 1973670156; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultAudio final : public InputInlineQueryResult { + public: + string id_; + string title_; + string performer_; + string audio_url_; + int32 audio_duration_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultAudio(); + + inputInlineQueryResultAudio(string const &id_, string const &title_, string const &performer_, string const &audio_url_, int32 audio_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 1260139988; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultContact final : public InputInlineQueryResult { + public: + string id_; + object_ptr<contact> contact_; + string thumbnail_url_; + int32 thumbnail_width_; + int32 thumbnail_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultContact(); + + inputInlineQueryResultContact(string const &id_, object_ptr<contact> &&contact_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 1846064594; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultDocument final : public InputInlineQueryResult { + public: + string id_; + string title_; + string description_; + string document_url_; + string mime_type_; + string thumbnail_url_; + int32 thumbnail_width_; + int32 thumbnail_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultDocument(); + + inputInlineQueryResultDocument(string const &id_, string const &title_, string const &description_, string const &document_url_, string const &mime_type_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 578801869; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultGame final : public InputInlineQueryResult { + public: + string id_; + string game_short_name_; + object_ptr<ReplyMarkup> reply_markup_; + + inputInlineQueryResultGame(); + + inputInlineQueryResultGame(string const &id_, string const &game_short_name_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = 966074327; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultLocation final : public InputInlineQueryResult { + public: + string id_; + object_ptr<location> location_; + int32 live_period_; + string title_; + string thumbnail_url_; + int32 thumbnail_width_; + int32 thumbnail_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultLocation(); + + inputInlineQueryResultLocation(string const &id_, object_ptr<location> &&location_, int32 live_period_, string const &title_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = -1887650218; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultPhoto final : public InputInlineQueryResult { + public: + string id_; + string title_; + string description_; + string thumbnail_url_; + string photo_url_; + int32 photo_width_; + int32 photo_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultPhoto(); + + inputInlineQueryResultPhoto(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &photo_url_, int32 photo_width_, int32 photo_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = -1123338721; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultSticker final : public InputInlineQueryResult { + public: + string id_; + string thumbnail_url_; + string sticker_url_; + int32 sticker_width_; + int32 sticker_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultSticker(); + + inputInlineQueryResultSticker(string const &id_, string const &thumbnail_url_, string const &sticker_url_, int32 sticker_width_, int32 sticker_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 274007129; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultVenue final : public InputInlineQueryResult { + public: + string id_; + object_ptr<venue> venue_; + string thumbnail_url_; + int32 thumbnail_width_; + int32 thumbnail_height_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultVenue(); + + inputInlineQueryResultVenue(string const &id_, object_ptr<venue> &&venue_, string const &thumbnail_url_, int32 thumbnail_width_, int32 thumbnail_height_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 541704509; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultVideo final : public InputInlineQueryResult { + public: + string id_; + string title_; + string description_; + string thumbnail_url_; + string video_url_; + string mime_type_; + int32 video_width_; + int32 video_height_; + int32 video_duration_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultVideo(); + + inputInlineQueryResultVideo(string const &id_, string const &title_, string const &description_, string const &thumbnail_url_, string const &video_url_, string const &mime_type_, int32 video_width_, int32 video_height_, int32 video_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 1724073191; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInlineQueryResultVoiceNote final : public InputInlineQueryResult { + public: + string id_; + string title_; + string voice_note_url_; + int32 voice_note_duration_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + inputInlineQueryResultVoiceNote(); + + inputInlineQueryResultVoiceNote(string const &id_, string const &title_, string const &voice_note_url_, int32 voice_note_duration_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = -1790072503; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputInvoice: public Object { + public: +}; + +class inputInvoiceMessage final : public InputInvoice { + public: + int53 chat_id_; + int53 message_id_; + + inputInvoiceMessage(); + + inputInvoiceMessage(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 1490872848; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInvoiceName final : public InputInvoice { + public: + string name_; + + inputInvoiceName(); + + explicit inputInvoiceName(string const &name_); + + static const std::int32_t ID = -1312155917; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputMessageContent: public Object { + public: +}; + +class inputMessageText final : public InputMessageContent { + public: + object_ptr<formattedText> text_; + bool disable_web_page_preview_; + bool clear_draft_; + + inputMessageText(); + + inputMessageText(object_ptr<formattedText> &&text_, bool disable_web_page_preview_, bool clear_draft_); + + static const std::int32_t ID = 247050392; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageAnimation final : public InputMessageContent { + public: + object_ptr<InputFile> animation_; + object_ptr<inputThumbnail> thumbnail_; + array<int32> added_sticker_file_ids_; + int32 duration_; + int32 width_; + int32 height_; + object_ptr<formattedText> caption_; + + inputMessageAnimation(); + + inputMessageAnimation(object_ptr<InputFile> &&animation_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 1208433535; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageAudio final : public InputMessageContent { + public: + object_ptr<InputFile> audio_; + object_ptr<inputThumbnail> album_cover_thumbnail_; + int32 duration_; + string title_; + string performer_; + object_ptr<formattedText> caption_; + + inputMessageAudio(); + + inputMessageAudio(object_ptr<InputFile> &&audio_, object_ptr<inputThumbnail> &&album_cover_thumbnail_, int32 duration_, string const &title_, string const &performer_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = -626786126; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageDocument final : public InputMessageContent { + public: + object_ptr<InputFile> document_; + object_ptr<inputThumbnail> thumbnail_; + bool disable_content_type_detection_; + object_ptr<formattedText> caption_; + + inputMessageDocument(); + + inputMessageDocument(object_ptr<InputFile> &&document_, object_ptr<inputThumbnail> &&thumbnail_, bool disable_content_type_detection_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 1633383097; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagePhoto final : public InputMessageContent { + public: + object_ptr<InputFile> photo_; + object_ptr<inputThumbnail> thumbnail_; + array<int32> added_sticker_file_ids_; + int32 width_; + int32 height_; + object_ptr<formattedText> caption_; + int32 ttl_; + + inputMessagePhoto(); + + inputMessagePhoto(object_ptr<InputFile> &&photo_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 width_, int32 height_, object_ptr<formattedText> &&caption_, int32 ttl_); + + static const std::int32_t ID = 1648801584; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageSticker final : public InputMessageContent { + public: + object_ptr<InputFile> sticker_; + object_ptr<inputThumbnail> thumbnail_; + int32 width_; + int32 height_; + string emoji_; + + inputMessageSticker(); + + inputMessageSticker(object_ptr<InputFile> &&sticker_, object_ptr<inputThumbnail> &&thumbnail_, int32 width_, int32 height_, string const &emoji_); + + static const std::int32_t ID = 1072805625; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageVideo final : public InputMessageContent { + public: + object_ptr<InputFile> video_; + object_ptr<inputThumbnail> thumbnail_; + array<int32> added_sticker_file_ids_; + int32 duration_; + int32 width_; + int32 height_; + bool supports_streaming_; + object_ptr<formattedText> caption_; + int32 ttl_; + + inputMessageVideo(); + + inputMessageVideo(object_ptr<InputFile> &&video_, object_ptr<inputThumbnail> &&thumbnail_, array<int32> &&added_sticker_file_ids_, int32 duration_, int32 width_, int32 height_, bool supports_streaming_, object_ptr<formattedText> &&caption_, int32 ttl_); + + static const std::int32_t ID = -2108486755; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageVideoNote final : public InputMessageContent { + public: + object_ptr<InputFile> video_note_; + object_ptr<inputThumbnail> thumbnail_; + int32 duration_; + int32 length_; + + inputMessageVideoNote(); + + inputMessageVideoNote(object_ptr<InputFile> &&video_note_, object_ptr<inputThumbnail> &&thumbnail_, int32 duration_, int32 length_); + + static const std::int32_t ID = 279108859; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageVoiceNote final : public InputMessageContent { + public: + object_ptr<InputFile> voice_note_; + int32 duration_; + bytes waveform_; + object_ptr<formattedText> caption_; + + inputMessageVoiceNote(); + + inputMessageVoiceNote(object_ptr<InputFile> &&voice_note_, int32 duration_, bytes const &waveform_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 2136519657; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageLocation final : public InputMessageContent { + public: + object_ptr<location> location_; + int32 live_period_; + int32 heading_; + int32 proximity_alert_radius_; + + inputMessageLocation(); + + inputMessageLocation(object_ptr<location> &&location_, int32 live_period_, int32 heading_, int32 proximity_alert_radius_); + + static const std::int32_t ID = 648735088; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageVenue final : public InputMessageContent { + public: + object_ptr<venue> venue_; + + inputMessageVenue(); + + explicit inputMessageVenue(object_ptr<venue> &&venue_); + + static const std::int32_t ID = 1447926269; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageContact final : public InputMessageContent { + public: + object_ptr<contact> contact_; + + inputMessageContact(); + + explicit inputMessageContact(object_ptr<contact> &&contact_); + + static const std::int32_t ID = -982446849; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageDice final : public InputMessageContent { + public: + string emoji_; + bool clear_draft_; + + inputMessageDice(); + + inputMessageDice(string const &emoji_, bool clear_draft_); + + static const std::int32_t ID = 841574313; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageGame final : public InputMessageContent { + public: + int53 bot_user_id_; + string game_short_name_; + + inputMessageGame(); + + inputMessageGame(int53 bot_user_id_, string const &game_short_name_); + + static const std::int32_t ID = 1252944610; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageInvoice final : public InputMessageContent { + public: + object_ptr<invoice> invoice_; + string title_; + string description_; + string photo_url_; + int32 photo_size_; + int32 photo_width_; + int32 photo_height_; + bytes payload_; + string provider_token_; + string provider_data_; + string start_parameter_; + object_ptr<InputMessageContent> extended_media_content_; + + inputMessageInvoice(); + + inputMessageInvoice(object_ptr<invoice> &&invoice_, string const &title_, string const &description_, string const &photo_url_, int32 photo_size_, int32 photo_width_, int32 photo_height_, bytes const &payload_, string const &provider_token_, string const &provider_data_, string const &start_parameter_, object_ptr<InputMessageContent> &&extended_media_content_); + + static const std::int32_t ID = 885857632; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagePoll final : public InputMessageContent { + public: + string question_; + array<string> options_; + bool is_anonymous_; + object_ptr<PollType> type_; + int32 open_period_; + int32 close_date_; + bool is_closed_; + + inputMessagePoll(); + + inputMessagePoll(string const &question_, array<string> &&options_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_); + + static const std::int32_t ID = 2054629900; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageForwarded final : public InputMessageContent { + public: + int53 from_chat_id_; + int53 message_id_; + bool in_game_share_; + object_ptr<messageCopyOptions> copy_options_; + + inputMessageForwarded(); + + inputMessageForwarded(int53 from_chat_id_, int53 message_id_, bool in_game_share_, object_ptr<messageCopyOptions> &©_options_); + + static const std::int32_t ID = 1696232440; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputPassportElement: public Object { + public: +}; + +class inputPassportElementPersonalDetails final : public InputPassportElement { + public: + object_ptr<personalDetails> personal_details_; + + inputPassportElementPersonalDetails(); + + explicit inputPassportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_); + + static const std::int32_t ID = 164791359; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementPassport final : public InputPassportElement { + public: + object_ptr<inputIdentityDocument> passport_; + + inputPassportElementPassport(); + + explicit inputPassportElementPassport(object_ptr<inputIdentityDocument> &&passport_); + + static const std::int32_t ID = -497011356; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementDriverLicense final : public InputPassportElement { + public: + object_ptr<inputIdentityDocument> driver_license_; + + inputPassportElementDriverLicense(); + + explicit inputPassportElementDriverLicense(object_ptr<inputIdentityDocument> &&driver_license_); + + static const std::int32_t ID = 304813264; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementIdentityCard final : public InputPassportElement { + public: + object_ptr<inputIdentityDocument> identity_card_; + + inputPassportElementIdentityCard(); + + explicit inputPassportElementIdentityCard(object_ptr<inputIdentityDocument> &&identity_card_); + + static const std::int32_t ID = -9963390; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementInternalPassport final : public InputPassportElement { + public: + object_ptr<inputIdentityDocument> internal_passport_; + + inputPassportElementInternalPassport(); + + explicit inputPassportElementInternalPassport(object_ptr<inputIdentityDocument> &&internal_passport_); + + static const std::int32_t ID = 715360043; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementAddress final : public InputPassportElement { + public: + object_ptr<address> address_; + + inputPassportElementAddress(); + + explicit inputPassportElementAddress(object_ptr<address> &&address_); + + static const std::int32_t ID = 461630480; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementUtilityBill final : public InputPassportElement { + public: + object_ptr<inputPersonalDocument> utility_bill_; + + inputPassportElementUtilityBill(); + + explicit inputPassportElementUtilityBill(object_ptr<inputPersonalDocument> &&utility_bill_); + + static const std::int32_t ID = 1389203841; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementBankStatement final : public InputPassportElement { + public: + object_ptr<inputPersonalDocument> bank_statement_; + + inputPassportElementBankStatement(); + + explicit inputPassportElementBankStatement(object_ptr<inputPersonalDocument> &&bank_statement_); + + static const std::int32_t ID = -26585208; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementRentalAgreement final : public InputPassportElement { + public: + object_ptr<inputPersonalDocument> rental_agreement_; + + inputPassportElementRentalAgreement(); + + explicit inputPassportElementRentalAgreement(object_ptr<inputPersonalDocument> &&rental_agreement_); + + static const std::int32_t ID = 1736154155; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementPassportRegistration final : public InputPassportElement { + public: + object_ptr<inputPersonalDocument> passport_registration_; + + inputPassportElementPassportRegistration(); + + explicit inputPassportElementPassportRegistration(object_ptr<inputPersonalDocument> &&passport_registration_); + + static const std::int32_t ID = 1314562128; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementTemporaryRegistration final : public InputPassportElement { + public: + object_ptr<inputPersonalDocument> temporary_registration_; + + inputPassportElementTemporaryRegistration(); + + explicit inputPassportElementTemporaryRegistration(object_ptr<inputPersonalDocument> &&temporary_registration_); + + static const std::int32_t ID = -1913238047; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementPhoneNumber final : public InputPassportElement { + public: + string phone_number_; + + inputPassportElementPhoneNumber(); + + explicit inputPassportElementPhoneNumber(string const &phone_number_); + + static const std::int32_t ID = 1319357497; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementEmailAddress final : public InputPassportElement { + public: + string email_address_; + + inputPassportElementEmailAddress(); + + explicit inputPassportElementEmailAddress(string const &email_address_); + + static const std::int32_t ID = -248605659; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementError final : public Object { + public: + object_ptr<PassportElementType> type_; + string message_; + object_ptr<InputPassportElementErrorSource> source_; + + inputPassportElementError(); + + inputPassportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<InputPassportElementErrorSource> &&source_); + + static const std::int32_t ID = 285756898; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputPassportElementErrorSource: public Object { + public: +}; + +class inputPassportElementErrorSourceUnspecified final : public InputPassportElementErrorSource { + public: + bytes element_hash_; + + inputPassportElementErrorSourceUnspecified(); + + explicit inputPassportElementErrorSourceUnspecified(bytes const &element_hash_); + + static const std::int32_t ID = 267230319; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceDataField final : public InputPassportElementErrorSource { + public: + string field_name_; + bytes data_hash_; + + inputPassportElementErrorSourceDataField(); + + inputPassportElementErrorSourceDataField(string const &field_name_, bytes const &data_hash_); + + static const std::int32_t ID = -426795002; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceFrontSide final : public InputPassportElementErrorSource { + public: + bytes file_hash_; + + inputPassportElementErrorSourceFrontSide(); + + explicit inputPassportElementErrorSourceFrontSide(bytes const &file_hash_); + + static const std::int32_t ID = 588023741; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceReverseSide final : public InputPassportElementErrorSource { + public: + bytes file_hash_; + + inputPassportElementErrorSourceReverseSide(); + + explicit inputPassportElementErrorSourceReverseSide(bytes const &file_hash_); + + static const std::int32_t ID = 413072891; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceSelfie final : public InputPassportElementErrorSource { + public: + bytes file_hash_; + + inputPassportElementErrorSourceSelfie(); + + explicit inputPassportElementErrorSourceSelfie(bytes const &file_hash_); + + static const std::int32_t ID = -773575528; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceTranslationFile final : public InputPassportElementErrorSource { + public: + bytes file_hash_; + + inputPassportElementErrorSourceTranslationFile(); + + explicit inputPassportElementErrorSourceTranslationFile(bytes const &file_hash_); + + static const std::int32_t ID = 505842299; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceTranslationFiles final : public InputPassportElementErrorSource { + public: + array<bytes> file_hashes_; + + inputPassportElementErrorSourceTranslationFiles(); + + explicit inputPassportElementErrorSourceTranslationFiles(array<bytes> &&file_hashes_); + + static const std::int32_t ID = -527254048; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceFile final : public InputPassportElementErrorSource { + public: + bytes file_hash_; + + inputPassportElementErrorSourceFile(); + + explicit inputPassportElementErrorSourceFile(bytes const &file_hash_); + + static const std::int32_t ID = -298492469; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPassportElementErrorSourceFiles final : public InputPassportElementErrorSource { + public: + array<bytes> file_hashes_; + + inputPassportElementErrorSourceFiles(); + + explicit inputPassportElementErrorSourceFiles(array<bytes> &&file_hashes_); + + static const std::int32_t ID = -2008541640; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPersonalDocument final : public Object { + public: + array<object_ptr<InputFile>> files_; + array<object_ptr<InputFile>> translation_; + + inputPersonalDocument(); + + inputPersonalDocument(array<object_ptr<InputFile>> &&files_, array<object_ptr<InputFile>> &&translation_); + + static const std::int32_t ID = 1676966826; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputSticker final : public Object { + public: + object_ptr<InputFile> sticker_; + string emojis_; + object_ptr<StickerFormat> format_; + object_ptr<maskPosition> mask_position_; + + inputSticker(); + + inputSticker(object_ptr<InputFile> &&sticker_, string const &emojis_, object_ptr<StickerFormat> &&format_, object_ptr<maskPosition> &&mask_position_); + + static const std::int32_t ID = -1692915280; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputThumbnail final : public Object { + public: + object_ptr<InputFile> thumbnail_; + int32 width_; + int32 height_; + + inputThumbnail(); + + inputThumbnail(object_ptr<InputFile> &&thumbnail_, int32 width_, int32 height_); + + static const std::int32_t ID = 1582387236; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InternalLinkType: public Object { + public: +}; + +class internalLinkTypeActiveSessions final : public InternalLinkType { + public: + + internalLinkTypeActiveSessions(); + + static const std::int32_t ID = 1886108589; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeAttachmentMenuBot final : public InternalLinkType { + public: + object_ptr<TargetChat> target_chat_; + string bot_username_; + string url_; + + internalLinkTypeAttachmentMenuBot(); + + internalLinkTypeAttachmentMenuBot(object_ptr<TargetChat> &&target_chat_, string const &bot_username_, string const &url_); + + static const std::int32_t ID = 1682719269; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeAuthenticationCode final : public InternalLinkType { + public: + string code_; + + internalLinkTypeAuthenticationCode(); + + explicit internalLinkTypeAuthenticationCode(string const &code_); + + static const std::int32_t ID = -209235982; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeBackground final : public InternalLinkType { + public: + string background_name_; + + internalLinkTypeBackground(); + + explicit internalLinkTypeBackground(string const &background_name_); + + static const std::int32_t ID = 185411848; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeBotStart final : public InternalLinkType { + public: + string bot_username_; + string start_parameter_; + bool autostart_; + + internalLinkTypeBotStart(); + + internalLinkTypeBotStart(string const &bot_username_, string const &start_parameter_, bool autostart_); + + static const std::int32_t ID = 1066950637; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeBotStartInGroup final : public InternalLinkType { + public: + string bot_username_; + string start_parameter_; + object_ptr<chatAdministratorRights> administrator_rights_; + + internalLinkTypeBotStartInGroup(); + + internalLinkTypeBotStartInGroup(string const &bot_username_, string const &start_parameter_, object_ptr<chatAdministratorRights> &&administrator_rights_); + + static const std::int32_t ID = -905081650; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeBotAddToChannel final : public InternalLinkType { + public: + string bot_username_; + object_ptr<chatAdministratorRights> administrator_rights_; + + internalLinkTypeBotAddToChannel(); + + internalLinkTypeBotAddToChannel(string const &bot_username_, object_ptr<chatAdministratorRights> &&administrator_rights_); + + static const std::int32_t ID = 1401602752; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeChangePhoneNumber final : public InternalLinkType { + public: + + internalLinkTypeChangePhoneNumber(); + + static const std::int32_t ID = -265856255; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeChatInvite final : public InternalLinkType { + public: + string invite_link_; + + internalLinkTypeChatInvite(); + + explicit internalLinkTypeChatInvite(string const &invite_link_); + + static const std::int32_t ID = 428621017; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeFilterSettings final : public InternalLinkType { + public: + + internalLinkTypeFilterSettings(); + + static const std::int32_t ID = 1501632411; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeGame final : public InternalLinkType { + public: + string bot_username_; + string game_short_name_; + + internalLinkTypeGame(); + + internalLinkTypeGame(string const &bot_username_, string const &game_short_name_); + + static const std::int32_t ID = -260788787; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeInstantView final : public InternalLinkType { + public: + string url_; + string fallback_url_; + + internalLinkTypeInstantView(); + + internalLinkTypeInstantView(string const &url_, string const &fallback_url_); + + static const std::int32_t ID = 1776607039; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeInvoice final : public InternalLinkType { + public: + string invoice_name_; + + internalLinkTypeInvoice(); + + explicit internalLinkTypeInvoice(string const &invoice_name_); + + static const std::int32_t ID = -213094996; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeLanguagePack final : public InternalLinkType { + public: + string language_pack_id_; + + internalLinkTypeLanguagePack(); + + explicit internalLinkTypeLanguagePack(string const &language_pack_id_); + + static const std::int32_t ID = -1450766996; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeLanguageSettings final : public InternalLinkType { + public: + + internalLinkTypeLanguageSettings(); + + static const std::int32_t ID = -1340479770; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeMessage final : public InternalLinkType { + public: + string url_; + + internalLinkTypeMessage(); + + explicit internalLinkTypeMessage(string const &url_); + + static const std::int32_t ID = 978541650; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeMessageDraft final : public InternalLinkType { + public: + object_ptr<formattedText> text_; + bool contains_link_; + + internalLinkTypeMessageDraft(); + + internalLinkTypeMessageDraft(object_ptr<formattedText> &&text_, bool contains_link_); + + static const std::int32_t ID = 661633749; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypePassportDataRequest final : public InternalLinkType { + public: + int53 bot_user_id_; + string scope_; + string public_key_; + string nonce_; + string callback_url_; + + internalLinkTypePassportDataRequest(); + + internalLinkTypePassportDataRequest(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_, string const &callback_url_); + + static const std::int32_t ID = -988819839; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypePhoneNumberConfirmation final : public InternalLinkType { + public: + string hash_; + string phone_number_; + + internalLinkTypePhoneNumberConfirmation(); + + internalLinkTypePhoneNumberConfirmation(string const &hash_, string const &phone_number_); + + static const std::int32_t ID = 1757375254; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypePremiumFeatures final : public InternalLinkType { + public: + string referrer_; + + internalLinkTypePremiumFeatures(); + + explicit internalLinkTypePremiumFeatures(string const &referrer_); + + static const std::int32_t ID = 1216892745; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypePrivacyAndSecuritySettings final : public InternalLinkType { + public: + + internalLinkTypePrivacyAndSecuritySettings(); + + static const std::int32_t ID = -1386255665; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeProxy final : public InternalLinkType { + public: + string server_; + int32 port_; + object_ptr<ProxyType> type_; + + internalLinkTypeProxy(); + + internalLinkTypeProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_); + + static const std::int32_t ID = -1313788694; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypePublicChat final : public InternalLinkType { + public: + string chat_username_; + + internalLinkTypePublicChat(); + + explicit internalLinkTypePublicChat(string const &chat_username_); + + static const std::int32_t ID = -1485547717; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeQrCodeAuthentication final : public InternalLinkType { + public: + + internalLinkTypeQrCodeAuthentication(); + + static const std::int32_t ID = -1089332956; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeRestorePurchases final : public InternalLinkType { + public: + + internalLinkTypeRestorePurchases(); + + static const std::int32_t ID = 606090371; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeSettings final : public InternalLinkType { + public: + + internalLinkTypeSettings(); + + static const std::int32_t ID = 393561524; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeStickerSet final : public InternalLinkType { + public: + string sticker_set_name_; + + internalLinkTypeStickerSet(); + + explicit internalLinkTypeStickerSet(string const &sticker_set_name_); + + static const std::int32_t ID = -529639751; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeTheme final : public InternalLinkType { + public: + string theme_name_; + + internalLinkTypeTheme(); + + explicit internalLinkTypeTheme(string const &theme_name_); + + static const std::int32_t ID = -200935417; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeThemeSettings final : public InternalLinkType { + public: + + internalLinkTypeThemeSettings(); + + static const std::int32_t ID = -1051903722; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeUnknownDeepLink final : public InternalLinkType { + public: + string link_; + + internalLinkTypeUnknownDeepLink(); + + explicit internalLinkTypeUnknownDeepLink(string const &link_); + + static const std::int32_t ID = 625596379; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeUnsupportedProxy final : public InternalLinkType { + public: + + internalLinkTypeUnsupportedProxy(); + + static const std::int32_t ID = -566649079; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeUserPhoneNumber final : public InternalLinkType { + public: + string phone_number_; + + internalLinkTypeUserPhoneNumber(); + + explicit internalLinkTypeUserPhoneNumber(string const &phone_number_); + + static const std::int32_t ID = -1955751319; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class internalLinkTypeVideoChat final : public InternalLinkType { + public: + string chat_username_; + string invite_hash_; + bool is_live_stream_; + + internalLinkTypeVideoChat(); + + internalLinkTypeVideoChat(string const &chat_username_, string const &invite_hash_, bool is_live_stream_); + + static const std::int32_t ID = -2020149068; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class invoice final : public Object { + public: + string currency_; + array<object_ptr<labeledPricePart>> price_parts_; + int53 max_tip_amount_; + array<int53> suggested_tip_amounts_; + string recurring_payment_terms_of_service_url_; + bool is_test_; + bool need_name_; + bool need_phone_number_; + bool need_email_address_; + bool need_shipping_address_; + bool send_phone_number_to_provider_; + bool send_email_address_to_provider_; + bool is_flexible_; + + invoice(); + + invoice(string const ¤cy_, array<object_ptr<labeledPricePart>> &&price_parts_, int53 max_tip_amount_, array<int53> &&suggested_tip_amounts_, string const &recurring_payment_terms_of_service_url_, bool is_test_, bool need_name_, bool need_phone_number_, bool need_email_address_, bool need_shipping_address_, bool send_phone_number_to_provider_, bool send_email_address_to_provider_, bool is_flexible_); + + static const std::int32_t ID = 1977205639; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonObjectMember final : public Object { + public: + string key_; + object_ptr<JsonValue> value_; + + jsonObjectMember(); + + jsonObjectMember(string const &key_, object_ptr<JsonValue> &&value_); + + static const std::int32_t ID = -1803309418; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class JsonValue: public Object { + public: +}; + +class jsonValueNull final : public JsonValue { + public: + + jsonValueNull(); + + static const std::int32_t ID = -92872499; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonValueBoolean final : public JsonValue { + public: + bool value_; + + jsonValueBoolean(); + + explicit jsonValueBoolean(bool value_); + + static const std::int32_t ID = -2142186576; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonValueNumber final : public JsonValue { + public: + double value_; + + jsonValueNumber(); + + explicit jsonValueNumber(double value_); + + static const std::int32_t ID = -1010822033; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonValueString final : public JsonValue { + public: + string value_; + + jsonValueString(); + + explicit jsonValueString(string const &value_); + + static const std::int32_t ID = 1597947313; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonValueArray final : public JsonValue { + public: + array<object_ptr<JsonValue>> values_; + + jsonValueArray(); + + explicit jsonValueArray(array<object_ptr<JsonValue>> &&values_); + + static const std::int32_t ID = -183913546; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonValueObject final : public JsonValue { + public: + array<object_ptr<jsonObjectMember>> members_; + + jsonValueObject(); + + explicit jsonValueObject(array<object_ptr<jsonObjectMember>> &&members_); + + static const std::int32_t ID = 520252026; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButton final : public Object { + public: + string text_; + object_ptr<KeyboardButtonType> type_; + + keyboardButton(); + + keyboardButton(string const &text_, object_ptr<KeyboardButtonType> &&type_); + + static const std::int32_t ID = -2069836172; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class KeyboardButtonType: public Object { + public: +}; + +class keyboardButtonTypeText final : public KeyboardButtonType { + public: + + keyboardButtonTypeText(); + + static const std::int32_t ID = -1773037256; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonTypeRequestPhoneNumber final : public KeyboardButtonType { + public: + + keyboardButtonTypeRequestPhoneNumber(); + + static const std::int32_t ID = -1529235527; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonTypeRequestLocation final : public KeyboardButtonType { + public: + + keyboardButtonTypeRequestLocation(); + + static const std::int32_t ID = -125661955; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonTypeRequestPoll final : public KeyboardButtonType { + public: + bool force_regular_; + bool force_quiz_; + + keyboardButtonTypeRequestPoll(); + + keyboardButtonTypeRequestPoll(bool force_regular_, bool force_quiz_); + + static const std::int32_t ID = 1902435512; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonTypeWebApp final : public KeyboardButtonType { + public: + string url_; + + keyboardButtonTypeWebApp(); + + explicit keyboardButtonTypeWebApp(string const &url_); + + static const std::int32_t ID = 1892220770; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class labeledPricePart final : public Object { + public: + string label_; + int53 amount_; + + labeledPricePart(); + + labeledPricePart(string const &label_, int53 amount_); + + static const std::int32_t ID = 552789798; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class languagePackInfo final : public Object { + public: + string id_; + string base_language_pack_id_; + string name_; + string native_name_; + string plural_code_; + bool is_official_; + bool is_rtl_; + bool is_beta_; + bool is_installed_; + int32 total_string_count_; + int32 translated_string_count_; + int32 local_string_count_; + string translation_url_; + + languagePackInfo(); + + languagePackInfo(string const &id_, string const &base_language_pack_id_, string const &name_, string const &native_name_, string const &plural_code_, bool is_official_, bool is_rtl_, bool is_beta_, bool is_installed_, int32 total_string_count_, int32 translated_string_count_, int32 local_string_count_, string const &translation_url_); + + static const std::int32_t ID = 542199642; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class languagePackString final : public Object { + public: + string key_; + object_ptr<LanguagePackStringValue> value_; + + languagePackString(); + + languagePackString(string const &key_, object_ptr<LanguagePackStringValue> &&value_); + + static const std::int32_t ID = 1307632736; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class LanguagePackStringValue: public Object { + public: +}; + +class languagePackStringValueOrdinary final : public LanguagePackStringValue { + public: + string value_; + + languagePackStringValueOrdinary(); + + explicit languagePackStringValueOrdinary(string const &value_); + + static const std::int32_t ID = -249256352; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class languagePackStringValuePluralized final : public LanguagePackStringValue { + public: + string zero_value_; + string one_value_; + string two_value_; + string few_value_; + string many_value_; + string other_value_; + + languagePackStringValuePluralized(); + + languagePackStringValuePluralized(string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_); + + static const std::int32_t ID = 1906840261; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class languagePackStringValueDeleted final : public LanguagePackStringValue { + public: + + languagePackStringValueDeleted(); + + static const std::int32_t ID = 1834792698; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class languagePackStrings final : public Object { + public: + array<object_ptr<languagePackString>> strings_; + + languagePackStrings(); + + explicit languagePackStrings(array<object_ptr<languagePackString>> &&strings_); + + static const std::int32_t ID = 1172082922; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class localFile final : public Object { + public: + string path_; + bool can_be_downloaded_; + bool can_be_deleted_; + bool is_downloading_active_; + bool is_downloading_completed_; + int53 download_offset_; + int53 downloaded_prefix_size_; + int53 downloaded_size_; + + localFile(); + + localFile(string const &path_, bool can_be_downloaded_, bool can_be_deleted_, bool is_downloading_active_, bool is_downloading_completed_, int53 download_offset_, int53 downloaded_prefix_size_, int53 downloaded_size_); + + static const std::int32_t ID = -1562732153; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class localizationTargetInfo final : public Object { + public: + array<object_ptr<languagePackInfo>> language_packs_; + + localizationTargetInfo(); + + explicit localizationTargetInfo(array<object_ptr<languagePackInfo>> &&language_packs_); + + static const std::int32_t ID = -2048670809; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class location final : public Object { + public: + double latitude_; + double longitude_; + double horizontal_accuracy_; + + location(); + + location(double latitude_, double longitude_, double horizontal_accuracy_); + + static const std::int32_t ID = -443392141; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class LogStream: public Object { + public: +}; + +class logStreamDefault final : public LogStream { + public: + + logStreamDefault(); + + static const std::int32_t ID = 1390581436; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class logStreamFile final : public LogStream { + public: + string path_; + int53 max_file_size_; + bool redirect_stderr_; + + logStreamFile(); + + logStreamFile(string const &path_, int53 max_file_size_, bool redirect_stderr_); + + static const std::int32_t ID = 1532136933; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class logStreamEmpty final : public LogStream { + public: + + logStreamEmpty(); + + static const std::int32_t ID = -499912244; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class logTags final : public Object { + public: + array<string> tags_; + + logTags(); + + explicit logTags(array<string> &&tags_); + + static const std::int32_t ID = -1604930601; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class logVerbosityLevel final : public Object { + public: + int32 verbosity_level_; + + logVerbosityLevel(); + + explicit logVerbosityLevel(int32 verbosity_level_); + + static const std::int32_t ID = 1734624234; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class LoginUrlInfo: public Object { + public: +}; + +class loginUrlInfoOpen final : public LoginUrlInfo { + public: + string url_; + bool skip_confirm_; + + loginUrlInfoOpen(); + + loginUrlInfoOpen(string const &url_, bool skip_confirm_); + + static const std::int32_t ID = -1079045420; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class loginUrlInfoRequestConfirmation final : public LoginUrlInfo { + public: + string url_; + string domain_; + int53 bot_user_id_; + bool request_write_access_; + + loginUrlInfoRequestConfirmation(); + + loginUrlInfoRequestConfirmation(string const &url_, string const &domain_, int53 bot_user_id_, bool request_write_access_); + + static const std::int32_t ID = 2128290863; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MaskPoint: public Object { + public: +}; + +class maskPointForehead final : public MaskPoint { + public: + + maskPointForehead(); + + static const std::int32_t ID = 1027512005; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class maskPointEyes final : public MaskPoint { + public: + + maskPointEyes(); + + static const std::int32_t ID = 1748310861; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class maskPointMouth final : public MaskPoint { + public: + + maskPointMouth(); + + static const std::int32_t ID = 411773406; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class maskPointChin final : public MaskPoint { + public: + + maskPointChin(); + + static const std::int32_t ID = 534995335; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class maskPosition final : public Object { + public: + object_ptr<MaskPoint> point_; + double x_shift_; + double y_shift_; + double scale_; + + maskPosition(); + + maskPosition(object_ptr<MaskPoint> &&point_, double x_shift_, double y_shift_, double scale_); + + static const std::int32_t ID = -2097433026; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class message final : public Object { + public: + int53 id_; + object_ptr<MessageSender> sender_id_; + int53 chat_id_; + object_ptr<MessageSendingState> sending_state_; + object_ptr<MessageSchedulingState> scheduling_state_; + bool is_outgoing_; + bool is_pinned_; + bool can_be_edited_; + bool can_be_forwarded_; + bool can_be_saved_; + bool can_be_deleted_only_for_self_; + bool can_be_deleted_for_all_users_; + bool can_get_added_reactions_; + bool can_get_statistics_; + bool can_get_message_thread_; + bool can_get_viewers_; + bool can_get_media_timestamp_links_; + bool can_report_reactions_; + bool has_timestamped_media_; + bool is_channel_post_; + bool is_topic_message_; + bool contains_unread_mention_; + int32 date_; + int32 edit_date_; + object_ptr<messageForwardInfo> forward_info_; + object_ptr<messageInteractionInfo> interaction_info_; + array<object_ptr<unreadReaction>> unread_reactions_; + int53 reply_in_chat_id_; + int53 reply_to_message_id_; + int53 message_thread_id_; + int32 ttl_; + double ttl_expires_in_; + int53 via_bot_user_id_; + string author_signature_; + int64 media_album_id_; + string restriction_reason_; + object_ptr<MessageContent> content_; + object_ptr<ReplyMarkup> reply_markup_; + + message(); + + message(int53 id_, object_ptr<MessageSender> &&sender_id_, int53 chat_id_, object_ptr<MessageSendingState> &&sending_state_, object_ptr<MessageSchedulingState> &&scheduling_state_, bool is_outgoing_, bool is_pinned_, bool can_be_edited_, bool can_be_forwarded_, bool can_be_saved_, bool can_be_deleted_only_for_self_, bool can_be_deleted_for_all_users_, bool can_get_added_reactions_, bool can_get_statistics_, bool can_get_message_thread_, bool can_get_viewers_, bool can_get_media_timestamp_links_, bool can_report_reactions_, bool has_timestamped_media_, bool is_channel_post_, bool is_topic_message_, bool contains_unread_mention_, int32 date_, int32 edit_date_, object_ptr<messageForwardInfo> &&forward_info_, object_ptr<messageInteractionInfo> &&interaction_info_, array<object_ptr<unreadReaction>> &&unread_reactions_, int53 reply_in_chat_id_, int53 reply_to_message_id_, int53 message_thread_id_, int32 ttl_, double ttl_expires_in_, int53 via_bot_user_id_, string const &author_signature_, int64 media_album_id_, string const &restriction_reason_, object_ptr<MessageContent> &&content_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = -2008710896; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageCalendar final : public Object { + public: + int32 total_count_; + array<object_ptr<messageCalendarDay>> days_; + + messageCalendar(); + + messageCalendar(int32 total_count_, array<object_ptr<messageCalendarDay>> &&days_); + + static const std::int32_t ID = -1682890519; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageCalendarDay final : public Object { + public: + int32 total_count_; + object_ptr<message> message_; + + messageCalendarDay(); + + messageCalendarDay(int32 total_count_, object_ptr<message> &&message_); + + static const std::int32_t ID = -376467614; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageContent: public Object { + public: +}; + +class messageText final : public MessageContent { + public: + object_ptr<formattedText> text_; + object_ptr<webPage> web_page_; + + messageText(); + + messageText(object_ptr<formattedText> &&text_, object_ptr<webPage> &&web_page_); + + static const std::int32_t ID = 1989037971; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageAnimation final : public MessageContent { + public: + object_ptr<animation> animation_; + object_ptr<formattedText> caption_; + bool is_secret_; + + messageAnimation(); + + messageAnimation(object_ptr<animation> &&animation_, object_ptr<formattedText> &&caption_, bool is_secret_); + + static const std::int32_t ID = 1306939396; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageAudio final : public MessageContent { + public: + object_ptr<audio> audio_; + object_ptr<formattedText> caption_; + + messageAudio(); + + messageAudio(object_ptr<audio> &&audio_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 276722716; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageDocument final : public MessageContent { + public: + object_ptr<document> document_; + object_ptr<formattedText> caption_; + + messageDocument(); + + messageDocument(object_ptr<document> &&document_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 596945783; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePhoto final : public MessageContent { + public: + object_ptr<photo> photo_; + object_ptr<formattedText> caption_; + bool is_secret_; + + messagePhoto(); + + messagePhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_, bool is_secret_); + + static const std::int32_t ID = -1851395174; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageExpiredPhoto final : public MessageContent { + public: + + messageExpiredPhoto(); + + static const std::int32_t ID = -1404641801; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageSticker final : public MessageContent { + public: + object_ptr<sticker> sticker_; + bool is_premium_; + + messageSticker(); + + messageSticker(object_ptr<sticker> &&sticker_, bool is_premium_); + + static const std::int32_t ID = -437199670; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageVideo final : public MessageContent { + public: + object_ptr<video> video_; + object_ptr<formattedText> caption_; + bool is_secret_; + + messageVideo(); + + messageVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_, bool is_secret_); + + static const std::int32_t ID = 2021281344; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageExpiredVideo final : public MessageContent { + public: + + messageExpiredVideo(); + + static const std::int32_t ID = -1212209981; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageVideoNote final : public MessageContent { + public: + object_ptr<videoNote> video_note_; + bool is_viewed_; + bool is_secret_; + + messageVideoNote(); + + messageVideoNote(object_ptr<videoNote> &&video_note_, bool is_viewed_, bool is_secret_); + + static const std::int32_t ID = 963323014; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageVoiceNote final : public MessageContent { + public: + object_ptr<voiceNote> voice_note_; + object_ptr<formattedText> caption_; + bool is_listened_; + + messageVoiceNote(); + + messageVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<formattedText> &&caption_, bool is_listened_); + + static const std::int32_t ID = 527777781; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageLocation final : public MessageContent { + public: + object_ptr<location> location_; + int32 live_period_; + int32 expires_in_; + int32 heading_; + int32 proximity_alert_radius_; + + messageLocation(); + + messageLocation(object_ptr<location> &&location_, int32 live_period_, int32 expires_in_, int32 heading_, int32 proximity_alert_radius_); + + static const std::int32_t ID = 303973492; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageVenue final : public MessageContent { + public: + object_ptr<venue> venue_; + + messageVenue(); + + explicit messageVenue(object_ptr<venue> &&venue_); + + static const std::int32_t ID = -2146492043; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageContact final : public MessageContent { + public: + object_ptr<contact> contact_; + + messageContact(); + + explicit messageContact(object_ptr<contact> &&contact_); + + static const std::int32_t ID = -512684966; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageAnimatedEmoji final : public MessageContent { + public: + object_ptr<animatedEmoji> animated_emoji_; + string emoji_; + + messageAnimatedEmoji(); + + messageAnimatedEmoji(object_ptr<animatedEmoji> &&animated_emoji_, string const &emoji_); + + static const std::int32_t ID = 908195298; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageDice final : public MessageContent { + public: + object_ptr<DiceStickers> initial_state_; + object_ptr<DiceStickers> final_state_; + string emoji_; + int32 value_; + int32 success_animation_frame_number_; + + messageDice(); + + messageDice(object_ptr<DiceStickers> &&initial_state_, object_ptr<DiceStickers> &&final_state_, string const &emoji_, int32 value_, int32 success_animation_frame_number_); + + static const std::int32_t ID = 1115779641; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageGame final : public MessageContent { + public: + object_ptr<game> game_; + + messageGame(); + + explicit messageGame(object_ptr<game> &&game_); + + static const std::int32_t ID = -69441162; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePoll final : public MessageContent { + public: + object_ptr<poll> poll_; + + messagePoll(); + + explicit messagePoll(object_ptr<poll> &&poll_); + + static const std::int32_t ID = -662130099; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageInvoice final : public MessageContent { + public: + string title_; + object_ptr<formattedText> description_; + object_ptr<photo> photo_; + string currency_; + int53 total_amount_; + string start_parameter_; + bool is_test_; + bool need_shipping_address_; + int53 receipt_message_id_; + object_ptr<MessageExtendedMedia> extended_media_; + + messageInvoice(); + + messageInvoice(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const ¤cy_, int53 total_amount_, string const &start_parameter_, bool is_test_, bool need_shipping_address_, int53 receipt_message_id_, object_ptr<MessageExtendedMedia> &&extended_media_); + + static const std::int32_t ID = 818077142; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageCall final : public MessageContent { + public: + bool is_video_; + object_ptr<CallDiscardReason> discard_reason_; + int32 duration_; + + messageCall(); + + messageCall(bool is_video_, object_ptr<CallDiscardReason> &&discard_reason_, int32 duration_); + + static const std::int32_t ID = 538893824; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageVideoChatScheduled final : public MessageContent { + public: + int32 group_call_id_; + int32 start_date_; + + messageVideoChatScheduled(); + + messageVideoChatScheduled(int32 group_call_id_, int32 start_date_); + + static const std::int32_t ID = -1855185481; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageVideoChatStarted final : public MessageContent { + public: + int32 group_call_id_; + + messageVideoChatStarted(); + + explicit messageVideoChatStarted(int32 group_call_id_); + + static const std::int32_t ID = 521225561; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageVideoChatEnded final : public MessageContent { + public: + int32 duration_; + + messageVideoChatEnded(); + + explicit messageVideoChatEnded(int32 duration_); + + static const std::int32_t ID = 2032544855; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageInviteVideoChatParticipants final : public MessageContent { + public: + int32 group_call_id_; + array<int53> user_ids_; + + messageInviteVideoChatParticipants(); + + messageInviteVideoChatParticipants(int32 group_call_id_, array<int53> &&user_ids_); + + static const std::int32_t ID = -1459065585; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageBasicGroupChatCreate final : public MessageContent { + public: + string title_; + array<int53> member_user_ids_; + + messageBasicGroupChatCreate(); + + messageBasicGroupChatCreate(string const &title_, array<int53> &&member_user_ids_); + + static const std::int32_t ID = 795404060; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageSupergroupChatCreate final : public MessageContent { + public: + string title_; + + messageSupergroupChatCreate(); + + explicit messageSupergroupChatCreate(string const &title_); + + static const std::int32_t ID = -434325733; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatChangeTitle final : public MessageContent { + public: + string title_; + + messageChatChangeTitle(); + + explicit messageChatChangeTitle(string const &title_); + + static const std::int32_t ID = 748272449; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatChangePhoto final : public MessageContent { + public: + object_ptr<chatPhoto> photo_; + + messageChatChangePhoto(); + + explicit messageChatChangePhoto(object_ptr<chatPhoto> &&photo_); + + static const std::int32_t ID = -813415093; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatDeletePhoto final : public MessageContent { + public: + + messageChatDeletePhoto(); + + static const std::int32_t ID = -184374809; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatAddMembers final : public MessageContent { + public: + array<int53> member_user_ids_; + + messageChatAddMembers(); + + explicit messageChatAddMembers(array<int53> &&member_user_ids_); + + static const std::int32_t ID = 1701117908; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatJoinByLink final : public MessageContent { + public: + + messageChatJoinByLink(); + + static const std::int32_t ID = 1846493311; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatJoinByRequest final : public MessageContent { + public: + + messageChatJoinByRequest(); + + static const std::int32_t ID = 1195428732; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatDeleteMember final : public MessageContent { + public: + int53 user_id_; + + messageChatDeleteMember(); + + explicit messageChatDeleteMember(int53 user_id_); + + static const std::int32_t ID = 938029481; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatUpgradeTo final : public MessageContent { + public: + int53 supergroup_id_; + + messageChatUpgradeTo(); + + explicit messageChatUpgradeTo(int53 supergroup_id_); + + static const std::int32_t ID = 104813723; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatUpgradeFrom final : public MessageContent { + public: + string title_; + int53 basic_group_id_; + + messageChatUpgradeFrom(); + + messageChatUpgradeFrom(string const &title_, int53 basic_group_id_); + + static const std::int32_t ID = 325954268; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePinMessage final : public MessageContent { + public: + int53 message_id_; + + messagePinMessage(); + + explicit messagePinMessage(int53 message_id_); + + static const std::int32_t ID = 953503801; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageScreenshotTaken final : public MessageContent { + public: + + messageScreenshotTaken(); + + static const std::int32_t ID = -1564971605; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatSetTheme final : public MessageContent { + public: + string theme_name_; + + messageChatSetTheme(); + + explicit messageChatSetTheme(string const &theme_name_); + + static const std::int32_t ID = -1716612088; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageChatSetTtl final : public MessageContent { + public: + int32 ttl_; + + messageChatSetTtl(); + + explicit messageChatSetTtl(int32 ttl_); + + static const std::int32_t ID = 1810060209; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForumTopicCreated final : public MessageContent { + public: + string name_; + object_ptr<forumTopicIcon> icon_; + + messageForumTopicCreated(); + + messageForumTopicCreated(string const &name_, object_ptr<forumTopicIcon> &&icon_); + + static const std::int32_t ID = -1194440751; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForumTopicEdited final : public MessageContent { + public: + string name_; + bool edit_icon_custom_emoji_id_; + int64 icon_custom_emoji_id_; + + messageForumTopicEdited(); + + messageForumTopicEdited(string const &name_, bool edit_icon_custom_emoji_id_, int64 icon_custom_emoji_id_); + + static const std::int32_t ID = 12629888; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForumTopicIsClosedToggled final : public MessageContent { + public: + bool is_closed_; + + messageForumTopicIsClosedToggled(); + + explicit messageForumTopicIsClosedToggled(bool is_closed_); + + static const std::int32_t ID = 1264029664; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageCustomServiceAction final : public MessageContent { + public: + string text_; + + messageCustomServiceAction(); + + explicit messageCustomServiceAction(string const &text_); + + static const std::int32_t ID = 1435879282; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageGameScore final : public MessageContent { + public: + int53 game_message_id_; + int64 game_id_; + int32 score_; + + messageGameScore(); + + messageGameScore(int53 game_message_id_, int64 game_id_, int32 score_); + + static const std::int32_t ID = 1344904575; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePaymentSuccessful final : public MessageContent { + public: + int53 invoice_chat_id_; + int53 invoice_message_id_; + string currency_; + int53 total_amount_; + bool is_recurring_; + bool is_first_recurring_; + string invoice_name_; + + messagePaymentSuccessful(); + + messagePaymentSuccessful(int53 invoice_chat_id_, int53 invoice_message_id_, string const ¤cy_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, string const &invoice_name_); + + static const std::int32_t ID = 1406745820; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePaymentSuccessfulBot final : public MessageContent { + public: + string currency_; + int53 total_amount_; + bool is_recurring_; + bool is_first_recurring_; + bytes invoice_payload_; + string shipping_option_id_; + object_ptr<orderInfo> order_info_; + string telegram_payment_charge_id_; + string provider_payment_charge_id_; + + messagePaymentSuccessfulBot(); + + messagePaymentSuccessfulBot(string const ¤cy_, int53 total_amount_, bool is_recurring_, bool is_first_recurring_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_, string const &telegram_payment_charge_id_, string const &provider_payment_charge_id_); + + static const std::int32_t ID = 1759592121; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageGiftedPremium final : public MessageContent { + public: + string currency_; + int53 amount_; + int32 month_count_; + object_ptr<sticker> sticker_; + + messageGiftedPremium(); + + messageGiftedPremium(string const ¤cy_, int53 amount_, int32 month_count_, object_ptr<sticker> &&sticker_); + + static const std::int32_t ID = 1580804249; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageContactRegistered final : public MessageContent { + public: + + messageContactRegistered(); + + static const std::int32_t ID = -1502020353; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageWebsiteConnected final : public MessageContent { + public: + string domain_name_; + + messageWebsiteConnected(); + + explicit messageWebsiteConnected(string const &domain_name_); + + static const std::int32_t ID = -1074551800; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageWebAppDataSent final : public MessageContent { + public: + string button_text_; + + messageWebAppDataSent(); + + explicit messageWebAppDataSent(string const &button_text_); + + static const std::int32_t ID = -83674862; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageWebAppDataReceived final : public MessageContent { + public: + string button_text_; + string data_; + + messageWebAppDataReceived(); + + messageWebAppDataReceived(string const &button_text_, string const &data_); + + static const std::int32_t ID = -8578539; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePassportDataSent final : public MessageContent { + public: + array<object_ptr<PassportElementType>> types_; + + messagePassportDataSent(); + + explicit messagePassportDataSent(array<object_ptr<PassportElementType>> &&types_); + + static const std::int32_t ID = 1017405171; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePassportDataReceived final : public MessageContent { + public: + array<object_ptr<encryptedPassportElement>> elements_; + object_ptr<encryptedCredentials> credentials_; + + messagePassportDataReceived(); + + messagePassportDataReceived(array<object_ptr<encryptedPassportElement>> &&elements_, object_ptr<encryptedCredentials> &&credentials_); + + static const std::int32_t ID = -1367863624; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageProximityAlertTriggered final : public MessageContent { + public: + object_ptr<MessageSender> traveler_id_; + object_ptr<MessageSender> watcher_id_; + int32 distance_; + + messageProximityAlertTriggered(); + + messageProximityAlertTriggered(object_ptr<MessageSender> &&traveler_id_, object_ptr<MessageSender> &&watcher_id_, int32 distance_); + + static const std::int32_t ID = 67761875; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageUnsupported final : public MessageContent { + public: + + messageUnsupported(); + + static const std::int32_t ID = -1816726139; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageCopyOptions final : public Object { + public: + bool send_copy_; + bool replace_caption_; + object_ptr<formattedText> new_caption_; + + messageCopyOptions(); + + messageCopyOptions(bool send_copy_, bool replace_caption_, object_ptr<formattedText> &&new_caption_); + + static const std::int32_t ID = 1208442937; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageExtendedMedia: public Object { + public: +}; + +class messageExtendedMediaPreview final : public MessageExtendedMedia { + public: + int32 width_; + int32 height_; + int32 duration_; + object_ptr<minithumbnail> minithumbnail_; + object_ptr<formattedText> caption_; + + messageExtendedMediaPreview(); + + messageExtendedMediaPreview(int32 width_, int32 height_, int32 duration_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 1996727111; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageExtendedMediaPhoto final : public MessageExtendedMedia { + public: + object_ptr<photo> photo_; + object_ptr<formattedText> caption_; + + messageExtendedMediaPhoto(); + + messageExtendedMediaPhoto(object_ptr<photo> &&photo_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = -963951312; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageExtendedMediaVideo final : public MessageExtendedMedia { + public: + object_ptr<video> video_; + object_ptr<formattedText> caption_; + + messageExtendedMediaVideo(); + + messageExtendedMediaVideo(object_ptr<video> &&video_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 296533819; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageExtendedMediaUnsupported final : public MessageExtendedMedia { + public: + object_ptr<formattedText> caption_; + + messageExtendedMediaUnsupported(); + + explicit messageExtendedMediaUnsupported(object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 337596448; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageFileType: public Object { + public: +}; + +class messageFileTypePrivate final : public MessageFileType { + public: + string name_; + + messageFileTypePrivate(); + + explicit messageFileTypePrivate(string const &name_); + + static const std::int32_t ID = -521908524; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageFileTypeGroup final : public MessageFileType { + public: + string title_; + + messageFileTypeGroup(); + + explicit messageFileTypeGroup(string const &title_); + + static const std::int32_t ID = -219836568; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageFileTypeUnknown final : public MessageFileType { + public: + + messageFileTypeUnknown(); + + static const std::int32_t ID = 1176353458; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForwardInfo final : public Object { + public: + object_ptr<MessageForwardOrigin> origin_; + int32 date_; + string public_service_announcement_type_; + int53 from_chat_id_; + int53 from_message_id_; + + messageForwardInfo(); + + messageForwardInfo(object_ptr<MessageForwardOrigin> &&origin_, int32 date_, string const &public_service_announcement_type_, int53 from_chat_id_, int53 from_message_id_); + + static const std::int32_t ID = -327300408; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageForwardOrigin: public Object { + public: +}; + +class messageForwardOriginUser final : public MessageForwardOrigin { + public: + int53 sender_user_id_; + + messageForwardOriginUser(); + + explicit messageForwardOriginUser(int53 sender_user_id_); + + static const std::int32_t ID = -355174191; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForwardOriginChat final : public MessageForwardOrigin { + public: + int53 sender_chat_id_; + string author_signature_; + + messageForwardOriginChat(); + + messageForwardOriginChat(int53 sender_chat_id_, string const &author_signature_); + + static const std::int32_t ID = 1526010724; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForwardOriginHiddenUser final : public MessageForwardOrigin { + public: + string sender_name_; + + messageForwardOriginHiddenUser(); + + explicit messageForwardOriginHiddenUser(string const &sender_name_); + + static const std::int32_t ID = -271257885; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForwardOriginChannel final : public MessageForwardOrigin { + public: + int53 chat_id_; + int53 message_id_; + string author_signature_; + + messageForwardOriginChannel(); + + messageForwardOriginChannel(int53 chat_id_, int53 message_id_, string const &author_signature_); + + static const std::int32_t ID = 1490730723; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageForwardOriginMessageImport final : public MessageForwardOrigin { + public: + string sender_name_; + + messageForwardOriginMessageImport(); + + explicit messageForwardOriginMessageImport(string const &sender_name_); + + static const std::int32_t ID = -739561951; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageInteractionInfo final : public Object { + public: + int32 view_count_; + int32 forward_count_; + object_ptr<messageReplyInfo> reply_info_; + array<object_ptr<messageReaction>> reactions_; + + messageInteractionInfo(); + + messageInteractionInfo(int32 view_count_, int32 forward_count_, object_ptr<messageReplyInfo> &&reply_info_, array<object_ptr<messageReaction>> &&reactions_); + + static const std::int32_t ID = -574858485; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageLink final : public Object { + public: + string link_; + bool is_public_; + + messageLink(); + + messageLink(string const &link_, bool is_public_); + + static const std::int32_t ID = -1354089818; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageLinkInfo final : public Object { + public: + bool is_public_; + int53 chat_id_; + int53 message_thread_id_; + object_ptr<message> message_; + int32 media_timestamp_; + bool for_album_; + + messageLinkInfo(); + + messageLinkInfo(bool is_public_, int53 chat_id_, int53 message_thread_id_, object_ptr<message> &&message_, int32 media_timestamp_, bool for_album_); + + static const std::int32_t ID = 731315024; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePosition final : public Object { + public: + int32 position_; + int53 message_id_; + int32 date_; + + messagePosition(); + + messagePosition(int32 position_, int53 message_id_, int32 date_); + + static const std::int32_t ID = 1292189935; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePositions final : public Object { + public: + int32 total_count_; + array<object_ptr<messagePosition>> positions_; + + messagePositions(); + + messagePositions(int32 total_count_, array<object_ptr<messagePosition>> &&positions_); + + static const std::int32_t ID = -1930466649; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageReaction final : public Object { + public: + object_ptr<ReactionType> type_; + int32 total_count_; + bool is_chosen_; + array<object_ptr<MessageSender>> recent_sender_ids_; + + messageReaction(); + + messageReaction(object_ptr<ReactionType> &&type_, int32 total_count_, bool is_chosen_, array<object_ptr<MessageSender>> &&recent_sender_ids_); + + static const std::int32_t ID = 583566666; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageReplyInfo final : public Object { + public: + int32 reply_count_; + array<object_ptr<MessageSender>> recent_replier_ids_; + int53 last_read_inbox_message_id_; + int53 last_read_outbox_message_id_; + int53 last_message_id_; + + messageReplyInfo(); + + messageReplyInfo(int32 reply_count_, array<object_ptr<MessageSender>> &&recent_replier_ids_, int53 last_read_inbox_message_id_, int53 last_read_outbox_message_id_, int53 last_message_id_); + + static const std::int32_t ID = -2093702263; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSchedulingState: public Object { + public: +}; + +class messageSchedulingStateSendAtDate final : public MessageSchedulingState { + public: + int32 send_date_; + + messageSchedulingStateSendAtDate(); + + explicit messageSchedulingStateSendAtDate(int32 send_date_); + + static const std::int32_t ID = -1485570073; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageSchedulingStateSendWhenOnline final : public MessageSchedulingState { + public: + + messageSchedulingStateSendWhenOnline(); + + static const std::int32_t ID = 2092947464; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageSendOptions final : public Object { + public: + bool disable_notification_; + bool from_background_; + bool protect_content_; + bool update_order_of_installed_sticker_sets_; + object_ptr<MessageSchedulingState> scheduling_state_; + + messageSendOptions(); + + messageSendOptions(bool disable_notification_, bool from_background_, bool protect_content_, bool update_order_of_installed_sticker_sets_, object_ptr<MessageSchedulingState> &&scheduling_state_); + + static const std::int32_t ID = -783267022; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSender: public Object { + public: +}; + +class messageSenderUser final : public MessageSender { + public: + int53 user_id_; + + messageSenderUser(); + + explicit messageSenderUser(int53 user_id_); + + static const std::int32_t ID = -336109341; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageSenderChat final : public MessageSender { + public: + int53 chat_id_; + + messageSenderChat(); + + explicit messageSenderChat(int53 chat_id_); + + static const std::int32_t ID = -239660751; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageSenders final : public Object { + public: + int32 total_count_; + array<object_ptr<MessageSender>> senders_; + + messageSenders(); + + messageSenders(int32 total_count_, array<object_ptr<MessageSender>> &&senders_); + + static const std::int32_t ID = -690158467; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageSendingState: public Object { + public: +}; + +class messageSendingStatePending final : public MessageSendingState { + public: + + messageSendingStatePending(); + + static const std::int32_t ID = -1381803582; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageSendingStateFailed final : public MessageSendingState { + public: + int32 error_code_; + string error_message_; + bool can_retry_; + bool need_another_sender_; + double retry_after_; + + messageSendingStateFailed(); + + messageSendingStateFailed(int32 error_code_, string const &error_message_, bool can_retry_, bool need_another_sender_, double retry_after_); + + static const std::int32_t ID = -1741887228; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageStatistics final : public Object { + public: + object_ptr<StatisticalGraph> message_interaction_graph_; + + messageStatistics(); + + explicit messageStatistics(object_ptr<StatisticalGraph> &&message_interaction_graph_); + + static const std::int32_t ID = -1011383888; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageThreadInfo final : public Object { + public: + int53 chat_id_; + int53 message_thread_id_; + object_ptr<messageReplyInfo> reply_info_; + int32 unread_message_count_; + array<object_ptr<message>> messages_; + object_ptr<draftMessage> draft_message_; + + messageThreadInfo(); + + messageThreadInfo(int53 chat_id_, int53 message_thread_id_, object_ptr<messageReplyInfo> &&reply_info_, int32 unread_message_count_, array<object_ptr<message>> &&messages_, object_ptr<draftMessage> &&draft_message_); + + static const std::int32_t ID = -248536056; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages final : public Object { + public: + int32 total_count_; + array<object_ptr<message>> messages_; + + messages(); + + messages(int32 total_count_, array<object_ptr<message>> &&messages_); + + static const std::int32_t ID = -16498159; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class minithumbnail final : public Object { + public: + int32 width_; + int32 height_; + bytes data_; + + minithumbnail(); + + minithumbnail(int32 width_, int32 height_, bytes const &data_); + + static const std::int32_t ID = -328540758; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class networkStatistics final : public Object { + public: + int32 since_date_; + array<object_ptr<NetworkStatisticsEntry>> entries_; + + networkStatistics(); + + networkStatistics(int32 since_date_, array<object_ptr<NetworkStatisticsEntry>> &&entries_); + + static const std::int32_t ID = 1615554212; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class NetworkStatisticsEntry: public Object { + public: +}; + +class networkStatisticsEntryFile final : public NetworkStatisticsEntry { + public: + object_ptr<FileType> file_type_; + object_ptr<NetworkType> network_type_; + int53 sent_bytes_; + int53 received_bytes_; + + networkStatisticsEntryFile(); + + networkStatisticsEntryFile(object_ptr<FileType> &&file_type_, object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_); + + static const std::int32_t ID = 188452706; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class networkStatisticsEntryCall final : public NetworkStatisticsEntry { + public: + object_ptr<NetworkType> network_type_; + int53 sent_bytes_; + int53 received_bytes_; + double duration_; + + networkStatisticsEntryCall(); + + networkStatisticsEntryCall(object_ptr<NetworkType> &&network_type_, int53 sent_bytes_, int53 received_bytes_, double duration_); + + static const std::int32_t ID = 737000365; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class NetworkType: public Object { + public: +}; + +class networkTypeNone final : public NetworkType { + public: + + networkTypeNone(); + + static const std::int32_t ID = -1971691759; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class networkTypeMobile final : public NetworkType { + public: + + networkTypeMobile(); + + static const std::int32_t ID = 819228239; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class networkTypeMobileRoaming final : public NetworkType { + public: + + networkTypeMobileRoaming(); + + static const std::int32_t ID = -1435199760; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class networkTypeWiFi final : public NetworkType { + public: + + networkTypeWiFi(); + + static const std::int32_t ID = -633872070; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class networkTypeOther final : public NetworkType { + public: + + networkTypeOther(); + + static const std::int32_t ID = 1942128539; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notification final : public Object { + public: + int32 id_; + int32 date_; + bool is_silent_; + object_ptr<NotificationType> type_; + + notification(); + + notification(int32 id_, int32 date_, bool is_silent_, object_ptr<NotificationType> &&type_); + + static const std::int32_t ID = 788743120; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationGroup final : public Object { + public: + int32 id_; + object_ptr<NotificationGroupType> type_; + int53 chat_id_; + int32 total_count_; + array<object_ptr<notification>> notifications_; + + notificationGroup(); + + notificationGroup(int32 id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int32 total_count_, array<object_ptr<notification>> &¬ifications_); + + static const std::int32_t ID = 780691541; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class NotificationGroupType: public Object { + public: +}; + +class notificationGroupTypeMessages final : public NotificationGroupType { + public: + + notificationGroupTypeMessages(); + + static const std::int32_t ID = -1702481123; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationGroupTypeMentions final : public NotificationGroupType { + public: + + notificationGroupTypeMentions(); + + static const std::int32_t ID = -2050324051; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationGroupTypeSecretChat final : public NotificationGroupType { + public: + + notificationGroupTypeSecretChat(); + + static const std::int32_t ID = 1390759476; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationGroupTypeCalls final : public NotificationGroupType { + public: + + notificationGroupTypeCalls(); + + static const std::int32_t ID = 1379123538; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class NotificationSettingsScope: public Object { + public: +}; + +class notificationSettingsScopePrivateChats final : public NotificationSettingsScope { + public: + + notificationSettingsScopePrivateChats(); + + static const std::int32_t ID = 937446759; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationSettingsScopeGroupChats final : public NotificationSettingsScope { + public: + + notificationSettingsScopeGroupChats(); + + static const std::int32_t ID = 1212142067; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationSettingsScopeChannelChats final : public NotificationSettingsScope { + public: + + notificationSettingsScopeChannelChats(); + + static const std::int32_t ID = 548013448; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationSound final : public Object { + public: + int64 id_; + int32 duration_; + int32 date_; + string title_; + string data_; + object_ptr<file> sound_; + + notificationSound(); + + notificationSound(int64 id_, int32 duration_, int32 date_, string const &title_, string const &data_, object_ptr<file> &&sound_); + + static const std::int32_t ID = -185638601; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationSounds final : public Object { + public: + array<object_ptr<notificationSound>> notification_sounds_; + + notificationSounds(); + + explicit notificationSounds(array<object_ptr<notificationSound>> &¬ification_sounds_); + + static const std::int32_t ID = -630813169; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class NotificationType: public Object { + public: +}; + +class notificationTypeNewMessage final : public NotificationType { + public: + object_ptr<message> message_; + bool show_preview_; + + notificationTypeNewMessage(); + + notificationTypeNewMessage(object_ptr<message> &&message_, bool show_preview_); + + static const std::int32_t ID = -254745614; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationTypeNewSecretChat final : public NotificationType { + public: + + notificationTypeNewSecretChat(); + + static const std::int32_t ID = 1198638768; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationTypeNewCall final : public NotificationType { + public: + int32 call_id_; + + notificationTypeNewCall(); + + explicit notificationTypeNewCall(int32 call_id_); + + static const std::int32_t ID = 1712734585; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationTypeNewPushMessage final : public NotificationType { + public: + int53 message_id_; + object_ptr<MessageSender> sender_id_; + string sender_name_; + bool is_outgoing_; + object_ptr<PushMessageContent> content_; + + notificationTypeNewPushMessage(); + + notificationTypeNewPushMessage(int53 message_id_, object_ptr<MessageSender> &&sender_id_, string const &sender_name_, bool is_outgoing_, object_ptr<PushMessageContent> &&content_); + + static const std::int32_t ID = -711680462; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ok final : public Object { + public: + + ok(); + + static const std::int32_t ID = -722616727; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class OptionValue: public Object { + public: +}; + +class optionValueBoolean final : public OptionValue { + public: + bool value_; + + optionValueBoolean(); + + explicit optionValueBoolean(bool value_); + + static const std::int32_t ID = 63135518; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class optionValueEmpty final : public OptionValue { + public: + + optionValueEmpty(); + + static const std::int32_t ID = 918955155; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class optionValueInteger final : public OptionValue { + public: + int64 value_; + + optionValueInteger(); + + explicit optionValueInteger(int64 value_); + + static const std::int32_t ID = -186858780; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class optionValueString final : public OptionValue { + public: + string value_; + + optionValueString(); + + explicit optionValueString(string const &value_); + + static const std::int32_t ID = 756248212; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class orderInfo final : public Object { + public: + string name_; + string phone_number_; + string email_address_; + object_ptr<address> shipping_address_; + + orderInfo(); + + orderInfo(string const &name_, string const &phone_number_, string const &email_address_, object_ptr<address> &&shipping_address_); + + static const std::int32_t ID = 783997294; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PageBlock: public Object { + public: +}; + +class pageBlockTitle final : public PageBlock { + public: + object_ptr<RichText> title_; + + pageBlockTitle(); + + explicit pageBlockTitle(object_ptr<RichText> &&title_); + + static const std::int32_t ID = 1629664784; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockSubtitle final : public PageBlock { + public: + object_ptr<RichText> subtitle_; + + pageBlockSubtitle(); + + explicit pageBlockSubtitle(object_ptr<RichText> &&subtitle_); + + static const std::int32_t ID = 264524263; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockAuthorDate final : public PageBlock { + public: + object_ptr<RichText> author_; + int32 publish_date_; + + pageBlockAuthorDate(); + + pageBlockAuthorDate(object_ptr<RichText> &&author_, int32 publish_date_); + + static const std::int32_t ID = 1300231184; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockHeader final : public PageBlock { + public: + object_ptr<RichText> header_; + + pageBlockHeader(); + + explicit pageBlockHeader(object_ptr<RichText> &&header_); + + static const std::int32_t ID = 1402854811; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockSubheader final : public PageBlock { + public: + object_ptr<RichText> subheader_; + + pageBlockSubheader(); + + explicit pageBlockSubheader(object_ptr<RichText> &&subheader_); + + static const std::int32_t ID = 1263956774; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockKicker final : public PageBlock { + public: + object_ptr<RichText> kicker_; + + pageBlockKicker(); + + explicit pageBlockKicker(object_ptr<RichText> &&kicker_); + + static const std::int32_t ID = 1361282635; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockParagraph final : public PageBlock { + public: + object_ptr<RichText> text_; + + pageBlockParagraph(); + + explicit pageBlockParagraph(object_ptr<RichText> &&text_); + + static const std::int32_t ID = 1182402406; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockPreformatted final : public PageBlock { + public: + object_ptr<RichText> text_; + string language_; + + pageBlockPreformatted(); + + pageBlockPreformatted(object_ptr<RichText> &&text_, string const &language_); + + static const std::int32_t ID = -1066346178; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockFooter final : public PageBlock { + public: + object_ptr<RichText> footer_; + + pageBlockFooter(); + + explicit pageBlockFooter(object_ptr<RichText> &&footer_); + + static const std::int32_t ID = 886429480; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockDivider final : public PageBlock { + public: + + pageBlockDivider(); + + static const std::int32_t ID = -618614392; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockAnchor final : public PageBlock { + public: + string name_; + + pageBlockAnchor(); + + explicit pageBlockAnchor(string const &name_); + + static const std::int32_t ID = -837994576; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockList final : public PageBlock { + public: + array<object_ptr<pageBlockListItem>> items_; + + pageBlockList(); + + explicit pageBlockList(array<object_ptr<pageBlockListItem>> &&items_); + + static const std::int32_t ID = -1037074852; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockBlockQuote final : public PageBlock { + public: + object_ptr<RichText> text_; + object_ptr<RichText> credit_; + + pageBlockBlockQuote(); + + pageBlockBlockQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_); + + static const std::int32_t ID = 1657834142; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockPullQuote final : public PageBlock { + public: + object_ptr<RichText> text_; + object_ptr<RichText> credit_; + + pageBlockPullQuote(); + + pageBlockPullQuote(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_); + + static const std::int32_t ID = 490242317; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockAnimation final : public PageBlock { + public: + object_ptr<animation> animation_; + object_ptr<pageBlockCaption> caption_; + bool need_autoplay_; + + pageBlockAnimation(); + + pageBlockAnimation(object_ptr<animation> &&animation_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_); + + static const std::int32_t ID = 1355669513; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockAudio final : public PageBlock { + public: + object_ptr<audio> audio_; + object_ptr<pageBlockCaption> caption_; + + pageBlockAudio(); + + pageBlockAudio(object_ptr<audio> &&audio_, object_ptr<pageBlockCaption> &&caption_); + + static const std::int32_t ID = -63371245; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockPhoto final : public PageBlock { + public: + object_ptr<photo> photo_; + object_ptr<pageBlockCaption> caption_; + string url_; + + pageBlockPhoto(); + + pageBlockPhoto(object_ptr<photo> &&photo_, object_ptr<pageBlockCaption> &&caption_, string const &url_); + + static const std::int32_t ID = 417601156; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockVideo final : public PageBlock { + public: + object_ptr<video> video_; + object_ptr<pageBlockCaption> caption_; + bool need_autoplay_; + bool is_looped_; + + pageBlockVideo(); + + pageBlockVideo(object_ptr<video> &&video_, object_ptr<pageBlockCaption> &&caption_, bool need_autoplay_, bool is_looped_); + + static const std::int32_t ID = 510041394; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockVoiceNote final : public PageBlock { + public: + object_ptr<voiceNote> voice_note_; + object_ptr<pageBlockCaption> caption_; + + pageBlockVoiceNote(); + + pageBlockVoiceNote(object_ptr<voiceNote> &&voice_note_, object_ptr<pageBlockCaption> &&caption_); + + static const std::int32_t ID = 1823310463; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockCover final : public PageBlock { + public: + object_ptr<PageBlock> cover_; + + pageBlockCover(); + + explicit pageBlockCover(object_ptr<PageBlock> &&cover_); + + static const std::int32_t ID = 972174080; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockEmbedded final : public PageBlock { + public: + string url_; + string html_; + object_ptr<photo> poster_photo_; + int32 width_; + int32 height_; + object_ptr<pageBlockCaption> caption_; + bool is_full_width_; + bool allow_scrolling_; + + pageBlockEmbedded(); + + pageBlockEmbedded(string const &url_, string const &html_, object_ptr<photo> &&poster_photo_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_, bool is_full_width_, bool allow_scrolling_); + + static const std::int32_t ID = -1942577763; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockEmbeddedPost final : public PageBlock { + public: + string url_; + string author_; + object_ptr<photo> author_photo_; + int32 date_; + array<object_ptr<PageBlock>> page_blocks_; + object_ptr<pageBlockCaption> caption_; + + pageBlockEmbeddedPost(); + + pageBlockEmbeddedPost(string const &url_, string const &author_, object_ptr<photo> &&author_photo_, int32 date_, array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_); + + static const std::int32_t ID = 397600949; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockCollage final : public PageBlock { + public: + array<object_ptr<PageBlock>> page_blocks_; + object_ptr<pageBlockCaption> caption_; + + pageBlockCollage(); + + pageBlockCollage(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_); + + static const std::int32_t ID = 1163760110; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockSlideshow final : public PageBlock { + public: + array<object_ptr<PageBlock>> page_blocks_; + object_ptr<pageBlockCaption> caption_; + + pageBlockSlideshow(); + + pageBlockSlideshow(array<object_ptr<PageBlock>> &&page_blocks_, object_ptr<pageBlockCaption> &&caption_); + + static const std::int32_t ID = 539217375; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockChatLink final : public PageBlock { + public: + string title_; + object_ptr<chatPhotoInfo> photo_; + string username_; + + pageBlockChatLink(); + + pageBlockChatLink(string const &title_, object_ptr<chatPhotoInfo> &&photo_, string const &username_); + + static const std::int32_t ID = -202091253; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockTable final : public PageBlock { + public: + object_ptr<RichText> caption_; + array<array<object_ptr<pageBlockTableCell>>> cells_; + bool is_bordered_; + bool is_striped_; + + pageBlockTable(); + + pageBlockTable(object_ptr<RichText> &&caption_, array<array<object_ptr<pageBlockTableCell>>> &&cells_, bool is_bordered_, bool is_striped_); + + static const std::int32_t ID = -942649288; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockDetails final : public PageBlock { + public: + object_ptr<RichText> header_; + array<object_ptr<PageBlock>> page_blocks_; + bool is_open_; + + pageBlockDetails(); + + pageBlockDetails(object_ptr<RichText> &&header_, array<object_ptr<PageBlock>> &&page_blocks_, bool is_open_); + + static const std::int32_t ID = -1599869809; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockRelatedArticles final : public PageBlock { + public: + object_ptr<RichText> header_; + array<object_ptr<pageBlockRelatedArticle>> articles_; + + pageBlockRelatedArticles(); + + pageBlockRelatedArticles(object_ptr<RichText> &&header_, array<object_ptr<pageBlockRelatedArticle>> &&articles_); + + static const std::int32_t ID = -1807324374; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockMap final : public PageBlock { + public: + object_ptr<location> location_; + int32 zoom_; + int32 width_; + int32 height_; + object_ptr<pageBlockCaption> caption_; + + pageBlockMap(); + + pageBlockMap(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, object_ptr<pageBlockCaption> &&caption_); + + static const std::int32_t ID = 1510961171; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockCaption final : public Object { + public: + object_ptr<RichText> text_; + object_ptr<RichText> credit_; + + pageBlockCaption(); + + pageBlockCaption(object_ptr<RichText> &&text_, object_ptr<RichText> &&credit_); + + static const std::int32_t ID = -1180064650; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PageBlockHorizontalAlignment: public Object { + public: +}; + +class pageBlockHorizontalAlignmentLeft final : public PageBlockHorizontalAlignment { + public: + + pageBlockHorizontalAlignmentLeft(); + + static const std::int32_t ID = 848701417; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockHorizontalAlignmentCenter final : public PageBlockHorizontalAlignment { + public: + + pageBlockHorizontalAlignmentCenter(); + + static const std::int32_t ID = -1009203990; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockHorizontalAlignmentRight final : public PageBlockHorizontalAlignment { + public: + + pageBlockHorizontalAlignmentRight(); + + static const std::int32_t ID = 1371369214; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockListItem final : public Object { + public: + string label_; + array<object_ptr<PageBlock>> page_blocks_; + + pageBlockListItem(); + + pageBlockListItem(string const &label_, array<object_ptr<PageBlock>> &&page_blocks_); + + static const std::int32_t ID = 323186259; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockRelatedArticle final : public Object { + public: + string url_; + string title_; + string description_; + object_ptr<photo> photo_; + string author_; + int32 publish_date_; + + pageBlockRelatedArticle(); + + pageBlockRelatedArticle(string const &url_, string const &title_, string const &description_, object_ptr<photo> &&photo_, string const &author_, int32 publish_date_); + + static const std::int32_t ID = 481199251; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockTableCell final : public Object { + public: + object_ptr<RichText> text_; + bool is_header_; + int32 colspan_; + int32 rowspan_; + object_ptr<PageBlockHorizontalAlignment> align_; + object_ptr<PageBlockVerticalAlignment> valign_; + + pageBlockTableCell(); + + pageBlockTableCell(object_ptr<RichText> &&text_, bool is_header_, int32 colspan_, int32 rowspan_, object_ptr<PageBlockHorizontalAlignment> &&align_, object_ptr<PageBlockVerticalAlignment> &&valign_); + + static const std::int32_t ID = 1417658214; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PageBlockVerticalAlignment: public Object { + public: +}; + +class pageBlockVerticalAlignmentTop final : public PageBlockVerticalAlignment { + public: + + pageBlockVerticalAlignmentTop(); + + static const std::int32_t ID = 195500454; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockVerticalAlignmentMiddle final : public PageBlockVerticalAlignment { + public: + + pageBlockVerticalAlignmentMiddle(); + + static const std::int32_t ID = -2123096587; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockVerticalAlignmentBottom final : public PageBlockVerticalAlignment { + public: + + pageBlockVerticalAlignmentBottom(); + + static const std::int32_t ID = 2092531158; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportAuthorizationForm final : public Object { + public: + int32 id_; + array<object_ptr<passportRequiredElement>> required_elements_; + string privacy_policy_url_; + + passportAuthorizationForm(); + + passportAuthorizationForm(int32 id_, array<object_ptr<passportRequiredElement>> &&required_elements_, string const &privacy_policy_url_); + + static const std::int32_t ID = -1070673218; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PassportElement: public Object { + public: +}; + +class passportElementPersonalDetails final : public PassportElement { + public: + object_ptr<personalDetails> personal_details_; + + passportElementPersonalDetails(); + + explicit passportElementPersonalDetails(object_ptr<personalDetails> &&personal_details_); + + static const std::int32_t ID = 1217724035; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementPassport final : public PassportElement { + public: + object_ptr<identityDocument> passport_; + + passportElementPassport(); + + explicit passportElementPassport(object_ptr<identityDocument> &&passport_); + + static const std::int32_t ID = -263985373; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementDriverLicense final : public PassportElement { + public: + object_ptr<identityDocument> driver_license_; + + passportElementDriverLicense(); + + explicit passportElementDriverLicense(object_ptr<identityDocument> &&driver_license_); + + static const std::int32_t ID = 1643580589; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementIdentityCard final : public PassportElement { + public: + object_ptr<identityDocument> identity_card_; + + passportElementIdentityCard(); + + explicit passportElementIdentityCard(object_ptr<identityDocument> &&identity_card_); + + static const std::int32_t ID = 2083775797; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementInternalPassport final : public PassportElement { + public: + object_ptr<identityDocument> internal_passport_; + + passportElementInternalPassport(); + + explicit passportElementInternalPassport(object_ptr<identityDocument> &&internal_passport_); + + static const std::int32_t ID = 36220295; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementAddress final : public PassportElement { + public: + object_ptr<address> address_; + + passportElementAddress(); + + explicit passportElementAddress(object_ptr<address> &&address_); + + static const std::int32_t ID = -782625232; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementUtilityBill final : public PassportElement { + public: + object_ptr<personalDocument> utility_bill_; + + passportElementUtilityBill(); + + explicit passportElementUtilityBill(object_ptr<personalDocument> &&utility_bill_); + + static const std::int32_t ID = -234611246; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementBankStatement final : public PassportElement { + public: + object_ptr<personalDocument> bank_statement_; + + passportElementBankStatement(); + + explicit passportElementBankStatement(object_ptr<personalDocument> &&bank_statement_); + + static const std::int32_t ID = -366464408; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementRentalAgreement final : public PassportElement { + public: + object_ptr<personalDocument> rental_agreement_; + + passportElementRentalAgreement(); + + explicit passportElementRentalAgreement(object_ptr<personalDocument> &&rental_agreement_); + + static const std::int32_t ID = -290141400; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementPassportRegistration final : public PassportElement { + public: + object_ptr<personalDocument> passport_registration_; + + passportElementPassportRegistration(); + + explicit passportElementPassportRegistration(object_ptr<personalDocument> &&passport_registration_); + + static const std::int32_t ID = 618323071; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTemporaryRegistration final : public PassportElement { + public: + object_ptr<personalDocument> temporary_registration_; + + passportElementTemporaryRegistration(); + + explicit passportElementTemporaryRegistration(object_ptr<personalDocument> &&temporary_registration_); + + static const std::int32_t ID = 1237626864; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementPhoneNumber final : public PassportElement { + public: + string phone_number_; + + passportElementPhoneNumber(); + + explicit passportElementPhoneNumber(string const &phone_number_); + + static const std::int32_t ID = -1320118375; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementEmailAddress final : public PassportElement { + public: + string email_address_; + + passportElementEmailAddress(); + + explicit passportElementEmailAddress(string const &email_address_); + + static const std::int32_t ID = -1528129531; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementError final : public Object { + public: + object_ptr<PassportElementType> type_; + string message_; + object_ptr<PassportElementErrorSource> source_; + + passportElementError(); + + passportElementError(object_ptr<PassportElementType> &&type_, string const &message_, object_ptr<PassportElementErrorSource> &&source_); + + static const std::int32_t ID = -1861902395; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PassportElementErrorSource: public Object { + public: +}; + +class passportElementErrorSourceUnspecified final : public PassportElementErrorSource { + public: + + passportElementErrorSourceUnspecified(); + + static const std::int32_t ID = -378320830; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceDataField final : public PassportElementErrorSource { + public: + string field_name_; + + passportElementErrorSourceDataField(); + + explicit passportElementErrorSourceDataField(string const &field_name_); + + static const std::int32_t ID = -308650776; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceFrontSide final : public PassportElementErrorSource { + public: + + passportElementErrorSourceFrontSide(); + + static const std::int32_t ID = 1895658292; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceReverseSide final : public PassportElementErrorSource { + public: + + passportElementErrorSourceReverseSide(); + + static const std::int32_t ID = 1918630391; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceSelfie final : public PassportElementErrorSource { + public: + + passportElementErrorSourceSelfie(); + + static const std::int32_t ID = -797043672; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceTranslationFile final : public PassportElementErrorSource { + public: + int32 file_index_; + + passportElementErrorSourceTranslationFile(); + + explicit passportElementErrorSourceTranslationFile(int32 file_index_); + + static const std::int32_t ID = -689621228; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceTranslationFiles final : public PassportElementErrorSource { + public: + + passportElementErrorSourceTranslationFiles(); + + static const std::int32_t ID = 581280796; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceFile final : public PassportElementErrorSource { + public: + int32 file_index_; + + passportElementErrorSourceFile(); + + explicit passportElementErrorSourceFile(int32 file_index_); + + static const std::int32_t ID = 2020358960; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementErrorSourceFiles final : public PassportElementErrorSource { + public: + + passportElementErrorSourceFiles(); + + static const std::int32_t ID = 1894164178; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PassportElementType: public Object { + public: +}; + +class passportElementTypePersonalDetails final : public PassportElementType { + public: + + passportElementTypePersonalDetails(); + + static const std::int32_t ID = -1032136365; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypePassport final : public PassportElementType { + public: + + passportElementTypePassport(); + + static const std::int32_t ID = -436360376; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeDriverLicense final : public PassportElementType { + public: + + passportElementTypeDriverLicense(); + + static const std::int32_t ID = 1827298379; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeIdentityCard final : public PassportElementType { + public: + + passportElementTypeIdentityCard(); + + static const std::int32_t ID = -502356132; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeInternalPassport final : public PassportElementType { + public: + + passportElementTypeInternalPassport(); + + static const std::int32_t ID = -793781959; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeAddress final : public PassportElementType { + public: + + passportElementTypeAddress(); + + static const std::int32_t ID = 496327874; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeUtilityBill final : public PassportElementType { + public: + + passportElementTypeUtilityBill(); + + static const std::int32_t ID = 627084906; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeBankStatement final : public PassportElementType { + public: + + passportElementTypeBankStatement(); + + static const std::int32_t ID = 574095667; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeRentalAgreement final : public PassportElementType { + public: + + passportElementTypeRentalAgreement(); + + static const std::int32_t ID = -2060583280; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypePassportRegistration final : public PassportElementType { + public: + + passportElementTypePassportRegistration(); + + static const std::int32_t ID = -159478209; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeTemporaryRegistration final : public PassportElementType { + public: + + passportElementTypeTemporaryRegistration(); + + static const std::int32_t ID = 1092498527; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypePhoneNumber final : public PassportElementType { + public: + + passportElementTypePhoneNumber(); + + static const std::int32_t ID = -995361172; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementTypeEmailAddress final : public PassportElementType { + public: + + passportElementTypeEmailAddress(); + + static const std::int32_t ID = -79321405; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElements final : public Object { + public: + array<object_ptr<PassportElement>> elements_; + + passportElements(); + + explicit passportElements(array<object_ptr<PassportElement>> &&elements_); + + static const std::int32_t ID = 1264617556; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportElementsWithErrors final : public Object { + public: + array<object_ptr<PassportElement>> elements_; + array<object_ptr<passportElementError>> errors_; + + passportElementsWithErrors(); + + passportElementsWithErrors(array<object_ptr<PassportElement>> &&elements_, array<object_ptr<passportElementError>> &&errors_); + + static const std::int32_t ID = 1308923044; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportRequiredElement final : public Object { + public: + array<object_ptr<passportSuitableElement>> suitable_elements_; + + passportRequiredElement(); + + explicit passportRequiredElement(array<object_ptr<passportSuitableElement>> &&suitable_elements_); + + static const std::int32_t ID = -1983641651; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passportSuitableElement final : public Object { + public: + object_ptr<PassportElementType> type_; + bool is_selfie_required_; + bool is_translation_required_; + bool is_native_name_required_; + + passportSuitableElement(); + + passportSuitableElement(object_ptr<PassportElementType> &&type_, bool is_selfie_required_, bool is_translation_required_, bool is_native_name_required_); + + static const std::int32_t ID = -789019876; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passwordState final : public Object { + public: + bool has_password_; + string password_hint_; + bool has_recovery_email_address_; + bool has_passport_data_; + object_ptr<emailAddressAuthenticationCodeInfo> recovery_email_address_code_info_; + string login_email_address_pattern_; + int32 pending_reset_date_; + + passwordState(); + + passwordState(bool has_password_, string const &password_hint_, bool has_recovery_email_address_, bool has_passport_data_, object_ptr<emailAddressAuthenticationCodeInfo> &&recovery_email_address_code_info_, string const &login_email_address_pattern_, int32 pending_reset_date_); + + static const std::int32_t ID = 483801128; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentForm final : public Object { + public: + int64 id_; + object_ptr<invoice> invoice_; + int53 seller_bot_user_id_; + int53 payment_provider_user_id_; + object_ptr<PaymentProvider> payment_provider_; + array<object_ptr<paymentOption>> additional_payment_options_; + object_ptr<orderInfo> saved_order_info_; + array<object_ptr<savedCredentials>> saved_credentials_; + bool can_save_credentials_; + bool need_password_; + string product_title_; + object_ptr<formattedText> product_description_; + object_ptr<photo> product_photo_; + + paymentForm(); + + paymentForm(int64 id_, object_ptr<invoice> &&invoice_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<PaymentProvider> &&payment_provider_, array<object_ptr<paymentOption>> &&additional_payment_options_, object_ptr<orderInfo> &&saved_order_info_, array<object_ptr<savedCredentials>> &&saved_credentials_, bool can_save_credentials_, bool need_password_, string const &product_title_, object_ptr<formattedText> &&product_description_, object_ptr<photo> &&product_photo_); + + static const std::int32_t ID = -1468471378; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentOption final : public Object { + public: + string title_; + string url_; + + paymentOption(); + + paymentOption(string const &title_, string const &url_); + + static const std::int32_t ID = -294020965; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PaymentProvider: public Object { + public: +}; + +class paymentProviderSmartGlocal final : public PaymentProvider { + public: + string public_token_; + + paymentProviderSmartGlocal(); + + explicit paymentProviderSmartGlocal(string const &public_token_); + + static const std::int32_t ID = 1800479470; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentProviderStripe final : public PaymentProvider { + public: + string publishable_key_; + bool need_country_; + bool need_postal_code_; + bool need_cardholder_name_; + + paymentProviderStripe(); + + paymentProviderStripe(string const &publishable_key_, bool need_country_, bool need_postal_code_, bool need_cardholder_name_); + + static const std::int32_t ID = 370467227; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentProviderOther final : public PaymentProvider { + public: + string url_; + + paymentProviderOther(); + + explicit paymentProviderOther(string const &url_); + + static const std::int32_t ID = -1336876828; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentReceipt final : public Object { + public: + string title_; + object_ptr<formattedText> description_; + object_ptr<photo> photo_; + int32 date_; + int53 seller_bot_user_id_; + int53 payment_provider_user_id_; + object_ptr<invoice> invoice_; + object_ptr<orderInfo> order_info_; + object_ptr<shippingOption> shipping_option_; + string credentials_title_; + int53 tip_amount_; + + paymentReceipt(); + + paymentReceipt(string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, int32 date_, int53 seller_bot_user_id_, int53 payment_provider_user_id_, object_ptr<invoice> &&invoice_, object_ptr<orderInfo> &&order_info_, object_ptr<shippingOption> &&shipping_option_, string const &credentials_title_, int53 tip_amount_); + + static const std::int32_t ID = -400955711; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentResult final : public Object { + public: + bool success_; + string verification_url_; + + paymentResult(); + + paymentResult(bool success_, string const &verification_url_); + + static const std::int32_t ID = -804263843; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class personalDetails final : public Object { + public: + string first_name_; + string middle_name_; + string last_name_; + string native_first_name_; + string native_middle_name_; + string native_last_name_; + object_ptr<date> birthdate_; + string gender_; + string country_code_; + string residence_country_code_; + + personalDetails(); + + personalDetails(string const &first_name_, string const &middle_name_, string const &last_name_, string const &native_first_name_, string const &native_middle_name_, string const &native_last_name_, object_ptr<date> &&birthdate_, string const &gender_, string const &country_code_, string const &residence_country_code_); + + static const std::int32_t ID = -1061656137; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class personalDocument final : public Object { + public: + array<object_ptr<datedFile>> files_; + array<object_ptr<datedFile>> translation_; + + personalDocument(); + + personalDocument(array<object_ptr<datedFile>> &&files_, array<object_ptr<datedFile>> &&translation_); + + static const std::int32_t ID = -1011634661; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneNumberAuthenticationSettings final : public Object { + public: + bool allow_flash_call_; + bool allow_missed_call_; + bool is_current_phone_number_; + bool allow_sms_retriever_api_; + array<string> authentication_tokens_; + + phoneNumberAuthenticationSettings(); + + phoneNumberAuthenticationSettings(bool allow_flash_call_, bool allow_missed_call_, bool is_current_phone_number_, bool allow_sms_retriever_api_, array<string> &&authentication_tokens_); + + static const std::int32_t ID = -421219756; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneNumberInfo final : public Object { + public: + object_ptr<countryInfo> country_; + string country_calling_code_; + string formatted_phone_number_; + + phoneNumberInfo(); + + phoneNumberInfo(object_ptr<countryInfo> &&country_, string const &country_calling_code_, string const &formatted_phone_number_); + + static const std::int32_t ID = 560180961; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photo final : public Object { + public: + bool has_stickers_; + object_ptr<minithumbnail> minithumbnail_; + array<object_ptr<photoSize>> sizes_; + + photo(); + + photo(bool has_stickers_, object_ptr<minithumbnail> &&minithumbnail_, array<object_ptr<photoSize>> &&sizes_); + + static const std::int32_t ID = -2022871583; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoSize final : public Object { + public: + string type_; + object_ptr<file> photo_; + int32 width_; + int32 height_; + array<int32> progressive_sizes_; + + photoSize(); + + photoSize(string const &type_, object_ptr<file> &&photo_, int32 width_, int32 height_, array<int32> &&progressive_sizes_); + + static const std::int32_t ID = 1609182352; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class point final : public Object { + public: + double x_; + double y_; + + point(); + + point(double x_, double y_); + + static const std::int32_t ID = 437515705; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class poll final : public Object { + public: + int64 id_; + string question_; + array<object_ptr<pollOption>> options_; + int32 total_voter_count_; + array<int53> recent_voter_user_ids_; + bool is_anonymous_; + object_ptr<PollType> type_; + int32 open_period_; + int32 close_date_; + bool is_closed_; + + poll(); + + poll(int64 id_, string const &question_, array<object_ptr<pollOption>> &&options_, int32 total_voter_count_, array<int53> &&recent_voter_user_ids_, bool is_anonymous_, object_ptr<PollType> &&type_, int32 open_period_, int32 close_date_, bool is_closed_); + + static const std::int32_t ID = 116940085; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pollOption final : public Object { + public: + string text_; + int32 voter_count_; + int32 vote_percentage_; + bool is_chosen_; + bool is_being_chosen_; + + pollOption(); + + pollOption(string const &text_, int32 voter_count_, int32 vote_percentage_, bool is_chosen_, bool is_being_chosen_); + + static const std::int32_t ID = 1473893797; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PollType: public Object { + public: +}; + +class pollTypeRegular final : public PollType { + public: + bool allow_multiple_answers_; + + pollTypeRegular(); + + explicit pollTypeRegular(bool allow_multiple_answers_); + + static const std::int32_t ID = 641265698; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pollTypeQuiz final : public PollType { + public: + int32 correct_option_id_; + object_ptr<formattedText> explanation_; + + pollTypeQuiz(); + + pollTypeQuiz(int32 correct_option_id_, object_ptr<formattedText> &&explanation_); + + static const std::int32_t ID = 657013913; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PremiumFeature: public Object { + public: +}; + +class premiumFeatureIncreasedLimits final : public PremiumFeature { + public: + + premiumFeatureIncreasedLimits(); + + static const std::int32_t ID = 1785455031; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureIncreasedUploadFileSize final : public PremiumFeature { + public: + + premiumFeatureIncreasedUploadFileSize(); + + static const std::int32_t ID = 1825367155; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureImprovedDownloadSpeed final : public PremiumFeature { + public: + + premiumFeatureImprovedDownloadSpeed(); + + static const std::int32_t ID = -267695554; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureVoiceRecognition final : public PremiumFeature { + public: + + premiumFeatureVoiceRecognition(); + + static const std::int32_t ID = 1288216542; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureDisabledAds final : public PremiumFeature { + public: + + premiumFeatureDisabledAds(); + + static const std::int32_t ID = -2008587702; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureUniqueReactions final : public PremiumFeature { + public: + + premiumFeatureUniqueReactions(); + + static const std::int32_t ID = 766750743; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureUniqueStickers final : public PremiumFeature { + public: + + premiumFeatureUniqueStickers(); + + static const std::int32_t ID = -2101773312; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureCustomEmoji final : public PremiumFeature { + public: + + premiumFeatureCustomEmoji(); + + static const std::int32_t ID = 1332599628; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureAdvancedChatManagement final : public PremiumFeature { + public: + + premiumFeatureAdvancedChatManagement(); + + static const std::int32_t ID = 796347674; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureProfileBadge final : public PremiumFeature { + public: + + premiumFeatureProfileBadge(); + + static const std::int32_t ID = 233648322; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureEmojiStatus final : public PremiumFeature { + public: + + premiumFeatureEmojiStatus(); + + static const std::int32_t ID = -36516639; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureAnimatedProfilePhoto final : public PremiumFeature { + public: + + premiumFeatureAnimatedProfilePhoto(); + + static const std::int32_t ID = -100741914; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureForumTopicIcon final : public PremiumFeature { + public: + + premiumFeatureForumTopicIcon(); + + static const std::int32_t ID = -823172286; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatureAppIcons final : public PremiumFeature { + public: + + premiumFeatureAppIcons(); + + static const std::int32_t ID = 1585050761; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeaturePromotionAnimation final : public Object { + public: + object_ptr<PremiumFeature> feature_; + object_ptr<animation> animation_; + + premiumFeaturePromotionAnimation(); + + premiumFeaturePromotionAnimation(object_ptr<PremiumFeature> &&feature_, object_ptr<animation> &&animation_); + + static const std::int32_t ID = -1986155748; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumFeatures final : public Object { + public: + array<object_ptr<PremiumFeature>> features_; + array<object_ptr<premiumLimit>> limits_; + object_ptr<InternalLinkType> payment_link_; + + premiumFeatures(); + + premiumFeatures(array<object_ptr<PremiumFeature>> &&features_, array<object_ptr<premiumLimit>> &&limits_, object_ptr<InternalLinkType> &&payment_link_); + + static const std::int32_t ID = 1875162172; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimit final : public Object { + public: + object_ptr<PremiumLimitType> type_; + int32 default_value_; + int32 premium_value_; + + premiumLimit(); + + premiumLimit(object_ptr<PremiumLimitType> &&type_, int32 default_value_, int32 premium_value_); + + static const std::int32_t ID = 2127786726; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PremiumLimitType: public Object { + public: +}; + +class premiumLimitTypeSupergroupCount final : public PremiumLimitType { + public: + + premiumLimitTypeSupergroupCount(); + + static const std::int32_t ID = -247467131; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypePinnedChatCount final : public PremiumLimitType { + public: + + premiumLimitTypePinnedChatCount(); + + static const std::int32_t ID = -998947871; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypeCreatedPublicChatCount final : public PremiumLimitType { + public: + + premiumLimitTypeCreatedPublicChatCount(); + + static const std::int32_t ID = 446086841; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypeSavedAnimationCount final : public PremiumLimitType { + public: + + premiumLimitTypeSavedAnimationCount(); + + static const std::int32_t ID = -19759735; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypeFavoriteStickerCount final : public PremiumLimitType { + public: + + premiumLimitTypeFavoriteStickerCount(); + + static const std::int32_t ID = 639754787; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypeChatFilterCount final : public PremiumLimitType { + public: + + premiumLimitTypeChatFilterCount(); + + static const std::int32_t ID = -644517214; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypeChatFilterChosenChatCount final : public PremiumLimitType { + public: + + premiumLimitTypeChatFilterChosenChatCount(); + + static const std::int32_t ID = 2057969759; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypePinnedArchivedChatCount final : public PremiumLimitType { + public: + + premiumLimitTypePinnedArchivedChatCount(); + + static const std::int32_t ID = 1485515276; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypeCaptionLength final : public PremiumLimitType { + public: + + premiumLimitTypeCaptionLength(); + + static const std::int32_t ID = 293984314; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumLimitTypeBioLength final : public PremiumLimitType { + public: + + premiumLimitTypeBioLength(); + + static const std::int32_t ID = -1146976765; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumPaymentOption final : public Object { + public: + string currency_; + int53 amount_; + int32 discount_percentage_; + int32 month_count_; + string store_product_id_; + object_ptr<InternalLinkType> payment_link_; + + premiumPaymentOption(); + + premiumPaymentOption(string const ¤cy_, int53 amount_, int32 discount_percentage_, int32 month_count_, string const &store_product_id_, object_ptr<InternalLinkType> &&payment_link_); + + static const std::int32_t ID = -1945346126; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PremiumSource: public Object { + public: +}; + +class premiumSourceLimitExceeded final : public PremiumSource { + public: + object_ptr<PremiumLimitType> limit_type_; + + premiumSourceLimitExceeded(); + + explicit premiumSourceLimitExceeded(object_ptr<PremiumLimitType> &&limit_type_); + + static const std::int32_t ID = -2052159742; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumSourceFeature final : public PremiumSource { + public: + object_ptr<PremiumFeature> feature_; + + premiumSourceFeature(); + + explicit premiumSourceFeature(object_ptr<PremiumFeature> &&feature_); + + static const std::int32_t ID = 445813541; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumSourceLink final : public PremiumSource { + public: + string referrer_; + + premiumSourceLink(); + + explicit premiumSourceLink(string const &referrer_); + + static const std::int32_t ID = 2135071132; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumSourceSettings final : public PremiumSource { + public: + + premiumSourceSettings(); + + static const std::int32_t ID = -285702859; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumState final : public Object { + public: + object_ptr<formattedText> state_; + array<object_ptr<premiumPaymentOption>> payment_options_; + array<object_ptr<premiumFeaturePromotionAnimation>> animations_; + + premiumState(); + + premiumState(object_ptr<formattedText> &&state_, array<object_ptr<premiumPaymentOption>> &&payment_options_, array<object_ptr<premiumFeaturePromotionAnimation>> &&animations_); + + static const std::int32_t ID = -1502199392; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class profilePhoto final : public Object { + public: + int64 id_; + object_ptr<file> small_; + object_ptr<file> big_; + object_ptr<minithumbnail> minithumbnail_; + bool has_animation_; + + profilePhoto(); + + profilePhoto(int64 id_, object_ptr<file> &&small_, object_ptr<file> &&big_, object_ptr<minithumbnail> &&minithumbnail_, bool has_animation_); + + static const std::int32_t ID = -131097523; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class proxies final : public Object { + public: + array<object_ptr<proxy>> proxies_; + + proxies(); + + explicit proxies(array<object_ptr<proxy>> &&proxies_); + + static const std::int32_t ID = 1200447205; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class proxy final : public Object { + public: + int32 id_; + string server_; + int32 port_; + int32 last_used_date_; + bool is_enabled_; + object_ptr<ProxyType> type_; + + proxy(); + + proxy(int32 id_, string const &server_, int32 port_, int32 last_used_date_, bool is_enabled_, object_ptr<ProxyType> &&type_); + + static const std::int32_t ID = 196049779; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ProxyType: public Object { + public: +}; + +class proxyTypeSocks5 final : public ProxyType { + public: + string username_; + string password_; + + proxyTypeSocks5(); + + proxyTypeSocks5(string const &username_, string const &password_); + + static const std::int32_t ID = -890027341; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class proxyTypeHttp final : public ProxyType { + public: + string username_; + string password_; + bool http_only_; + + proxyTypeHttp(); + + proxyTypeHttp(string const &username_, string const &password_, bool http_only_); + + static const std::int32_t ID = -1547188361; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class proxyTypeMtproto final : public ProxyType { + public: + string secret_; + + proxyTypeMtproto(); + + explicit proxyTypeMtproto(string const &secret_); + + static const std::int32_t ID = -1964826627; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PublicChatType: public Object { + public: +}; + +class publicChatTypeHasUsername final : public PublicChatType { + public: + + publicChatTypeHasUsername(); + + static const std::int32_t ID = 350789758; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class publicChatTypeIsLocationBased final : public PublicChatType { + public: + + publicChatTypeIsLocationBased(); + + static const std::int32_t ID = 1183735952; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PushMessageContent: public Object { + public: +}; + +class pushMessageContentHidden final : public PushMessageContent { + public: + bool is_pinned_; + + pushMessageContentHidden(); + + explicit pushMessageContentHidden(bool is_pinned_); + + static const std::int32_t ID = -316950436; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentAnimation final : public PushMessageContent { + public: + object_ptr<animation> animation_; + string caption_; + bool is_pinned_; + + pushMessageContentAnimation(); + + pushMessageContentAnimation(object_ptr<animation> &&animation_, string const &caption_, bool is_pinned_); + + static const std::int32_t ID = 1034215396; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentAudio final : public PushMessageContent { + public: + object_ptr<audio> audio_; + bool is_pinned_; + + pushMessageContentAudio(); + + pushMessageContentAudio(object_ptr<audio> &&audio_, bool is_pinned_); + + static const std::int32_t ID = 381581426; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentContact final : public PushMessageContent { + public: + string name_; + bool is_pinned_; + + pushMessageContentContact(); + + pushMessageContentContact(string const &name_, bool is_pinned_); + + static const std::int32_t ID = -12219820; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentContactRegistered final : public PushMessageContent { + public: + + pushMessageContentContactRegistered(); + + static const std::int32_t ID = -303962720; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentDocument final : public PushMessageContent { + public: + object_ptr<document> document_; + bool is_pinned_; + + pushMessageContentDocument(); + + pushMessageContentDocument(object_ptr<document> &&document_, bool is_pinned_); + + static const std::int32_t ID = -458379775; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentGame final : public PushMessageContent { + public: + string title_; + bool is_pinned_; + + pushMessageContentGame(); + + pushMessageContentGame(string const &title_, bool is_pinned_); + + static const std::int32_t ID = -515131109; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentGameScore final : public PushMessageContent { + public: + string title_; + int32 score_; + bool is_pinned_; + + pushMessageContentGameScore(); + + pushMessageContentGameScore(string const &title_, int32 score_, bool is_pinned_); + + static const std::int32_t ID = 901303688; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentInvoice final : public PushMessageContent { + public: + string price_; + bool is_pinned_; + + pushMessageContentInvoice(); + + pushMessageContentInvoice(string const &price_, bool is_pinned_); + + static const std::int32_t ID = -1731687492; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentLocation final : public PushMessageContent { + public: + bool is_live_; + bool is_pinned_; + + pushMessageContentLocation(); + + pushMessageContentLocation(bool is_live_, bool is_pinned_); + + static const std::int32_t ID = -1288005709; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentPhoto final : public PushMessageContent { + public: + object_ptr<photo> photo_; + string caption_; + bool is_secret_; + bool is_pinned_; + + pushMessageContentPhoto(); + + pushMessageContentPhoto(object_ptr<photo> &&photo_, string const &caption_, bool is_secret_, bool is_pinned_); + + static const std::int32_t ID = 140631122; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentPoll final : public PushMessageContent { + public: + string question_; + bool is_regular_; + bool is_pinned_; + + pushMessageContentPoll(); + + pushMessageContentPoll(string const &question_, bool is_regular_, bool is_pinned_); + + static const std::int32_t ID = -44403654; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentScreenshotTaken final : public PushMessageContent { + public: + + pushMessageContentScreenshotTaken(); + + static const std::int32_t ID = 214245369; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentSticker final : public PushMessageContent { + public: + object_ptr<sticker> sticker_; + string emoji_; + bool is_pinned_; + + pushMessageContentSticker(); + + pushMessageContentSticker(object_ptr<sticker> &&sticker_, string const &emoji_, bool is_pinned_); + + static const std::int32_t ID = 1553513939; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentText final : public PushMessageContent { + public: + string text_; + bool is_pinned_; + + pushMessageContentText(); + + pushMessageContentText(string const &text_, bool is_pinned_); + + static const std::int32_t ID = 274587305; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentVideo final : public PushMessageContent { + public: + object_ptr<video> video_; + string caption_; + bool is_secret_; + bool is_pinned_; + + pushMessageContentVideo(); + + pushMessageContentVideo(object_ptr<video> &&video_, string const &caption_, bool is_secret_, bool is_pinned_); + + static const std::int32_t ID = 310038831; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentVideoNote final : public PushMessageContent { + public: + object_ptr<videoNote> video_note_; + bool is_pinned_; + + pushMessageContentVideoNote(); + + pushMessageContentVideoNote(object_ptr<videoNote> &&video_note_, bool is_pinned_); + + static const std::int32_t ID = -1122764417; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentVoiceNote final : public PushMessageContent { + public: + object_ptr<voiceNote> voice_note_; + bool is_pinned_; + + pushMessageContentVoiceNote(); + + pushMessageContentVoiceNote(object_ptr<voiceNote> &&voice_note_, bool is_pinned_); + + static const std::int32_t ID = 88910987; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentBasicGroupChatCreate final : public PushMessageContent { + public: + + pushMessageContentBasicGroupChatCreate(); + + static const std::int32_t ID = -2114855172; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentChatAddMembers final : public PushMessageContent { + public: + string member_name_; + bool is_current_user_; + bool is_returned_; + + pushMessageContentChatAddMembers(); + + pushMessageContentChatAddMembers(string const &member_name_, bool is_current_user_, bool is_returned_); + + static const std::int32_t ID = -1087145158; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentChatChangePhoto final : public PushMessageContent { + public: + + pushMessageContentChatChangePhoto(); + + static const std::int32_t ID = -1114222051; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentChatChangeTitle final : public PushMessageContent { + public: + string title_; + + pushMessageContentChatChangeTitle(); + + explicit pushMessageContentChatChangeTitle(string const &title_); + + static const std::int32_t ID = -1964902749; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentChatSetTheme final : public PushMessageContent { + public: + string theme_name_; + + pushMessageContentChatSetTheme(); + + explicit pushMessageContentChatSetTheme(string const &theme_name_); + + static const std::int32_t ID = 173882216; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentChatDeleteMember final : public PushMessageContent { + public: + string member_name_; + bool is_current_user_; + bool is_left_; + + pushMessageContentChatDeleteMember(); + + pushMessageContentChatDeleteMember(string const &member_name_, bool is_current_user_, bool is_left_); + + static const std::int32_t ID = 598714783; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentChatJoinByLink final : public PushMessageContent { + public: + + pushMessageContentChatJoinByLink(); + + static const std::int32_t ID = 1553719113; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentChatJoinByRequest final : public PushMessageContent { + public: + + pushMessageContentChatJoinByRequest(); + + static const std::int32_t ID = -205823627; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentRecurringPayment final : public PushMessageContent { + public: + string amount_; + + pushMessageContentRecurringPayment(); + + explicit pushMessageContentRecurringPayment(string const &amount_); + + static const std::int32_t ID = 1619211802; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentMessageForwards final : public PushMessageContent { + public: + int32 total_count_; + + pushMessageContentMessageForwards(); + + explicit pushMessageContentMessageForwards(int32 total_count_); + + static const std::int32_t ID = -1913083876; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushMessageContentMediaAlbum final : public PushMessageContent { + public: + int32 total_count_; + bool has_photos_; + bool has_videos_; + bool has_audios_; + bool has_documents_; + + pushMessageContentMediaAlbum(); + + pushMessageContentMediaAlbum(int32 total_count_, bool has_photos_, bool has_videos_, bool has_audios_, bool has_documents_); + + static const std::int32_t ID = -748426897; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pushReceiverId final : public Object { + public: + int64 id_; + + pushReceiverId(); + + explicit pushReceiverId(int64 id_); + + static const std::int32_t ID = 371056428; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ReactionType: public Object { + public: +}; + +class reactionTypeEmoji final : public ReactionType { + public: + string emoji_; + + reactionTypeEmoji(); + + explicit reactionTypeEmoji(string const &emoji_); + + static const std::int32_t ID = -1942084920; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reactionTypeCustomEmoji final : public ReactionType { + public: + int64 custom_emoji_id_; + + reactionTypeCustomEmoji(); + + explicit reactionTypeCustomEmoji(int64 custom_emoji_id_); + + static const std::int32_t ID = -989117709; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recommendedChatFilter final : public Object { + public: + object_ptr<chatFilter> filter_; + string description_; + + recommendedChatFilter(); + + recommendedChatFilter(object_ptr<chatFilter> &&filter_, string const &description_); + + static const std::int32_t ID = 36048610; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recommendedChatFilters final : public Object { + public: + array<object_ptr<recommendedChatFilter>> chat_filters_; + + recommendedChatFilters(); + + explicit recommendedChatFilters(array<object_ptr<recommendedChatFilter>> &&chat_filters_); + + static const std::int32_t ID = -263416880; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recoveryEmailAddress final : public Object { + public: + string recovery_email_address_; + + recoveryEmailAddress(); + + explicit recoveryEmailAddress(string const &recovery_email_address_); + + static const std::int32_t ID = 1290526187; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class remoteFile final : public Object { + public: + string id_; + string unique_id_; + bool is_uploading_active_; + bool is_uploading_completed_; + int53 uploaded_size_; + + remoteFile(); + + remoteFile(string const &id_, string const &unique_id_, bool is_uploading_active_, bool is_uploading_completed_, int53 uploaded_size_); + + static const std::int32_t ID = 747731030; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ReplyMarkup: public Object { + public: +}; + +class replyMarkupRemoveKeyboard final : public ReplyMarkup { + public: + bool is_personal_; + + replyMarkupRemoveKeyboard(); + + explicit replyMarkupRemoveKeyboard(bool is_personal_); + + static const std::int32_t ID = -691252879; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replyMarkupForceReply final : public ReplyMarkup { + public: + bool is_personal_; + string input_field_placeholder_; + + replyMarkupForceReply(); + + replyMarkupForceReply(bool is_personal_, string const &input_field_placeholder_); + + static const std::int32_t ID = 1101461919; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replyMarkupShowKeyboard final : public ReplyMarkup { + public: + array<array<object_ptr<keyboardButton>>> rows_; + bool resize_keyboard_; + bool one_time_; + bool is_personal_; + string input_field_placeholder_; + + replyMarkupShowKeyboard(); + + replyMarkupShowKeyboard(array<array<object_ptr<keyboardButton>>> &&rows_, bool resize_keyboard_, bool one_time_, bool is_personal_, string const &input_field_placeholder_); + + static const std::int32_t ID = -64985802; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replyMarkupInlineKeyboard final : public ReplyMarkup { + public: + array<array<object_ptr<inlineKeyboardButton>>> rows_; + + replyMarkupInlineKeyboard(); + + explicit replyMarkupInlineKeyboard(array<array<object_ptr<inlineKeyboardButton>>> &&rows_); + + static const std::int32_t ID = -619317658; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ResetPasswordResult: public Object { + public: +}; + +class resetPasswordResultOk final : public ResetPasswordResult { + public: + + resetPasswordResultOk(); + + static const std::int32_t ID = -1397267463; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resetPasswordResultPending final : public ResetPasswordResult { + public: + int32 pending_reset_date_; + + resetPasswordResultPending(); + + explicit resetPasswordResultPending(int32 pending_reset_date_); + + static const std::int32_t ID = 1193925721; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resetPasswordResultDeclined final : public ResetPasswordResult { + public: + int32 retry_date_; + + resetPasswordResultDeclined(); + + explicit resetPasswordResultDeclined(int32 retry_date_); + + static const std::int32_t ID = -1202200373; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class RichText: public Object { + public: +}; + +class richTextPlain final : public RichText { + public: + string text_; + + richTextPlain(); + + explicit richTextPlain(string const &text_); + + static const std::int32_t ID = 482617702; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextBold final : public RichText { + public: + object_ptr<RichText> text_; + + richTextBold(); + + explicit richTextBold(object_ptr<RichText> &&text_); + + static const std::int32_t ID = 1670844268; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextItalic final : public RichText { + public: + object_ptr<RichText> text_; + + richTextItalic(); + + explicit richTextItalic(object_ptr<RichText> &&text_); + + static const std::int32_t ID = 1853354047; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextUnderline final : public RichText { + public: + object_ptr<RichText> text_; + + richTextUnderline(); + + explicit richTextUnderline(object_ptr<RichText> &&text_); + + static const std::int32_t ID = -536019572; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextStrikethrough final : public RichText { + public: + object_ptr<RichText> text_; + + richTextStrikethrough(); + + explicit richTextStrikethrough(object_ptr<RichText> &&text_); + + static const std::int32_t ID = 723413585; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextFixed final : public RichText { + public: + object_ptr<RichText> text_; + + richTextFixed(); + + explicit richTextFixed(object_ptr<RichText> &&text_); + + static const std::int32_t ID = -1271496249; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextUrl final : public RichText { + public: + object_ptr<RichText> text_; + string url_; + bool is_cached_; + + richTextUrl(); + + richTextUrl(object_ptr<RichText> &&text_, string const &url_, bool is_cached_); + + static const std::int32_t ID = 83939092; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextEmailAddress final : public RichText { + public: + object_ptr<RichText> text_; + string email_address_; + + richTextEmailAddress(); + + richTextEmailAddress(object_ptr<RichText> &&text_, string const &email_address_); + + static const std::int32_t ID = 40018679; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextSubscript final : public RichText { + public: + object_ptr<RichText> text_; + + richTextSubscript(); + + explicit richTextSubscript(object_ptr<RichText> &&text_); + + static const std::int32_t ID = -868197812; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextSuperscript final : public RichText { + public: + object_ptr<RichText> text_; + + richTextSuperscript(); + + explicit richTextSuperscript(object_ptr<RichText> &&text_); + + static const std::int32_t ID = -382241437; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextMarked final : public RichText { + public: + object_ptr<RichText> text_; + + richTextMarked(); + + explicit richTextMarked(object_ptr<RichText> &&text_); + + static const std::int32_t ID = -1271999614; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextPhoneNumber final : public RichText { + public: + object_ptr<RichText> text_; + string phone_number_; + + richTextPhoneNumber(); + + richTextPhoneNumber(object_ptr<RichText> &&text_, string const &phone_number_); + + static const std::int32_t ID = 128521539; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextIcon final : public RichText { + public: + object_ptr<document> document_; + int32 width_; + int32 height_; + + richTextIcon(); + + richTextIcon(object_ptr<document> &&document_, int32 width_, int32 height_); + + static const std::int32_t ID = -1480316158; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextReference final : public RichText { + public: + object_ptr<RichText> text_; + string anchor_name_; + string url_; + + richTextReference(); + + richTextReference(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_); + + static const std::int32_t ID = -1147530634; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextAnchor final : public RichText { + public: + string name_; + + richTextAnchor(); + + explicit richTextAnchor(string const &name_); + + static const std::int32_t ID = 1316950068; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTextAnchorLink final : public RichText { + public: + object_ptr<RichText> text_; + string anchor_name_; + string url_; + + richTextAnchorLink(); + + richTextAnchorLink(object_ptr<RichText> &&text_, string const &anchor_name_, string const &url_); + + static const std::int32_t ID = -1541418282; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class richTexts final : public RichText { + public: + array<object_ptr<RichText>> texts_; + + richTexts(); + + explicit richTexts(array<object_ptr<RichText>> &&texts_); + + static const std::int32_t ID = 1647457821; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rtmpUrl final : public Object { + public: + string url_; + string stream_key_; + + rtmpUrl(); + + rtmpUrl(string const &url_, string const &stream_key_); + + static const std::int32_t ID = 1009302613; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class savedCredentials final : public Object { + public: + string id_; + string title_; + + savedCredentials(); + + savedCredentials(string const &id_, string const &title_); + + static const std::int32_t ID = -370273060; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class scopeNotificationSettings final : public Object { + public: + int32 mute_for_; + int64 sound_id_; + bool show_preview_; + bool disable_pinned_message_notifications_; + bool disable_mention_notifications_; + + scopeNotificationSettings(); + + scopeNotificationSettings(int32 mute_for_, int64 sound_id_, bool show_preview_, bool disable_pinned_message_notifications_, bool disable_mention_notifications_); + + static const std::int32_t ID = -1383458661; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SearchMessagesFilter: public Object { + public: +}; + +class searchMessagesFilterEmpty final : public SearchMessagesFilter { + public: + + searchMessagesFilterEmpty(); + + static const std::int32_t ID = -869395657; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterAnimation final : public SearchMessagesFilter { + public: + + searchMessagesFilterAnimation(); + + static const std::int32_t ID = -155713339; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterAudio final : public SearchMessagesFilter { + public: + + searchMessagesFilterAudio(); + + static const std::int32_t ID = 867505275; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterDocument final : public SearchMessagesFilter { + public: + + searchMessagesFilterDocument(); + + static const std::int32_t ID = 1526331215; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterPhoto final : public SearchMessagesFilter { + public: + + searchMessagesFilterPhoto(); + + static const std::int32_t ID = 925932293; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterVideo final : public SearchMessagesFilter { + public: + + searchMessagesFilterVideo(); + + static const std::int32_t ID = 115538222; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterVoiceNote final : public SearchMessagesFilter { + public: + + searchMessagesFilterVoiceNote(); + + static const std::int32_t ID = 1841439357; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterPhotoAndVideo final : public SearchMessagesFilter { + public: + + searchMessagesFilterPhotoAndVideo(); + + static const std::int32_t ID = 1352130963; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterUrl final : public SearchMessagesFilter { + public: + + searchMessagesFilterUrl(); + + static const std::int32_t ID = -1828724341; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterChatPhoto final : public SearchMessagesFilter { + public: + + searchMessagesFilterChatPhoto(); + + static const std::int32_t ID = -1247751329; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterVideoNote final : public SearchMessagesFilter { + public: + + searchMessagesFilterVideoNote(); + + static const std::int32_t ID = 564323321; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterVoiceAndVideoNote final : public SearchMessagesFilter { + public: + + searchMessagesFilterVoiceAndVideoNote(); + + static const std::int32_t ID = 664174819; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterMention final : public SearchMessagesFilter { + public: + + searchMessagesFilterMention(); + + static const std::int32_t ID = 2001258652; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterUnreadMention final : public SearchMessagesFilter { + public: + + searchMessagesFilterUnreadMention(); + + static const std::int32_t ID = -95769149; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterUnreadReaction final : public SearchMessagesFilter { + public: + + searchMessagesFilterUnreadReaction(); + + static const std::int32_t ID = -1379651328; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterFailedToSend final : public SearchMessagesFilter { + public: + + searchMessagesFilterFailedToSend(); + + static const std::int32_t ID = -596322564; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessagesFilterPinned final : public SearchMessagesFilter { + public: + + searchMessagesFilterPinned(); + + static const std::int32_t ID = 371805512; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class seconds final : public Object { + public: + double seconds_; + + seconds(); + + explicit seconds(double seconds_); + + static const std::int32_t ID = 959899022; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secretChat final : public Object { + public: + int32 id_; + int53 user_id_; + object_ptr<SecretChatState> state_; + bool is_outbound_; + bytes key_hash_; + int32 layer_; + + secretChat(); + + secretChat(int32 id_, int53 user_id_, object_ptr<SecretChatState> &&state_, bool is_outbound_, bytes const &key_hash_, int32 layer_); + + static const std::int32_t ID = -676918325; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SecretChatState: public Object { + public: +}; + +class secretChatStatePending final : public SecretChatState { + public: + + secretChatStatePending(); + + static const std::int32_t ID = -1637050756; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secretChatStateReady final : public SecretChatState { + public: + + secretChatStateReady(); + + static const std::int32_t ID = -1611352087; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secretChatStateClosed final : public SecretChatState { + public: + + secretChatStateClosed(); + + static const std::int32_t ID = -1945106707; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sentWebAppMessage final : public Object { + public: + string inline_message_id_; + + sentWebAppMessage(); + + explicit sentWebAppMessage(string const &inline_message_id_); + + static const std::int32_t ID = 1243934400; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class session final : public Object { + public: + int64 id_; + bool is_current_; + bool is_password_pending_; + bool can_accept_secret_chats_; + bool can_accept_calls_; + object_ptr<SessionType> type_; + int32 api_id_; + string application_name_; + string application_version_; + bool is_official_application_; + string device_model_; + string platform_; + string system_version_; + int32 log_in_date_; + int32 last_active_date_; + string ip_; + string country_; + string region_; + + session(); + + session(int64 id_, bool is_current_, bool is_password_pending_, bool can_accept_secret_chats_, bool can_accept_calls_, object_ptr<SessionType> &&type_, int32 api_id_, string const &application_name_, string const &application_version_, bool is_official_application_, string const &device_model_, string const &platform_, string const &system_version_, int32 log_in_date_, int32 last_active_date_, string const &ip_, string const &country_, string const ®ion_); + + static const std::int32_t ID = -1961323642; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SessionType: public Object { + public: +}; + +class sessionTypeAndroid final : public SessionType { + public: + + sessionTypeAndroid(); + + static const std::int32_t ID = -2071764840; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeApple final : public SessionType { + public: + + sessionTypeApple(); + + static const std::int32_t ID = -1818635701; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeBrave final : public SessionType { + public: + + sessionTypeBrave(); + + static const std::int32_t ID = -1216812563; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeChrome final : public SessionType { + public: + + sessionTypeChrome(); + + static const std::int32_t ID = 1573464425; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeEdge final : public SessionType { + public: + + sessionTypeEdge(); + + static const std::int32_t ID = -538916005; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeFirefox final : public SessionType { + public: + + sessionTypeFirefox(); + + static const std::int32_t ID = 2122579364; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeIpad final : public SessionType { + public: + + sessionTypeIpad(); + + static const std::int32_t ID = 1294647023; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeIphone final : public SessionType { + public: + + sessionTypeIphone(); + + static const std::int32_t ID = 97616573; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeLinux final : public SessionType { + public: + + sessionTypeLinux(); + + static const std::int32_t ID = -1487422871; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeMac final : public SessionType { + public: + + sessionTypeMac(); + + static const std::int32_t ID = -612250975; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeOpera final : public SessionType { + public: + + sessionTypeOpera(); + + static const std::int32_t ID = -1463673734; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeSafari final : public SessionType { + public: + + sessionTypeSafari(); + + static const std::int32_t ID = 710646873; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeUbuntu final : public SessionType { + public: + + sessionTypeUbuntu(); + + static const std::int32_t ID = 1569680069; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeUnknown final : public SessionType { + public: + + sessionTypeUnknown(); + + static const std::int32_t ID = 233926704; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeVivaldi final : public SessionType { + public: + + sessionTypeVivaldi(); + + static const std::int32_t ID = 1120503279; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeWindows final : public SessionType { + public: + + sessionTypeWindows(); + + static const std::int32_t ID = -1676512600; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessionTypeXbox final : public SessionType { + public: + + sessionTypeXbox(); + + static const std::int32_t ID = 1856216492; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sessions final : public Object { + public: + array<object_ptr<session>> sessions_; + int32 inactive_session_ttl_days_; + + sessions(); + + sessions(array<object_ptr<session>> &&sessions_, int32 inactive_session_ttl_days_); + + static const std::int32_t ID = 842912274; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class shippingOption final : public Object { + public: + string id_; + string title_; + array<object_ptr<labeledPricePart>> price_parts_; + + shippingOption(); + + shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPricePart>> &&price_parts_); + + static const std::int32_t ID = 1425690001; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SpeechRecognitionResult: public Object { + public: +}; + +class speechRecognitionResultPending final : public SpeechRecognitionResult { + public: + string partial_text_; + + speechRecognitionResultPending(); + + explicit speechRecognitionResultPending(string const &partial_text_); + + static const std::int32_t ID = -1631810048; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class speechRecognitionResultText final : public SpeechRecognitionResult { + public: + string text_; + + speechRecognitionResultText(); + + explicit speechRecognitionResultText(string const &text_); + + static const std::int32_t ID = -2132377123; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class speechRecognitionResultError final : public SpeechRecognitionResult { + public: + object_ptr<error> error_; + + speechRecognitionResultError(); + + explicit speechRecognitionResultError(object_ptr<error> &&error_); + + static const std::int32_t ID = 164774908; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sponsoredMessage final : public Object { + public: + int53 message_id_; + bool is_recommended_; + int53 sponsor_chat_id_; + object_ptr<chatInviteLinkInfo> sponsor_chat_info_; + bool show_chat_photo_; + object_ptr<InternalLinkType> link_; + object_ptr<MessageContent> content_; + + sponsoredMessage(); + + sponsoredMessage(int53 message_id_, bool is_recommended_, int53 sponsor_chat_id_, object_ptr<chatInviteLinkInfo> &&sponsor_chat_info_, bool show_chat_photo_, object_ptr<InternalLinkType> &&link_, object_ptr<MessageContent> &&content_); + + static const std::int32_t ID = -613319051; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sponsoredMessages final : public Object { + public: + array<object_ptr<sponsoredMessage>> messages_; + int32 messages_between_; + + sponsoredMessages(); + + sponsoredMessages(array<object_ptr<sponsoredMessage>> &&messages_, int32 messages_between_); + + static const std::int32_t ID = -537674389; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StatisticalGraph: public Object { + public: +}; + +class statisticalGraphData final : public StatisticalGraph { + public: + string json_data_; + string zoom_token_; + + statisticalGraphData(); + + statisticalGraphData(string const &json_data_, string const &zoom_token_); + + static const std::int32_t ID = -1988940244; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statisticalGraphAsync final : public StatisticalGraph { + public: + string token_; + + statisticalGraphAsync(); + + explicit statisticalGraphAsync(string const &token_); + + static const std::int32_t ID = 435891103; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statisticalGraphError final : public StatisticalGraph { + public: + string error_message_; + + statisticalGraphError(); + + explicit statisticalGraphError(string const &error_message_); + + static const std::int32_t ID = -1006788526; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statisticalValue final : public Object { + public: + double value_; + double previous_value_; + double growth_rate_percentage_; + + statisticalValue(); + + statisticalValue(double value_, double previous_value_, double growth_rate_percentage_); + + static const std::int32_t ID = 1651337846; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sticker final : public Object { + public: + int64 set_id_; + int32 width_; + int32 height_; + string emoji_; + object_ptr<StickerFormat> format_; + object_ptr<StickerType> type_; + object_ptr<maskPosition> mask_position_; + int64 custom_emoji_id_; + array<object_ptr<closedVectorPath>> outline_; + object_ptr<thumbnail> thumbnail_; + bool is_premium_; + object_ptr<file> premium_animation_; + object_ptr<file> sticker_; + + sticker(); + + sticker(int64 set_id_, int32 width_, int32 height_, string const &emoji_, object_ptr<StickerFormat> &&format_, object_ptr<StickerType> &&type_, object_ptr<maskPosition> &&mask_position_, int64 custom_emoji_id_, array<object_ptr<closedVectorPath>> &&outline_, object_ptr<thumbnail> &&thumbnail_, bool is_premium_, object_ptr<file> &&premium_animation_, object_ptr<file> &&sticker_); + + static const std::int32_t ID = -1108220879; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StickerFormat: public Object { + public: +}; + +class stickerFormatWebp final : public StickerFormat { + public: + + stickerFormatWebp(); + + static const std::int32_t ID = -2123043040; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerFormatTgs final : public StickerFormat { + public: + + stickerFormatTgs(); + + static const std::int32_t ID = 1614588662; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerFormatWebm final : public StickerFormat { + public: + + stickerFormatWebm(); + + static const std::int32_t ID = -2070162097; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerSet final : public Object { + public: + int64 id_; + string title_; + string name_; + object_ptr<thumbnail> thumbnail_; + array<object_ptr<closedVectorPath>> thumbnail_outline_; + bool is_installed_; + bool is_archived_; + bool is_official_; + object_ptr<StickerFormat> sticker_format_; + object_ptr<StickerType> sticker_type_; + bool is_viewed_; + array<object_ptr<sticker>> stickers_; + array<object_ptr<emojis>> emojis_; + + stickerSet(); + + stickerSet(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, array<object_ptr<sticker>> &&stickers_, array<object_ptr<emojis>> &&emojis_); + + static const std::int32_t ID = 1899632064; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerSetInfo final : public Object { + public: + int64 id_; + string title_; + string name_; + object_ptr<thumbnail> thumbnail_; + array<object_ptr<closedVectorPath>> thumbnail_outline_; + bool is_installed_; + bool is_archived_; + bool is_official_; + object_ptr<StickerFormat> sticker_format_; + object_ptr<StickerType> sticker_type_; + bool is_viewed_; + int32 size_; + array<object_ptr<sticker>> covers_; + + stickerSetInfo(); + + stickerSetInfo(int64 id_, string const &title_, string const &name_, object_ptr<thumbnail> &&thumbnail_, array<object_ptr<closedVectorPath>> &&thumbnail_outline_, bool is_installed_, bool is_archived_, bool is_official_, object_ptr<StickerFormat> &&sticker_format_, object_ptr<StickerType> &&sticker_type_, bool is_viewed_, int32 size_, array<object_ptr<sticker>> &&covers_); + + static const std::int32_t ID = 745543121; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerSets final : public Object { + public: + int32 total_count_; + array<object_ptr<stickerSetInfo>> sets_; + + stickerSets(); + + stickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_); + + static const std::int32_t ID = -1883828812; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StickerType: public Object { + public: +}; + +class stickerTypeRegular final : public StickerType { + public: + + stickerTypeRegular(); + + static const std::int32_t ID = 56345973; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerTypeMask final : public StickerType { + public: + + stickerTypeMask(); + + static const std::int32_t ID = -1765394796; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerTypeCustomEmoji final : public StickerType { + public: + + stickerTypeCustomEmoji(); + + static const std::int32_t ID = -120752249; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickers final : public Object { + public: + array<object_ptr<sticker>> stickers_; + + stickers(); + + explicit stickers(array<object_ptr<sticker>> &&stickers_); + + static const std::int32_t ID = 1974859260; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storageStatistics final : public Object { + public: + int53 size_; + int32 count_; + array<object_ptr<storageStatisticsByChat>> by_chat_; + + storageStatistics(); + + storageStatistics(int53 size_, int32 count_, array<object_ptr<storageStatisticsByChat>> &&by_chat_); + + static const std::int32_t ID = 217237013; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storageStatisticsByChat final : public Object { + public: + int53 chat_id_; + int53 size_; + int32 count_; + array<object_ptr<storageStatisticsByFileType>> by_file_type_; + + storageStatisticsByChat(); + + storageStatisticsByChat(int53 chat_id_, int53 size_, int32 count_, array<object_ptr<storageStatisticsByFileType>> &&by_file_type_); + + static const std::int32_t ID = 635434531; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storageStatisticsByFileType final : public Object { + public: + object_ptr<FileType> file_type_; + int53 size_; + int32 count_; + + storageStatisticsByFileType(); + + storageStatisticsByFileType(object_ptr<FileType> &&file_type_, int53 size_, int32 count_); + + static const std::int32_t ID = 714012840; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storageStatisticsFast final : public Object { + public: + int53 files_size_; + int32 file_count_; + int53 database_size_; + int53 language_pack_database_size_; + int53 log_size_; + + storageStatisticsFast(); + + storageStatisticsFast(int53 files_size_, int32 file_count_, int53 database_size_, int53 language_pack_database_size_, int53 log_size_); + + static const std::int32_t ID = -884922271; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StorePaymentPurpose: public Object { + public: +}; + +class storePaymentPurposePremiumSubscription final : public StorePaymentPurpose { + public: + bool is_restore_; + + storePaymentPurposePremiumSubscription(); + + explicit storePaymentPurposePremiumSubscription(bool is_restore_); + + static const std::int32_t ID = -1497906096; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storePaymentPurposeGiftedPremium final : public StorePaymentPurpose { + public: + int53 user_id_; + string currency_; + int53 amount_; + + storePaymentPurposeGiftedPremium(); + + storePaymentPurposeGiftedPremium(int53 user_id_, string const ¤cy_, int53 amount_); + + static const std::int32_t ID = 1916846289; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SuggestedAction: public Object { + public: +}; + +class suggestedActionEnableArchiveAndMuteNewChats final : public SuggestedAction { + public: + + suggestedActionEnableArchiveAndMuteNewChats(); + + static const std::int32_t ID = 2017586255; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class suggestedActionCheckPassword final : public SuggestedAction { + public: + + suggestedActionCheckPassword(); + + static const std::int32_t ID = 1910534839; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class suggestedActionCheckPhoneNumber final : public SuggestedAction { + public: + + suggestedActionCheckPhoneNumber(); + + static const std::int32_t ID = 648771563; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class suggestedActionViewChecksHint final : public SuggestedAction { + public: + + suggestedActionViewChecksHint(); + + static const std::int32_t ID = 891303239; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class suggestedActionConvertToBroadcastGroup final : public SuggestedAction { + public: + int53 supergroup_id_; + + suggestedActionConvertToBroadcastGroup(); + + explicit suggestedActionConvertToBroadcastGroup(int53 supergroup_id_); + + static const std::int32_t ID = -965071304; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class suggestedActionSetPassword final : public SuggestedAction { + public: + int32 authorization_delay_; + + suggestedActionSetPassword(); + + explicit suggestedActionSetPassword(int32 authorization_delay_); + + static const std::int32_t ID = 1863613848; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroup final : public Object { + public: + int53 id_; + object_ptr<usernames> usernames_; + int32 date_; + object_ptr<ChatMemberStatus> status_; + int32 member_count_; + bool has_linked_chat_; + bool has_location_; + bool sign_messages_; + bool join_to_send_messages_; + bool join_by_request_; + bool is_slow_mode_enabled_; + bool is_channel_; + bool is_broadcast_group_; + bool is_forum_; + bool is_verified_; + string restriction_reason_; + bool is_scam_; + bool is_fake_; + + supergroup(); + + supergroup(int53 id_, object_ptr<usernames> &&usernames_, int32 date_, object_ptr<ChatMemberStatus> &&status_, int32 member_count_, bool has_linked_chat_, bool has_location_, bool sign_messages_, bool join_to_send_messages_, bool join_by_request_, bool is_slow_mode_enabled_, bool is_channel_, bool is_broadcast_group_, bool is_forum_, bool is_verified_, string const &restriction_reason_, bool is_scam_, bool is_fake_); + + static const std::int32_t ID = -2002240425; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupFullInfo final : public Object { + public: + object_ptr<chatPhoto> photo_; + string description_; + int32 member_count_; + int32 administrator_count_; + int32 restricted_count_; + int32 banned_count_; + int53 linked_chat_id_; + int32 slow_mode_delay_; + double slow_mode_delay_expires_in_; + bool can_get_members_; + bool can_set_username_; + bool can_set_sticker_set_; + bool can_set_location_; + bool can_get_statistics_; + bool is_all_history_available_; + int64 sticker_set_id_; + object_ptr<chatLocation> location_; + object_ptr<chatInviteLink> invite_link_; + array<object_ptr<botCommands>> bot_commands_; + int53 upgraded_from_basic_group_id_; + int53 upgraded_from_max_message_id_; + + supergroupFullInfo(); + + supergroupFullInfo(object_ptr<chatPhoto> &&photo_, string const &description_, int32 member_count_, int32 administrator_count_, int32 restricted_count_, int32 banned_count_, int53 linked_chat_id_, int32 slow_mode_delay_, double slow_mode_delay_expires_in_, bool can_get_members_, bool can_set_username_, bool can_set_sticker_set_, bool can_set_location_, bool can_get_statistics_, bool is_all_history_available_, int64 sticker_set_id_, object_ptr<chatLocation> &&location_, object_ptr<chatInviteLink> &&invite_link_, array<object_ptr<botCommands>> &&bot_commands_, int53 upgraded_from_basic_group_id_, int53 upgraded_from_max_message_id_); + + static const std::int32_t ID = -1035719349; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SupergroupMembersFilter: public Object { + public: +}; + +class supergroupMembersFilterRecent final : public SupergroupMembersFilter { + public: + + supergroupMembersFilterRecent(); + + static const std::int32_t ID = 1178199509; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupMembersFilterContacts final : public SupergroupMembersFilter { + public: + string query_; + + supergroupMembersFilterContacts(); + + explicit supergroupMembersFilterContacts(string const &query_); + + static const std::int32_t ID = -1282910856; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupMembersFilterAdministrators final : public SupergroupMembersFilter { + public: + + supergroupMembersFilterAdministrators(); + + static const std::int32_t ID = -2097380265; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupMembersFilterSearch final : public SupergroupMembersFilter { + public: + string query_; + + supergroupMembersFilterSearch(); + + explicit supergroupMembersFilterSearch(string const &query_); + + static const std::int32_t ID = -1696358469; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupMembersFilterRestricted final : public SupergroupMembersFilter { + public: + string query_; + + supergroupMembersFilterRestricted(); + + explicit supergroupMembersFilterRestricted(string const &query_); + + static const std::int32_t ID = -1107800034; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupMembersFilterBanned final : public SupergroupMembersFilter { + public: + string query_; + + supergroupMembersFilterBanned(); + + explicit supergroupMembersFilterBanned(string const &query_); + + static const std::int32_t ID = -1210621683; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupMembersFilterMention final : public SupergroupMembersFilter { + public: + string query_; + int53 message_thread_id_; + + supergroupMembersFilterMention(); + + supergroupMembersFilterMention(string const &query_, int53 message_thread_id_); + + static const std::int32_t ID = 947915036; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class supergroupMembersFilterBots final : public SupergroupMembersFilter { + public: + + supergroupMembersFilterBots(); + + static const std::int32_t ID = 492138918; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class tMeUrl final : public Object { + public: + string url_; + object_ptr<TMeUrlType> type_; + + tMeUrl(); + + tMeUrl(string const &url_, object_ptr<TMeUrlType> &&type_); + + static const std::int32_t ID = -1140786622; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class TMeUrlType: public Object { + public: +}; + +class tMeUrlTypeUser final : public TMeUrlType { + public: + int53 user_id_; + + tMeUrlTypeUser(); + + explicit tMeUrlTypeUser(int53 user_id_); + + static const std::int32_t ID = 125336602; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class tMeUrlTypeSupergroup final : public TMeUrlType { + public: + int53 supergroup_id_; + + tMeUrlTypeSupergroup(); + + explicit tMeUrlTypeSupergroup(int53 supergroup_id_); + + static const std::int32_t ID = -1353369944; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class tMeUrlTypeChatInvite final : public TMeUrlType { + public: + object_ptr<chatInviteLinkInfo> info_; + + tMeUrlTypeChatInvite(); + + explicit tMeUrlTypeChatInvite(object_ptr<chatInviteLinkInfo> &&info_); + + static const std::int32_t ID = 313907785; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class tMeUrlTypeStickerSet final : public TMeUrlType { + public: + int64 sticker_set_id_; + + tMeUrlTypeStickerSet(); + + explicit tMeUrlTypeStickerSet(int64 sticker_set_id_); + + static const std::int32_t ID = 1602473196; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class tMeUrls final : public Object { + public: + array<object_ptr<tMeUrl>> urls_; + + tMeUrls(); + + explicit tMeUrls(array<object_ptr<tMeUrl>> &&urls_); + + static const std::int32_t ID = -1130595098; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class TargetChat: public Object { + public: +}; + +class targetChatCurrent final : public TargetChat { + public: + + targetChatCurrent(); + + static const std::int32_t ID = -416689904; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class targetChatChosen final : public TargetChat { + public: + bool allow_user_chats_; + bool allow_bot_chats_; + bool allow_group_chats_; + bool allow_channel_chats_; + + targetChatChosen(); + + targetChatChosen(bool allow_user_chats_, bool allow_bot_chats_, bool allow_group_chats_, bool allow_channel_chats_); + + static const std::int32_t ID = -307442990; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class targetChatInternalLink final : public TargetChat { + public: + object_ptr<InternalLinkType> link_; + + targetChatInternalLink(); + + explicit targetChatInternalLink(object_ptr<InternalLinkType> &&link_); + + static const std::int32_t ID = -579301408; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class temporaryPasswordState final : public Object { + public: + bool has_password_; + int32 valid_for_; + + temporaryPasswordState(); + + temporaryPasswordState(bool has_password_, int32 valid_for_); + + static const std::int32_t ID = 939837410; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class termsOfService final : public Object { + public: + object_ptr<formattedText> text_; + int32 min_user_age_; + bool show_popup_; + + termsOfService(); + + termsOfService(object_ptr<formattedText> &&text_, int32 min_user_age_, bool show_popup_); + + static const std::int32_t ID = 739422597; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testBytes final : public Object { + public: + bytes value_; + + testBytes(); + + explicit testBytes(bytes const &value_); + + static const std::int32_t ID = -1541225250; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testInt final : public Object { + public: + int32 value_; + + testInt(); + + explicit testInt(int32 value_); + + static const std::int32_t ID = -574804983; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testString final : public Object { + public: + string value_; + + testString(); + + explicit testString(string const &value_); + + static const std::int32_t ID = -27891572; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testVectorInt final : public Object { + public: + array<int32> value_; + + testVectorInt(); + + explicit testVectorInt(array<int32> &&value_); + + static const std::int32_t ID = 593682027; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testVectorIntObject final : public Object { + public: + array<object_ptr<testInt>> value_; + + testVectorIntObject(); + + explicit testVectorIntObject(array<object_ptr<testInt>> &&value_); + + static const std::int32_t ID = 125891546; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testVectorString final : public Object { + public: + array<string> value_; + + testVectorString(); + + explicit testVectorString(array<string> &&value_); + + static const std::int32_t ID = 79339995; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testVectorStringObject final : public Object { + public: + array<object_ptr<testString>> value_; + + testVectorStringObject(); + + explicit testVectorStringObject(array<object_ptr<testString>> &&value_); + + static const std::int32_t ID = 80780537; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class text final : public Object { + public: + string text_; + + text(); + + explicit text(string const &text_); + + static const std::int32_t ID = 578181272; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntities final : public Object { + public: + array<object_ptr<textEntity>> entities_; + + textEntities(); + + explicit textEntities(array<object_ptr<textEntity>> &&entities_); + + static const std::int32_t ID = -933199172; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntity final : public Object { + public: + int32 offset_; + int32 length_; + object_ptr<TextEntityType> type_; + + textEntity(); + + textEntity(int32 offset_, int32 length_, object_ptr<TextEntityType> &&type_); + + static const std::int32_t ID = -1951688280; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class TextEntityType: public Object { + public: +}; + +class textEntityTypeMention final : public TextEntityType { + public: + + textEntityTypeMention(); + + static const std::int32_t ID = 934535013; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeHashtag final : public TextEntityType { + public: + + textEntityTypeHashtag(); + + static const std::int32_t ID = -1023958307; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeCashtag final : public TextEntityType { + public: + + textEntityTypeCashtag(); + + static const std::int32_t ID = 1222915915; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeBotCommand final : public TextEntityType { + public: + + textEntityTypeBotCommand(); + + static const std::int32_t ID = -1150997581; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeUrl final : public TextEntityType { + public: + + textEntityTypeUrl(); + + static const std::int32_t ID = -1312762756; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeEmailAddress final : public TextEntityType { + public: + + textEntityTypeEmailAddress(); + + static const std::int32_t ID = 1425545249; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypePhoneNumber final : public TextEntityType { + public: + + textEntityTypePhoneNumber(); + + static const std::int32_t ID = -1160140246; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeBankCardNumber final : public TextEntityType { + public: + + textEntityTypeBankCardNumber(); + + static const std::int32_t ID = 105986320; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeBold final : public TextEntityType { + public: + + textEntityTypeBold(); + + static const std::int32_t ID = -1128210000; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeItalic final : public TextEntityType { + public: + + textEntityTypeItalic(); + + static const std::int32_t ID = -118253987; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeUnderline final : public TextEntityType { + public: + + textEntityTypeUnderline(); + + static const std::int32_t ID = 792317842; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeStrikethrough final : public TextEntityType { + public: + + textEntityTypeStrikethrough(); + + static const std::int32_t ID = 961529082; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeSpoiler final : public TextEntityType { + public: + + textEntityTypeSpoiler(); + + static const std::int32_t ID = 544019899; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeCode final : public TextEntityType { + public: + + textEntityTypeCode(); + + static const std::int32_t ID = -974534326; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypePre final : public TextEntityType { + public: + + textEntityTypePre(); + + static const std::int32_t ID = 1648958606; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypePreCode final : public TextEntityType { + public: + string language_; + + textEntityTypePreCode(); + + explicit textEntityTypePreCode(string const &language_); + + static const std::int32_t ID = -945325397; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeTextUrl final : public TextEntityType { + public: + string url_; + + textEntityTypeTextUrl(); + + explicit textEntityTypeTextUrl(string const &url_); + + static const std::int32_t ID = 445719651; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeMentionName final : public TextEntityType { + public: + int53 user_id_; + + textEntityTypeMentionName(); + + explicit textEntityTypeMentionName(int53 user_id_); + + static const std::int32_t ID = -1570974289; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeCustomEmoji final : public TextEntityType { + public: + int64 custom_emoji_id_; + + textEntityTypeCustomEmoji(); + + explicit textEntityTypeCustomEmoji(int64 custom_emoji_id_); + + static const std::int32_t ID = 1724820677; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEntityTypeMediaTimestamp final : public TextEntityType { + public: + int32 media_timestamp_; + + textEntityTypeMediaTimestamp(); + + explicit textEntityTypeMediaTimestamp(int32 media_timestamp_); + + static const std::int32_t ID = -1841898992; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class TextParseMode: public Object { + public: +}; + +class textParseModeMarkdown final : public TextParseMode { + public: + int32 version_; + + textParseModeMarkdown(); + + explicit textParseModeMarkdown(int32 version_); + + static const std::int32_t ID = 360073407; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textParseModeHTML final : public TextParseMode { + public: + + textParseModeHTML(); + + static const std::int32_t ID = 1660208627; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class themeParameters final : public Object { + public: + int32 background_color_; + int32 secondary_background_color_; + int32 text_color_; + int32 hint_color_; + int32 link_color_; + int32 button_color_; + int32 button_text_color_; + + themeParameters(); + + themeParameters(int32 background_color_, int32 secondary_background_color_, int32 text_color_, int32 hint_color_, int32 link_color_, int32 button_color_, int32 button_text_color_); + + static const std::int32_t ID = -644809106; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class themeSettings final : public Object { + public: + int32 accent_color_; + object_ptr<background> background_; + object_ptr<BackgroundFill> outgoing_message_fill_; + bool animate_outgoing_message_fill_; + int32 outgoing_message_accent_color_; + + themeSettings(); + + themeSettings(int32 accent_color_, object_ptr<background> &&background_, object_ptr<BackgroundFill> &&outgoing_message_fill_, bool animate_outgoing_message_fill_, int32 outgoing_message_accent_color_); + + static const std::int32_t ID = -62120942; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class thumbnail final : public Object { + public: + object_ptr<ThumbnailFormat> format_; + int32 width_; + int32 height_; + object_ptr<file> file_; + + thumbnail(); + + thumbnail(object_ptr<ThumbnailFormat> &&format_, int32 width_, int32 height_, object_ptr<file> &&file_); + + static const std::int32_t ID = 1243275371; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ThumbnailFormat: public Object { + public: +}; + +class thumbnailFormatJpeg final : public ThumbnailFormat { + public: + + thumbnailFormatJpeg(); + + static const std::int32_t ID = -653503352; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class thumbnailFormatGif final : public ThumbnailFormat { + public: + + thumbnailFormatGif(); + + static const std::int32_t ID = 1252205962; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class thumbnailFormatMpeg4 final : public ThumbnailFormat { + public: + + thumbnailFormatMpeg4(); + + static const std::int32_t ID = 278616062; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class thumbnailFormatPng final : public ThumbnailFormat { + public: + + thumbnailFormatPng(); + + static const std::int32_t ID = 1577490421; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class thumbnailFormatTgs final : public ThumbnailFormat { + public: + + thumbnailFormatTgs(); + + static const std::int32_t ID = 1315522642; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class thumbnailFormatWebm final : public ThumbnailFormat { + public: + + thumbnailFormatWebm(); + + static const std::int32_t ID = -660084953; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class thumbnailFormatWebp final : public ThumbnailFormat { + public: + + thumbnailFormatWebp(); + + static const std::int32_t ID = -53588974; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class TopChatCategory: public Object { + public: +}; + +class topChatCategoryUsers final : public TopChatCategory { + public: + + topChatCategoryUsers(); + + static const std::int32_t ID = 1026706816; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topChatCategoryBots final : public TopChatCategory { + public: + + topChatCategoryBots(); + + static const std::int32_t ID = -1577129195; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topChatCategoryGroups final : public TopChatCategory { + public: + + topChatCategoryGroups(); + + static const std::int32_t ID = 1530056846; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topChatCategoryChannels final : public TopChatCategory { + public: + + topChatCategoryChannels(); + + static const std::int32_t ID = -500825885; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topChatCategoryInlineBots final : public TopChatCategory { + public: + + topChatCategoryInlineBots(); + + static const std::int32_t ID = 377023356; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topChatCategoryCalls final : public TopChatCategory { + public: + + topChatCategoryCalls(); + + static const std::int32_t ID = 356208861; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topChatCategoryForwardChats final : public TopChatCategory { + public: + + topChatCategoryForwardChats(); + + static const std::int32_t ID = 1695922133; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class trendingStickerSets final : public Object { + public: + int32 total_count_; + array<object_ptr<stickerSetInfo>> sets_; + bool is_premium_; + + trendingStickerSets(); + + trendingStickerSets(int32 total_count_, array<object_ptr<stickerSetInfo>> &&sets_, bool is_premium_); + + static const std::int32_t ID = 41028940; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class unreadReaction final : public Object { + public: + object_ptr<ReactionType> type_; + object_ptr<MessageSender> sender_id_; + bool is_big_; + + unreadReaction(); + + unreadReaction(object_ptr<ReactionType> &&type_, object_ptr<MessageSender> &&sender_id_, bool is_big_); + + static const std::int32_t ID = -1940178046; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Update: public Object { + public: +}; + +class updateAuthorizationState final : public Update { + public: + object_ptr<AuthorizationState> authorization_state_; + + updateAuthorizationState(); + + explicit updateAuthorizationState(object_ptr<AuthorizationState> &&authorization_state_); + + static const std::int32_t ID = 1622347490; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewMessage final : public Update { + public: + object_ptr<message> message_; + + updateNewMessage(); + + explicit updateNewMessage(object_ptr<message> &&message_); + + static const std::int32_t ID = -563105266; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageSendAcknowledged final : public Update { + public: + int53 chat_id_; + int53 message_id_; + + updateMessageSendAcknowledged(); + + updateMessageSendAcknowledged(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 1302843961; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageSendSucceeded final : public Update { + public: + object_ptr<message> message_; + int53 old_message_id_; + + updateMessageSendSucceeded(); + + updateMessageSendSucceeded(object_ptr<message> &&message_, int53 old_message_id_); + + static const std::int32_t ID = 1815715197; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageSendFailed final : public Update { + public: + object_ptr<message> message_; + int53 old_message_id_; + int32 error_code_; + string error_message_; + + updateMessageSendFailed(); + + updateMessageSendFailed(object_ptr<message> &&message_, int53 old_message_id_, int32 error_code_, string const &error_message_); + + static const std::int32_t ID = -1032335779; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageContent final : public Update { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<MessageContent> new_content_; + + updateMessageContent(); + + updateMessageContent(int53 chat_id_, int53 message_id_, object_ptr<MessageContent> &&new_content_); + + static const std::int32_t ID = 506903332; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageEdited final : public Update { + public: + int53 chat_id_; + int53 message_id_; + int32 edit_date_; + object_ptr<ReplyMarkup> reply_markup_; + + updateMessageEdited(); + + updateMessageEdited(int53 chat_id_, int53 message_id_, int32 edit_date_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = -559545626; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageIsPinned final : public Update { + public: + int53 chat_id_; + int53 message_id_; + bool is_pinned_; + + updateMessageIsPinned(); + + updateMessageIsPinned(int53 chat_id_, int53 message_id_, bool is_pinned_); + + static const std::int32_t ID = 1102848829; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageInteractionInfo final : public Update { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<messageInteractionInfo> interaction_info_; + + updateMessageInteractionInfo(); + + updateMessageInteractionInfo(int53 chat_id_, int53 message_id_, object_ptr<messageInteractionInfo> &&interaction_info_); + + static const std::int32_t ID = -1417659394; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageContentOpened final : public Update { + public: + int53 chat_id_; + int53 message_id_; + + updateMessageContentOpened(); + + updateMessageContentOpened(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = -1520523131; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageMentionRead final : public Update { + public: + int53 chat_id_; + int53 message_id_; + int32 unread_mention_count_; + + updateMessageMentionRead(); + + updateMessageMentionRead(int53 chat_id_, int53 message_id_, int32 unread_mention_count_); + + static const std::int32_t ID = -252228282; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageUnreadReactions final : public Update { + public: + int53 chat_id_; + int53 message_id_; + array<object_ptr<unreadReaction>> unread_reactions_; + int32 unread_reaction_count_; + + updateMessageUnreadReactions(); + + updateMessageUnreadReactions(int53 chat_id_, int53 message_id_, array<object_ptr<unreadReaction>> &&unread_reactions_, int32 unread_reaction_count_); + + static const std::int32_t ID = 942840008; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageLiveLocationViewed final : public Update { + public: + int53 chat_id_; + int53 message_id_; + + updateMessageLiveLocationViewed(); + + updateMessageLiveLocationViewed(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = -1308260971; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewChat final : public Update { + public: + object_ptr<chat> chat_; + + updateNewChat(); + + explicit updateNewChat(object_ptr<chat> &&chat_); + + static const std::int32_t ID = 2075757773; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatTitle final : public Update { + public: + int53 chat_id_; + string title_; + + updateChatTitle(); + + updateChatTitle(int53 chat_id_, string const &title_); + + static const std::int32_t ID = -175405660; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatPhoto final : public Update { + public: + int53 chat_id_; + object_ptr<chatPhotoInfo> photo_; + + updateChatPhoto(); + + updateChatPhoto(int53 chat_id_, object_ptr<chatPhotoInfo> &&photo_); + + static const std::int32_t ID = -324713921; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatPermissions final : public Update { + public: + int53 chat_id_; + object_ptr<chatPermissions> permissions_; + + updateChatPermissions(); + + updateChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_); + + static const std::int32_t ID = -1622010003; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatLastMessage final : public Update { + public: + int53 chat_id_; + object_ptr<message> last_message_; + array<object_ptr<chatPosition>> positions_; + + updateChatLastMessage(); + + updateChatLastMessage(int53 chat_id_, object_ptr<message> &&last_message_, array<object_ptr<chatPosition>> &&positions_); + + static const std::int32_t ID = -923244537; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatPosition final : public Update { + public: + int53 chat_id_; + object_ptr<chatPosition> position_; + + updateChatPosition(); + + updateChatPosition(int53 chat_id_, object_ptr<chatPosition> &&position_); + + static const std::int32_t ID = -8979849; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatReadInbox final : public Update { + public: + int53 chat_id_; + int53 last_read_inbox_message_id_; + int32 unread_count_; + + updateChatReadInbox(); + + updateChatReadInbox(int53 chat_id_, int53 last_read_inbox_message_id_, int32 unread_count_); + + static const std::int32_t ID = -797952281; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatReadOutbox final : public Update { + public: + int53 chat_id_; + int53 last_read_outbox_message_id_; + + updateChatReadOutbox(); + + updateChatReadOutbox(int53 chat_id_, int53 last_read_outbox_message_id_); + + static const std::int32_t ID = 708334213; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatActionBar final : public Update { + public: + int53 chat_id_; + object_ptr<ChatActionBar> action_bar_; + + updateChatActionBar(); + + updateChatActionBar(int53 chat_id_, object_ptr<ChatActionBar> &&action_bar_); + + static const std::int32_t ID = -643671870; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatAvailableReactions final : public Update { + public: + int53 chat_id_; + object_ptr<ChatAvailableReactions> available_reactions_; + + updateChatAvailableReactions(); + + updateChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_); + + static const std::int32_t ID = -1967909895; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatDraftMessage final : public Update { + public: + int53 chat_id_; + object_ptr<draftMessage> draft_message_; + array<object_ptr<chatPosition>> positions_; + + updateChatDraftMessage(); + + updateChatDraftMessage(int53 chat_id_, object_ptr<draftMessage> &&draft_message_, array<object_ptr<chatPosition>> &&positions_); + + static const std::int32_t ID = 1455190380; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatMessageSender final : public Update { + public: + int53 chat_id_; + object_ptr<MessageSender> message_sender_id_; + + updateChatMessageSender(); + + updateChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_); + + static const std::int32_t ID = 2003849793; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatMessageTtl final : public Update { + public: + int53 chat_id_; + int32 message_ttl_; + + updateChatMessageTtl(); + + updateChatMessageTtl(int53 chat_id_, int32 message_ttl_); + + static const std::int32_t ID = -572479112; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatNotificationSettings final : public Update { + public: + int53 chat_id_; + object_ptr<chatNotificationSettings> notification_settings_; + + updateChatNotificationSettings(); + + updateChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &¬ification_settings_); + + static const std::int32_t ID = -803163050; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatPendingJoinRequests final : public Update { + public: + int53 chat_id_; + object_ptr<chatJoinRequestsInfo> pending_join_requests_; + + updateChatPendingJoinRequests(); + + updateChatPendingJoinRequests(int53 chat_id_, object_ptr<chatJoinRequestsInfo> &&pending_join_requests_); + + static const std::int32_t ID = 348578785; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatReplyMarkup final : public Update { + public: + int53 chat_id_; + int53 reply_markup_message_id_; + + updateChatReplyMarkup(); + + updateChatReplyMarkup(int53 chat_id_, int53 reply_markup_message_id_); + + static const std::int32_t ID = 1309386144; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatTheme final : public Update { + public: + int53 chat_id_; + string theme_name_; + + updateChatTheme(); + + updateChatTheme(int53 chat_id_, string const &theme_name_); + + static const std::int32_t ID = 838063205; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatUnreadMentionCount final : public Update { + public: + int53 chat_id_; + int32 unread_mention_count_; + + updateChatUnreadMentionCount(); + + updateChatUnreadMentionCount(int53 chat_id_, int32 unread_mention_count_); + + static const std::int32_t ID = -2131461348; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatUnreadReactionCount final : public Update { + public: + int53 chat_id_; + int32 unread_reaction_count_; + + updateChatUnreadReactionCount(); + + updateChatUnreadReactionCount(int53 chat_id_, int32 unread_reaction_count_); + + static const std::int32_t ID = -2124399395; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatVideoChat final : public Update { + public: + int53 chat_id_; + object_ptr<videoChat> video_chat_; + + updateChatVideoChat(); + + updateChatVideoChat(int53 chat_id_, object_ptr<videoChat> &&video_chat_); + + static const std::int32_t ID = 637226150; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatDefaultDisableNotification final : public Update { + public: + int53 chat_id_; + bool default_disable_notification_; + + updateChatDefaultDisableNotification(); + + updateChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_); + + static const std::int32_t ID = 464087707; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatHasProtectedContent final : public Update { + public: + int53 chat_id_; + bool has_protected_content_; + + updateChatHasProtectedContent(); + + updateChatHasProtectedContent(int53 chat_id_, bool has_protected_content_); + + static const std::int32_t ID = 1800406811; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatHasScheduledMessages final : public Update { + public: + int53 chat_id_; + bool has_scheduled_messages_; + + updateChatHasScheduledMessages(); + + updateChatHasScheduledMessages(int53 chat_id_, bool has_scheduled_messages_); + + static const std::int32_t ID = 2064958167; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatIsBlocked final : public Update { + public: + int53 chat_id_; + bool is_blocked_; + + updateChatIsBlocked(); + + updateChatIsBlocked(int53 chat_id_, bool is_blocked_); + + static const std::int32_t ID = -1998946752; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatIsMarkedAsUnread final : public Update { + public: + int53 chat_id_; + bool is_marked_as_unread_; + + updateChatIsMarkedAsUnread(); + + updateChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_); + + static const std::int32_t ID = 1468347188; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatFilters final : public Update { + public: + array<object_ptr<chatFilterInfo>> chat_filters_; + int32 main_chat_list_position_; + + updateChatFilters(); + + updateChatFilters(array<object_ptr<chatFilterInfo>> &&chat_filters_, int32 main_chat_list_position_); + + static const std::int32_t ID = 81316953; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatOnlineMemberCount final : public Update { + public: + int53 chat_id_; + int32 online_member_count_; + + updateChatOnlineMemberCount(); + + updateChatOnlineMemberCount(int53 chat_id_, int32 online_member_count_); + + static const std::int32_t ID = 487369373; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateForumTopicInfo final : public Update { + public: + int53 chat_id_; + object_ptr<forumTopicInfo> info_; + + updateForumTopicInfo(); + + updateForumTopicInfo(int53 chat_id_, object_ptr<forumTopicInfo> &&info_); + + static const std::int32_t ID = 1802448073; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateScopeNotificationSettings final : public Update { + public: + object_ptr<NotificationSettingsScope> scope_; + object_ptr<scopeNotificationSettings> notification_settings_; + + updateScopeNotificationSettings(); + + updateScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &¬ification_settings_); + + static const std::int32_t ID = -1203975309; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNotification final : public Update { + public: + int32 notification_group_id_; + object_ptr<notification> notification_; + + updateNotification(); + + updateNotification(int32 notification_group_id_, object_ptr<notification> &¬ification_); + + static const std::int32_t ID = -1897496876; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNotificationGroup final : public Update { + public: + int32 notification_group_id_; + object_ptr<NotificationGroupType> type_; + int53 chat_id_; + int53 notification_settings_chat_id_; + int64 notification_sound_id_; + int32 total_count_; + array<object_ptr<notification>> added_notifications_; + array<int32> removed_notification_ids_; + + updateNotificationGroup(); + + updateNotificationGroup(int32 notification_group_id_, object_ptr<NotificationGroupType> &&type_, int53 chat_id_, int53 notification_settings_chat_id_, int64 notification_sound_id_, int32 total_count_, array<object_ptr<notification>> &&added_notifications_, array<int32> &&removed_notification_ids_); + + static const std::int32_t ID = 1381081378; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateActiveNotifications final : public Update { + public: + array<object_ptr<notificationGroup>> groups_; + + updateActiveNotifications(); + + explicit updateActiveNotifications(array<object_ptr<notificationGroup>> &&groups_); + + static const std::int32_t ID = -1306672221; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateHavePendingNotifications final : public Update { + public: + bool have_delayed_notifications_; + bool have_unreceived_notifications_; + + updateHavePendingNotifications(); + + updateHavePendingNotifications(bool have_delayed_notifications_, bool have_unreceived_notifications_); + + static const std::int32_t ID = 179233243; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDeleteMessages final : public Update { + public: + int53 chat_id_; + array<int53> message_ids_; + bool is_permanent_; + bool from_cache_; + + updateDeleteMessages(); + + updateDeleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool is_permanent_, bool from_cache_); + + static const std::int32_t ID = 1669252686; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatAction final : public Update { + public: + int53 chat_id_; + int53 message_thread_id_; + object_ptr<MessageSender> sender_id_; + object_ptr<ChatAction> action_; + + updateChatAction(); + + updateChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<MessageSender> &&sender_id_, object_ptr<ChatAction> &&action_); + + static const std::int32_t ID = -1698703832; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserStatus final : public Update { + public: + int53 user_id_; + object_ptr<UserStatus> status_; + + updateUserStatus(); + + updateUserStatus(int53 user_id_, object_ptr<UserStatus> &&status_); + + static const std::int32_t ID = 958468625; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUser final : public Update { + public: + object_ptr<user> user_; + + updateUser(); + + explicit updateUser(object_ptr<user> &&user_); + + static const std::int32_t ID = 1183394041; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBasicGroup final : public Update { + public: + object_ptr<basicGroup> basic_group_; + + updateBasicGroup(); + + explicit updateBasicGroup(object_ptr<basicGroup> &&basic_group_); + + static const std::int32_t ID = -1003239581; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSupergroup final : public Update { + public: + object_ptr<supergroup> supergroup_; + + updateSupergroup(); + + explicit updateSupergroup(object_ptr<supergroup> &&supergroup_); + + static const std::int32_t ID = -76782300; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSecretChat final : public Update { + public: + object_ptr<secretChat> secret_chat_; + + updateSecretChat(); + + explicit updateSecretChat(object_ptr<secretChat> &&secret_chat_); + + static const std::int32_t ID = -1666903253; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserFullInfo final : public Update { + public: + int53 user_id_; + object_ptr<userFullInfo> user_full_info_; + + updateUserFullInfo(); + + updateUserFullInfo(int53 user_id_, object_ptr<userFullInfo> &&user_full_info_); + + static const std::int32_t ID = -51197161; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBasicGroupFullInfo final : public Update { + public: + int53 basic_group_id_; + object_ptr<basicGroupFullInfo> basic_group_full_info_; + + updateBasicGroupFullInfo(); + + updateBasicGroupFullInfo(int53 basic_group_id_, object_ptr<basicGroupFullInfo> &&basic_group_full_info_); + + static const std::int32_t ID = 1391881151; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSupergroupFullInfo final : public Update { + public: + int53 supergroup_id_; + object_ptr<supergroupFullInfo> supergroup_full_info_; + + updateSupergroupFullInfo(); + + updateSupergroupFullInfo(int53 supergroup_id_, object_ptr<supergroupFullInfo> &&supergroup_full_info_); + + static const std::int32_t ID = 435539214; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateServiceNotification final : public Update { + public: + string type_; + object_ptr<MessageContent> content_; + + updateServiceNotification(); + + updateServiceNotification(string const &type_, object_ptr<MessageContent> &&content_); + + static const std::int32_t ID = 1318622637; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFile final : public Update { + public: + object_ptr<file> file_; + + updateFile(); + + explicit updateFile(object_ptr<file> &&file_); + + static const std::int32_t ID = 114132831; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFileGenerationStart final : public Update { + public: + int64 generation_id_; + string original_path_; + string destination_path_; + string conversion_; + + updateFileGenerationStart(); + + updateFileGenerationStart(int64 generation_id_, string const &original_path_, string const &destination_path_, string const &conversion_); + + static const std::int32_t ID = 216817388; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFileGenerationStop final : public Update { + public: + int64 generation_id_; + + updateFileGenerationStop(); + + explicit updateFileGenerationStop(int64 generation_id_); + + static const std::int32_t ID = -1894449685; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFileDownloads final : public Update { + public: + int53 total_size_; + int32 total_count_; + int53 downloaded_size_; + + updateFileDownloads(); + + updateFileDownloads(int53 total_size_, int32 total_count_, int53 downloaded_size_); + + static const std::int32_t ID = -389213497; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFileAddedToDownloads final : public Update { + public: + object_ptr<fileDownload> file_download_; + object_ptr<downloadedFileCounts> counts_; + + updateFileAddedToDownloads(); + + updateFileAddedToDownloads(object_ptr<fileDownload> &&file_download_, object_ptr<downloadedFileCounts> &&counts_); + + static const std::int32_t ID = 1609929242; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFileDownload final : public Update { + public: + int32 file_id_; + int32 complete_date_; + bool is_paused_; + object_ptr<downloadedFileCounts> counts_; + + updateFileDownload(); + + updateFileDownload(int32 file_id_, int32 complete_date_, bool is_paused_, object_ptr<downloadedFileCounts> &&counts_); + + static const std::int32_t ID = 875529162; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFileRemovedFromDownloads final : public Update { + public: + int32 file_id_; + object_ptr<downloadedFileCounts> counts_; + + updateFileRemovedFromDownloads(); + + updateFileRemovedFromDownloads(int32 file_id_, object_ptr<downloadedFileCounts> &&counts_); + + static const std::int32_t ID = 1853625576; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateCall final : public Update { + public: + object_ptr<call> call_; + + updateCall(); + + explicit updateCall(object_ptr<call> &&call_); + + static const std::int32_t ID = 1337184477; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateGroupCall final : public Update { + public: + object_ptr<groupCall> group_call_; + + updateGroupCall(); + + explicit updateGroupCall(object_ptr<groupCall> &&group_call_); + + static const std::int32_t ID = 808603136; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateGroupCallParticipant final : public Update { + public: + int32 group_call_id_; + object_ptr<groupCallParticipant> participant_; + + updateGroupCallParticipant(); + + updateGroupCallParticipant(int32 group_call_id_, object_ptr<groupCallParticipant> &&participant_); + + static const std::int32_t ID = -803128071; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewCallSignalingData final : public Update { + public: + int32 call_id_; + bytes data_; + + updateNewCallSignalingData(); + + updateNewCallSignalingData(int32 call_id_, bytes const &data_); + + static const std::int32_t ID = 583634317; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserPrivacySettingRules final : public Update { + public: + object_ptr<UserPrivacySetting> setting_; + object_ptr<userPrivacySettingRules> rules_; + + updateUserPrivacySettingRules(); + + updateUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_); + + static const std::int32_t ID = -912960778; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUnreadMessageCount final : public Update { + public: + object_ptr<ChatList> chat_list_; + int32 unread_count_; + int32 unread_unmuted_count_; + + updateUnreadMessageCount(); + + updateUnreadMessageCount(object_ptr<ChatList> &&chat_list_, int32 unread_count_, int32 unread_unmuted_count_); + + static const std::int32_t ID = 78987721; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUnreadChatCount final : public Update { + public: + object_ptr<ChatList> chat_list_; + int32 total_count_; + int32 unread_count_; + int32 unread_unmuted_count_; + int32 marked_as_unread_count_; + int32 marked_as_unread_unmuted_count_; + + updateUnreadChatCount(); + + updateUnreadChatCount(object_ptr<ChatList> &&chat_list_, int32 total_count_, int32 unread_count_, int32 unread_unmuted_count_, int32 marked_as_unread_count_, int32 marked_as_unread_unmuted_count_); + + static const std::int32_t ID = 1994494530; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateOption final : public Update { + public: + string name_; + object_ptr<OptionValue> value_; + + updateOption(); + + updateOption(string const &name_, object_ptr<OptionValue> &&value_); + + static const std::int32_t ID = 900822020; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateStickerSet final : public Update { + public: + object_ptr<stickerSet> sticker_set_; + + updateStickerSet(); + + explicit updateStickerSet(object_ptr<stickerSet> &&sticker_set_); + + static const std::int32_t ID = 1879268812; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateInstalledStickerSets final : public Update { + public: + object_ptr<StickerType> sticker_type_; + array<int64> sticker_set_ids_; + + updateInstalledStickerSets(); + + updateInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_); + + static const std::int32_t ID = -1735084182; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateTrendingStickerSets final : public Update { + public: + object_ptr<StickerType> sticker_type_; + object_ptr<trendingStickerSets> sticker_sets_; + + updateTrendingStickerSets(); + + updateTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, object_ptr<trendingStickerSets> &&sticker_sets_); + + static const std::int32_t ID = 1266307239; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateRecentStickers final : public Update { + public: + bool is_attached_; + array<int32> sticker_ids_; + + updateRecentStickers(); + + updateRecentStickers(bool is_attached_, array<int32> &&sticker_ids_); + + static const std::int32_t ID = 1906403540; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFavoriteStickers final : public Update { + public: + array<int32> sticker_ids_; + + updateFavoriteStickers(); + + explicit updateFavoriteStickers(array<int32> &&sticker_ids_); + + static const std::int32_t ID = 1662240999; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSavedAnimations final : public Update { + public: + array<int32> animation_ids_; + + updateSavedAnimations(); + + explicit updateSavedAnimations(array<int32> &&animation_ids_); + + static const std::int32_t ID = 65563814; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSavedNotificationSounds final : public Update { + public: + array<int64> notification_sound_ids_; + + updateSavedNotificationSounds(); + + explicit updateSavedNotificationSounds(array<int64> &¬ification_sound_ids_); + + static const std::int32_t ID = 1052725698; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSelectedBackground final : public Update { + public: + bool for_dark_theme_; + object_ptr<background> background_; + + updateSelectedBackground(); + + updateSelectedBackground(bool for_dark_theme_, object_ptr<background> &&background_); + + static const std::int32_t ID = -1715658659; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatThemes final : public Update { + public: + array<object_ptr<chatTheme>> chat_themes_; + + updateChatThemes(); + + explicit updateChatThemes(array<object_ptr<chatTheme>> &&chat_themes_); + + static const std::int32_t ID = -1588098376; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateLanguagePackStrings final : public Update { + public: + string localization_target_; + string language_pack_id_; + array<object_ptr<languagePackString>> strings_; + + updateLanguagePackStrings(); + + updateLanguagePackStrings(string const &localization_target_, string const &language_pack_id_, array<object_ptr<languagePackString>> &&strings_); + + static const std::int32_t ID = -1056319886; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateConnectionState final : public Update { + public: + object_ptr<ConnectionState> state_; + + updateConnectionState(); + + explicit updateConnectionState(object_ptr<ConnectionState> &&state_); + + static const std::int32_t ID = 1469292078; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateTermsOfService final : public Update { + public: + string terms_of_service_id_; + object_ptr<termsOfService> terms_of_service_; + + updateTermsOfService(); + + updateTermsOfService(string const &terms_of_service_id_, object_ptr<termsOfService> &&terms_of_service_); + + static const std::int32_t ID = -1304640162; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUsersNearby final : public Update { + public: + array<object_ptr<chatNearby>> users_nearby_; + + updateUsersNearby(); + + explicit updateUsersNearby(array<object_ptr<chatNearby>> &&users_nearby_); + + static const std::int32_t ID = -1517109163; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateAttachmentMenuBots final : public Update { + public: + array<object_ptr<attachmentMenuBot>> bots_; + + updateAttachmentMenuBots(); + + explicit updateAttachmentMenuBots(array<object_ptr<attachmentMenuBot>> &&bots_); + + static const std::int32_t ID = 291369922; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateWebAppMessageSent final : public Update { + public: + int64 web_app_launch_id_; + + updateWebAppMessageSent(); + + explicit updateWebAppMessageSent(int64 web_app_launch_id_); + + static const std::int32_t ID = 1480790569; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateActiveEmojiReactions final : public Update { + public: + array<string> emojis_; + + updateActiveEmojiReactions(); + + explicit updateActiveEmojiReactions(array<string> &&emojis_); + + static const std::int32_t ID = 77556818; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDefaultReactionType final : public Update { + public: + object_ptr<ReactionType> reaction_type_; + + updateDefaultReactionType(); + + explicit updateDefaultReactionType(object_ptr<ReactionType> &&reaction_type_); + + static const std::int32_t ID = 1264668933; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDiceEmojis final : public Update { + public: + array<string> emojis_; + + updateDiceEmojis(); + + explicit updateDiceEmojis(array<string> &&emojis_); + + static const std::int32_t ID = -1069066940; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateAnimatedEmojiMessageClicked final : public Update { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<sticker> sticker_; + + updateAnimatedEmojiMessageClicked(); + + updateAnimatedEmojiMessageClicked(int53 chat_id_, int53 message_id_, object_ptr<sticker> &&sticker_); + + static const std::int32_t ID = -1558809595; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateAnimationSearchParameters final : public Update { + public: + string provider_; + array<string> emojis_; + + updateAnimationSearchParameters(); + + updateAnimationSearchParameters(string const &provider_, array<string> &&emojis_); + + static const std::int32_t ID = -1144983202; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSuggestedActions final : public Update { + public: + array<object_ptr<SuggestedAction>> added_actions_; + array<object_ptr<SuggestedAction>> removed_actions_; + + updateSuggestedActions(); + + updateSuggestedActions(array<object_ptr<SuggestedAction>> &&added_actions_, array<object_ptr<SuggestedAction>> &&removed_actions_); + + static const std::int32_t ID = 1459452346; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewInlineQuery final : public Update { + public: + int64 id_; + int53 sender_user_id_; + object_ptr<location> user_location_; + object_ptr<ChatType> chat_type_; + string query_; + string offset_; + + updateNewInlineQuery(); + + updateNewInlineQuery(int64 id_, int53 sender_user_id_, object_ptr<location> &&user_location_, object_ptr<ChatType> &&chat_type_, string const &query_, string const &offset_); + + static const std::int32_t ID = 1903279924; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewChosenInlineResult final : public Update { + public: + int53 sender_user_id_; + object_ptr<location> user_location_; + string query_; + string result_id_; + string inline_message_id_; + + updateNewChosenInlineResult(); + + updateNewChosenInlineResult(int53 sender_user_id_, object_ptr<location> &&user_location_, string const &query_, string const &result_id_, string const &inline_message_id_); + + static const std::int32_t ID = -884191395; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewCallbackQuery final : public Update { + public: + int64 id_; + int53 sender_user_id_; + int53 chat_id_; + int53 message_id_; + int64 chat_instance_; + object_ptr<CallbackQueryPayload> payload_; + + updateNewCallbackQuery(); + + updateNewCallbackQuery(int64 id_, int53 sender_user_id_, int53 chat_id_, int53 message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_); + + static const std::int32_t ID = -1989881762; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewInlineCallbackQuery final : public Update { + public: + int64 id_; + int53 sender_user_id_; + string inline_message_id_; + int64 chat_instance_; + object_ptr<CallbackQueryPayload> payload_; + + updateNewInlineCallbackQuery(); + + updateNewInlineCallbackQuery(int64 id_, int53 sender_user_id_, string const &inline_message_id_, int64 chat_instance_, object_ptr<CallbackQueryPayload> &&payload_); + + static const std::int32_t ID = -319212358; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewShippingQuery final : public Update { + public: + int64 id_; + int53 sender_user_id_; + string invoice_payload_; + object_ptr<address> shipping_address_; + + updateNewShippingQuery(); + + updateNewShippingQuery(int64 id_, int53 sender_user_id_, string const &invoice_payload_, object_ptr<address> &&shipping_address_); + + static const std::int32_t ID = 693651058; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewPreCheckoutQuery final : public Update { + public: + int64 id_; + int53 sender_user_id_; + string currency_; + int53 total_amount_; + bytes invoice_payload_; + string shipping_option_id_; + object_ptr<orderInfo> order_info_; + + updateNewPreCheckoutQuery(); + + updateNewPreCheckoutQuery(int64 id_, int53 sender_user_id_, string const ¤cy_, int53 total_amount_, bytes const &invoice_payload_, string const &shipping_option_id_, object_ptr<orderInfo> &&order_info_); + + static const std::int32_t ID = 708342217; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewCustomEvent final : public Update { + public: + string event_; + + updateNewCustomEvent(); + + explicit updateNewCustomEvent(string const &event_); + + static const std::int32_t ID = 1994222092; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewCustomQuery final : public Update { + public: + int64 id_; + string data_; + int32 timeout_; + + updateNewCustomQuery(); + + updateNewCustomQuery(int64 id_, string const &data_, int32 timeout_); + + static const std::int32_t ID = -687670874; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePoll final : public Update { + public: + object_ptr<poll> poll_; + + updatePoll(); + + explicit updatePoll(object_ptr<poll> &&poll_); + + static const std::int32_t ID = -1771342902; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePollAnswer final : public Update { + public: + int64 poll_id_; + int53 user_id_; + array<int32> option_ids_; + + updatePollAnswer(); + + updatePollAnswer(int64 poll_id_, int53 user_id_, array<int32> &&option_ids_); + + static const std::int32_t ID = -1209100651; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatMember final : public Update { + public: + int53 chat_id_; + int53 actor_user_id_; + int32 date_; + object_ptr<chatInviteLink> invite_link_; + object_ptr<chatMember> old_chat_member_; + object_ptr<chatMember> new_chat_member_; + + updateChatMember(); + + updateChatMember(int53 chat_id_, int53 actor_user_id_, int32 date_, object_ptr<chatInviteLink> &&invite_link_, object_ptr<chatMember> &&old_chat_member_, object_ptr<chatMember> &&new_chat_member_); + + static const std::int32_t ID = -2027989165; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewChatJoinRequest final : public Update { + public: + int53 chat_id_; + object_ptr<chatJoinRequest> request_; + object_ptr<chatInviteLink> invite_link_; + + updateNewChatJoinRequest(); + + updateNewChatJoinRequest(int53 chat_id_, object_ptr<chatJoinRequest> &&request_, object_ptr<chatInviteLink> &&invite_link_); + + static const std::int32_t ID = 175285905; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates final : public Object { + public: + array<object_ptr<Update>> updates_; + + updates(); + + explicit updates(array<object_ptr<Update>> &&updates_); + + static const std::int32_t ID = 475842347; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class user final : public Object { + public: + int53 id_; + string first_name_; + string last_name_; + object_ptr<usernames> usernames_; + string phone_number_; + object_ptr<UserStatus> status_; + object_ptr<profilePhoto> profile_photo_; + object_ptr<emojiStatus> emoji_status_; + bool is_contact_; + bool is_mutual_contact_; + bool is_verified_; + bool is_premium_; + bool is_support_; + string restriction_reason_; + bool is_scam_; + bool is_fake_; + bool have_access_; + object_ptr<UserType> type_; + string language_code_; + bool added_to_attachment_menu_; + + user(); + + user(int53 id_, string const &first_name_, string const &last_name_, object_ptr<usernames> &&usernames_, string const &phone_number_, object_ptr<UserStatus> &&status_, object_ptr<profilePhoto> &&profile_photo_, object_ptr<emojiStatus> &&emoji_status_, bool is_contact_, bool is_mutual_contact_, bool is_verified_, bool is_premium_, bool is_support_, string const &restriction_reason_, bool is_scam_, bool is_fake_, bool have_access_, object_ptr<UserType> &&type_, string const &language_code_, bool added_to_attachment_menu_); + + static const std::int32_t ID = -651883724; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userFullInfo final : public Object { + public: + object_ptr<chatPhoto> photo_; + bool is_blocked_; + bool can_be_called_; + bool supports_video_calls_; + bool has_private_calls_; + bool has_private_forwards_; + bool has_restricted_voice_and_video_note_messages_; + bool need_phone_number_privacy_exception_; + object_ptr<formattedText> bio_; + array<object_ptr<premiumPaymentOption>> premium_gift_options_; + int32 group_in_common_count_; + object_ptr<botInfo> bot_info_; + + userFullInfo(); + + userFullInfo(object_ptr<chatPhoto> &&photo_, bool is_blocked_, bool can_be_called_, bool supports_video_calls_, bool has_private_calls_, bool has_private_forwards_, bool has_restricted_voice_and_video_note_messages_, bool need_phone_number_privacy_exception_, object_ptr<formattedText> &&bio_, array<object_ptr<premiumPaymentOption>> &&premium_gift_options_, int32 group_in_common_count_, object_ptr<botInfo> &&bot_info_); + + static const std::int32_t ID = -272527755; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class UserPrivacySetting: public Object { + public: +}; + +class userPrivacySettingShowStatus final : public UserPrivacySetting { + public: + + userPrivacySettingShowStatus(); + + static const std::int32_t ID = 1862829310; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingShowProfilePhoto final : public UserPrivacySetting { + public: + + userPrivacySettingShowProfilePhoto(); + + static const std::int32_t ID = 1408485877; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingShowLinkInForwardedMessages final : public UserPrivacySetting { + public: + + userPrivacySettingShowLinkInForwardedMessages(); + + static const std::int32_t ID = 592688870; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingShowPhoneNumber final : public UserPrivacySetting { + public: + + userPrivacySettingShowPhoneNumber(); + + static const std::int32_t ID = -791567831; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingAllowChatInvites final : public UserPrivacySetting { + public: + + userPrivacySettingAllowChatInvites(); + + static const std::int32_t ID = 1271668007; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingAllowCalls final : public UserPrivacySetting { + public: + + userPrivacySettingAllowCalls(); + + static const std::int32_t ID = -906967291; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingAllowPeerToPeerCalls final : public UserPrivacySetting { + public: + + userPrivacySettingAllowPeerToPeerCalls(); + + static const std::int32_t ID = 352500032; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingAllowFindingByPhoneNumber final : public UserPrivacySetting { + public: + + userPrivacySettingAllowFindingByPhoneNumber(); + + static const std::int32_t ID = -1846645423; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages final : public UserPrivacySetting { + public: + + userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages(); + + static const std::int32_t ID = 338112060; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class UserPrivacySettingRule: public Object { + public: +}; + +class userPrivacySettingRuleAllowAll final : public UserPrivacySettingRule { + public: + + userPrivacySettingRuleAllowAll(); + + static const std::int32_t ID = -1967186881; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRuleAllowContacts final : public UserPrivacySettingRule { + public: + + userPrivacySettingRuleAllowContacts(); + + static const std::int32_t ID = -1892733680; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRuleAllowUsers final : public UserPrivacySettingRule { + public: + array<int53> user_ids_; + + userPrivacySettingRuleAllowUsers(); + + explicit userPrivacySettingRuleAllowUsers(array<int53> &&user_ids_); + + static const std::int32_t ID = 1110988334; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRuleAllowChatMembers final : public UserPrivacySettingRule { + public: + array<int53> chat_ids_; + + userPrivacySettingRuleAllowChatMembers(); + + explicit userPrivacySettingRuleAllowChatMembers(array<int53> &&chat_ids_); + + static const std::int32_t ID = -2048749863; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRuleRestrictAll final : public UserPrivacySettingRule { + public: + + userPrivacySettingRuleRestrictAll(); + + static const std::int32_t ID = -1406495408; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRuleRestrictContacts final : public UserPrivacySettingRule { + public: + + userPrivacySettingRuleRestrictContacts(); + + static const std::int32_t ID = 1008389378; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRuleRestrictUsers final : public UserPrivacySettingRule { + public: + array<int53> user_ids_; + + userPrivacySettingRuleRestrictUsers(); + + explicit userPrivacySettingRuleRestrictUsers(array<int53> &&user_ids_); + + static const std::int32_t ID = 622796522; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRuleRestrictChatMembers final : public UserPrivacySettingRule { + public: + array<int53> chat_ids_; + + userPrivacySettingRuleRestrictChatMembers(); + + explicit userPrivacySettingRuleRestrictChatMembers(array<int53> &&chat_ids_); + + static const std::int32_t ID = 392530897; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userPrivacySettingRules final : public Object { + public: + array<object_ptr<UserPrivacySettingRule>> rules_; + + userPrivacySettingRules(); + + explicit userPrivacySettingRules(array<object_ptr<UserPrivacySettingRule>> &&rules_); + + static const std::int32_t ID = 322477541; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class UserStatus: public Object { + public: +}; + +class userStatusEmpty final : public UserStatus { + public: + + userStatusEmpty(); + + static const std::int32_t ID = 164646985; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusOnline final : public UserStatus { + public: + int32 expires_; + + userStatusOnline(); + + explicit userStatusOnline(int32 expires_); + + static const std::int32_t ID = -1529460876; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusOffline final : public UserStatus { + public: + int32 was_online_; + + userStatusOffline(); + + explicit userStatusOffline(int32 was_online_); + + static const std::int32_t ID = -759984891; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusRecently final : public UserStatus { + public: + + userStatusRecently(); + + static const std::int32_t ID = -496024847; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusLastWeek final : public UserStatus { + public: + + userStatusLastWeek(); + + static const std::int32_t ID = 129960444; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusLastMonth final : public UserStatus { + public: + + userStatusLastMonth(); + + static const std::int32_t ID = 2011940674; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userSupportInfo final : public Object { + public: + object_ptr<formattedText> message_; + string author_; + int32 date_; + + userSupportInfo(); + + userSupportInfo(object_ptr<formattedText> &&message_, string const &author_, int32 date_); + + static const std::int32_t ID = -1257366487; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class UserType: public Object { + public: +}; + +class userTypeRegular final : public UserType { + public: + + userTypeRegular(); + + static const std::int32_t ID = -598644325; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userTypeDeleted final : public UserType { + public: + + userTypeDeleted(); + + static const std::int32_t ID = -1807729372; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userTypeBot final : public UserType { + public: + bool can_join_groups_; + bool can_read_all_group_messages_; + bool is_inline_; + string inline_query_placeholder_; + bool need_location_; + bool can_be_added_to_attachment_menu_; + + userTypeBot(); + + userTypeBot(bool can_join_groups_, bool can_read_all_group_messages_, bool is_inline_, string const &inline_query_placeholder_, bool need_location_, bool can_be_added_to_attachment_menu_); + + static const std::int32_t ID = -970625144; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userTypeUnknown final : public UserType { + public: + + userTypeUnknown(); + + static const std::int32_t ID = -724541123; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class usernames final : public Object { + public: + array<string> active_usernames_; + array<string> disabled_usernames_; + string editable_username_; + + usernames(); + + usernames(array<string> &&active_usernames_, array<string> &&disabled_usernames_, string const &editable_username_); + + static const std::int32_t ID = 799608565; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class users final : public Object { + public: + int32 total_count_; + array<int53> user_ids_; + + users(); + + users(int32 total_count_, array<int53> &&user_ids_); + + static const std::int32_t ID = 171203420; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class validatedOrderInfo final : public Object { + public: + string order_info_id_; + array<object_ptr<shippingOption>> shipping_options_; + + validatedOrderInfo(); + + validatedOrderInfo(string const &order_info_id_, array<object_ptr<shippingOption>> &&shipping_options_); + + static const std::int32_t ID = 1511451484; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class VectorPathCommand: public Object { + public: +}; + +class vectorPathCommandLine final : public VectorPathCommand { + public: + object_ptr<point> end_point_; + + vectorPathCommandLine(); + + explicit vectorPathCommandLine(object_ptr<point> &&end_point_); + + static const std::int32_t ID = -614056822; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class vectorPathCommandCubicBezierCurve final : public VectorPathCommand { + public: + object_ptr<point> start_control_point_; + object_ptr<point> end_control_point_; + object_ptr<point> end_point_; + + vectorPathCommandCubicBezierCurve(); + + vectorPathCommandCubicBezierCurve(object_ptr<point> &&start_control_point_, object_ptr<point> &&end_control_point_, object_ptr<point> &&end_point_); + + static const std::int32_t ID = 1229733434; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class venue final : public Object { + public: + object_ptr<location> location_; + string title_; + string address_; + string provider_; + string id_; + string type_; + + venue(); + + venue(object_ptr<location> &&location_, string const &title_, string const &address_, string const &provider_, string const &id_, string const &type_); + + static const std::int32_t ID = 1070406393; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class video final : public Object { + public: + int32 duration_; + int32 width_; + int32 height_; + string file_name_; + string mime_type_; + bool has_stickers_; + bool supports_streaming_; + object_ptr<minithumbnail> minithumbnail_; + object_ptr<thumbnail> thumbnail_; + object_ptr<file> video_; + + video(); + + video(int32 duration_, int32 width_, int32 height_, string const &file_name_, string const &mime_type_, bool has_stickers_, bool supports_streaming_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<file> &&video_); + + static const std::int32_t ID = 832856268; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class videoChat final : public Object { + public: + int32 group_call_id_; + bool has_participants_; + object_ptr<MessageSender> default_participant_id_; + + videoChat(); + + videoChat(int32 group_call_id_, bool has_participants_, object_ptr<MessageSender> &&default_participant_id_); + + static const std::int32_t ID = -1374319320; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class videoNote final : public Object { + public: + int32 duration_; + bytes waveform_; + int32 length_; + object_ptr<minithumbnail> minithumbnail_; + object_ptr<thumbnail> thumbnail_; + object_ptr<SpeechRecognitionResult> speech_recognition_result_; + object_ptr<file> video_; + + videoNote(); + + videoNote(int32 duration_, bytes const &waveform_, int32 length_, object_ptr<minithumbnail> &&minithumbnail_, object_ptr<thumbnail> &&thumbnail_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&video_); + + static const std::int32_t ID = 2062096581; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class voiceNote final : public Object { + public: + int32 duration_; + bytes waveform_; + string mime_type_; + object_ptr<SpeechRecognitionResult> speech_recognition_result_; + object_ptr<file> voice_; + + voiceNote(); + + voiceNote(int32 duration_, bytes const &waveform_, string const &mime_type_, object_ptr<SpeechRecognitionResult> &&speech_recognition_result_, object_ptr<file> &&voice_); + + static const std::int32_t ID = -1175302923; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webAppInfo final : public Object { + public: + int64 launch_id_; + string url_; + + webAppInfo(); + + webAppInfo(int64 launch_id_, string const &url_); + + static const std::int32_t ID = 788378344; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webPage final : public Object { + public: + string url_; + string display_url_; + string type_; + string site_name_; + string title_; + object_ptr<formattedText> description_; + object_ptr<photo> photo_; + string embed_url_; + string embed_type_; + int32 embed_width_; + int32 embed_height_; + int32 duration_; + string author_; + object_ptr<animation> animation_; + object_ptr<audio> audio_; + object_ptr<document> document_; + object_ptr<sticker> sticker_; + object_ptr<video> video_; + object_ptr<videoNote> video_note_; + object_ptr<voiceNote> voice_note_; + int32 instant_view_version_; + + webPage(); + + webPage(string const &url_, string const &display_url_, string const &type_, string const &site_name_, string const &title_, object_ptr<formattedText> &&description_, object_ptr<photo> &&photo_, string const &embed_url_, string const &embed_type_, int32 embed_width_, int32 embed_height_, int32 duration_, string const &author_, object_ptr<animation> &&animation_, object_ptr<audio> &&audio_, object_ptr<document> &&document_, object_ptr<sticker> &&sticker_, object_ptr<video> &&video_, object_ptr<videoNote> &&video_note_, object_ptr<voiceNote> &&voice_note_, int32 instant_view_version_); + + static const std::int32_t ID = -577333714; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webPageInstantView final : public Object { + public: + array<object_ptr<PageBlock>> page_blocks_; + int32 view_count_; + int32 version_; + bool is_rtl_; + bool is_full_; + object_ptr<InternalLinkType> feedback_link_; + + webPageInstantView(); + + webPageInstantView(array<object_ptr<PageBlock>> &&page_blocks_, int32 view_count_, int32 version_, bool is_rtl_, bool is_full_, object_ptr<InternalLinkType> &&feedback_link_); + + static const std::int32_t ID = 778202453; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class acceptCall final : public Function { + public: + int32 call_id_; + object_ptr<callProtocol> protocol_; + + acceptCall(); + + acceptCall(int32 call_id_, object_ptr<callProtocol> &&protocol_); + + static const std::int32_t ID = -646618416; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class acceptTermsOfService final : public Function { + public: + string terms_of_service_id_; + + acceptTermsOfService(); + + explicit acceptTermsOfService(string const &terms_of_service_id_); + + static const std::int32_t ID = 2130576356; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addChatMember final : public Function { + public: + int53 chat_id_; + int53 user_id_; + int32 forward_limit_; + + addChatMember(); + + addChatMember(int53 chat_id_, int53 user_id_, int32 forward_limit_); + + static const std::int32_t ID = 499426810; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addChatMembers final : public Function { + public: + int53 chat_id_; + array<int53> user_ids_; + + addChatMembers(); + + addChatMembers(int53 chat_id_, array<int53> &&user_ids_); + + static const std::int32_t ID = -519951226; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addChatToList final : public Function { + public: + int53 chat_id_; + object_ptr<ChatList> chat_list_; + + addChatToList(); + + addChatToList(int53 chat_id_, object_ptr<ChatList> &&chat_list_); + + static const std::int32_t ID = -80523595; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addContact final : public Function { + public: + object_ptr<contact> contact_; + bool share_phone_number_; + + addContact(); + + addContact(object_ptr<contact> &&contact_, bool share_phone_number_); + + static const std::int32_t ID = 1869640000; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addCustomServerLanguagePack final : public Function { + public: + string language_pack_id_; + + addCustomServerLanguagePack(); + + explicit addCustomServerLanguagePack(string const &language_pack_id_); + + static const std::int32_t ID = 4492771; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addFavoriteSticker final : public Function { + public: + object_ptr<InputFile> sticker_; + + addFavoriteSticker(); + + explicit addFavoriteSticker(object_ptr<InputFile> &&sticker_); + + static const std::int32_t ID = 324504799; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addFileToDownloads final : public Function { + public: + int32 file_id_; + int53 chat_id_; + int53 message_id_; + int32 priority_; + + addFileToDownloads(); + + addFileToDownloads(int32 file_id_, int53 chat_id_, int53 message_id_, int32 priority_); + + static const std::int32_t ID = 867533751; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<file>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addLocalMessage final : public Function { + public: + int53 chat_id_; + object_ptr<MessageSender> sender_id_; + int53 reply_to_message_id_; + bool disable_notification_; + object_ptr<InputMessageContent> input_message_content_; + + addLocalMessage(); + + addLocalMessage(int53 chat_id_, object_ptr<MessageSender> &&sender_id_, int53 reply_to_message_id_, bool disable_notification_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = -1998878725; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addLogMessage final : public Function { + public: + int32 verbosity_level_; + string text_; + + addLogMessage(); + + addLogMessage(int32 verbosity_level_, string const &text_); + + static const std::int32_t ID = 1597427692; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addMessageReaction final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReactionType> reaction_type_; + bool is_big_; + bool update_recent_reactions_; + + addMessageReaction(); + + addMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, bool is_big_, bool update_recent_reactions_); + + static const std::int32_t ID = 1419269613; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addNetworkStatistics final : public Function { + public: + object_ptr<NetworkStatisticsEntry> entry_; + + addNetworkStatistics(); + + explicit addNetworkStatistics(object_ptr<NetworkStatisticsEntry> &&entry_); + + static const std::int32_t ID = 1264825305; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addProxy final : public Function { + public: + string server_; + int32 port_; + bool enable_; + object_ptr<ProxyType> type_; + + addProxy(); + + addProxy(string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_); + + static const std::int32_t ID = 331529432; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<proxy>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addRecentSticker final : public Function { + public: + bool is_attached_; + object_ptr<InputFile> sticker_; + + addRecentSticker(); + + addRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_); + + static const std::int32_t ID = -1478109026; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addRecentlyFoundChat final : public Function { + public: + int53 chat_id_; + + addRecentlyFoundChat(); + + explicit addRecentlyFoundChat(int53 chat_id_); + + static const std::int32_t ID = -1746396787; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addSavedAnimation final : public Function { + public: + object_ptr<InputFile> animation_; + + addSavedAnimation(); + + explicit addSavedAnimation(object_ptr<InputFile> &&animation_); + + static const std::int32_t ID = -1538525088; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addSavedNotificationSound final : public Function { + public: + object_ptr<InputFile> sound_; + + addSavedNotificationSound(); + + explicit addSavedNotificationSound(object_ptr<InputFile> &&sound_); + + static const std::int32_t ID = 1043956975; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<notificationSound>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class addStickerToSet final : public Function { + public: + int53 user_id_; + string name_; + object_ptr<inputSticker> sticker_; + + addStickerToSet(); + + addStickerToSet(int53 user_id_, string const &name_, object_ptr<inputSticker> &&sticker_); + + static const std::int32_t ID = -1340783267; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSet>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class answerCallbackQuery final : public Function { + public: + int64 callback_query_id_; + string text_; + bool show_alert_; + string url_; + int32 cache_time_; + + answerCallbackQuery(); + + answerCallbackQuery(int64 callback_query_id_, string const &text_, bool show_alert_, string const &url_, int32 cache_time_); + + static const std::int32_t ID = -1153028490; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class answerCustomQuery final : public Function { + public: + int64 custom_query_id_; + string data_; + + answerCustomQuery(); + + answerCustomQuery(int64 custom_query_id_, string const &data_); + + static const std::int32_t ID = -1293603521; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class answerInlineQuery final : public Function { + public: + int64 inline_query_id_; + bool is_personal_; + array<object_ptr<InputInlineQueryResult>> results_; + int32 cache_time_; + string next_offset_; + string switch_pm_text_; + string switch_pm_parameter_; + + answerInlineQuery(); + + answerInlineQuery(int64 inline_query_id_, bool is_personal_, array<object_ptr<InputInlineQueryResult>> &&results_, int32 cache_time_, string const &next_offset_, string const &switch_pm_text_, string const &switch_pm_parameter_); + + static const std::int32_t ID = 485879477; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class answerPreCheckoutQuery final : public Function { + public: + int64 pre_checkout_query_id_; + string error_message_; + + answerPreCheckoutQuery(); + + answerPreCheckoutQuery(int64 pre_checkout_query_id_, string const &error_message_); + + static const std::int32_t ID = -1486789653; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class answerShippingQuery final : public Function { + public: + int64 shipping_query_id_; + array<object_ptr<shippingOption>> shipping_options_; + string error_message_; + + answerShippingQuery(); + + answerShippingQuery(int64 shipping_query_id_, array<object_ptr<shippingOption>> &&shipping_options_, string const &error_message_); + + static const std::int32_t ID = -434601324; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class answerWebAppQuery final : public Function { + public: + string web_app_query_id_; + object_ptr<InputInlineQueryResult> result_; + + answerWebAppQuery(); + + answerWebAppQuery(string const &web_app_query_id_, object_ptr<InputInlineQueryResult> &&result_); + + static const std::int32_t ID = -1598776079; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<sentWebAppMessage>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class assignAppStoreTransaction final : public Function { + public: + bytes receipt_; + object_ptr<StorePaymentPurpose> purpose_; + + assignAppStoreTransaction(); + + assignAppStoreTransaction(bytes const &receipt_, object_ptr<StorePaymentPurpose> &&purpose_); + + static const std::int32_t ID = -2030892112; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class assignGooglePlayTransaction final : public Function { + public: + string package_name_; + string store_product_id_; + string purchase_token_; + object_ptr<StorePaymentPurpose> purpose_; + + assignGooglePlayTransaction(); + + assignGooglePlayTransaction(string const &package_name_, string const &store_product_id_, string const &purchase_token_, object_ptr<StorePaymentPurpose> &&purpose_); + + static const std::int32_t ID = -1992704860; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class banChatMember final : public Function { + public: + int53 chat_id_; + object_ptr<MessageSender> member_id_; + int32 banned_until_date_; + bool revoke_messages_; + + banChatMember(); + + banChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_, int32 banned_until_date_, bool revoke_messages_); + + static const std::int32_t ID = -888111748; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class blockMessageSenderFromReplies final : public Function { + public: + int53 message_id_; + bool delete_message_; + bool delete_all_messages_; + bool report_spam_; + + blockMessageSenderFromReplies(); + + blockMessageSenderFromReplies(int53 message_id_, bool delete_message_, bool delete_all_messages_, bool report_spam_); + + static const std::int32_t ID = -1214384757; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canPurchasePremium final : public Function { + public: + object_ptr<StorePaymentPurpose> purpose_; + + canPurchasePremium(); + + explicit canPurchasePremium(object_ptr<StorePaymentPurpose> &&purpose_); + + static const std::int32_t ID = -371319616; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class canTransferOwnership final : public Function { + public: + + canTransferOwnership(); + + static const std::int32_t ID = 634602508; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<CanTransferOwnershipResult>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class cancelDownloadFile final : public Function { + public: + int32 file_id_; + bool only_if_pending_; + + cancelDownloadFile(); + + cancelDownloadFile(int32 file_id_, bool only_if_pending_); + + static const std::int32_t ID = -1954524450; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class cancelPasswordReset final : public Function { + public: + + cancelPasswordReset(); + + static const std::int32_t ID = 940733538; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class cancelPreliminaryUploadFile final : public Function { + public: + int32 file_id_; + + cancelPreliminaryUploadFile(); + + explicit cancelPreliminaryUploadFile(int32 file_id_); + + static const std::int32_t ID = 823412414; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class changeImportedContacts final : public Function { + public: + array<object_ptr<contact>> contacts_; + + changeImportedContacts(); + + explicit changeImportedContacts(array<object_ptr<contact>> &&contacts_); + + static const std::int32_t ID = 1968207955; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<importedContacts>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class changePhoneNumber final : public Function { + public: + string phone_number_; + object_ptr<phoneNumberAuthenticationSettings> settings_; + + changePhoneNumber(); + + changePhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_); + + static const std::int32_t ID = -124666973; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<authenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class changeStickerSet final : public Function { + public: + int64 set_id_; + bool is_installed_; + bool is_archived_; + + changeStickerSet(); + + changeStickerSet(int64 set_id_, bool is_installed_, bool is_archived_); + + static const std::int32_t ID = 449357293; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkAuthenticationBotToken final : public Function { + public: + string token_; + + checkAuthenticationBotToken(); + + explicit checkAuthenticationBotToken(string const &token_); + + static const std::int32_t ID = 639321206; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkAuthenticationCode final : public Function { + public: + string code_; + + checkAuthenticationCode(); + + explicit checkAuthenticationCode(string const &code_); + + static const std::int32_t ID = -302103382; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkAuthenticationEmailCode final : public Function { + public: + object_ptr<EmailAddressAuthentication> code_; + + checkAuthenticationEmailCode(); + + explicit checkAuthenticationEmailCode(object_ptr<EmailAddressAuthentication> &&code_); + + static const std::int32_t ID = -582827361; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkAuthenticationPassword final : public Function { + public: + string password_; + + checkAuthenticationPassword(); + + explicit checkAuthenticationPassword(string const &password_); + + static const std::int32_t ID = -2025698400; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkAuthenticationPasswordRecoveryCode final : public Function { + public: + string recovery_code_; + + checkAuthenticationPasswordRecoveryCode(); + + explicit checkAuthenticationPasswordRecoveryCode(string const &recovery_code_); + + static const std::int32_t ID = -603309083; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChangePhoneNumberCode final : public Function { + public: + string code_; + + checkChangePhoneNumberCode(); + + explicit checkChangePhoneNumberCode(string const &code_); + + static const std::int32_t ID = -1720278429; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatInviteLink final : public Function { + public: + string invite_link_; + + checkChatInviteLink(); + + explicit checkChatInviteLink(string const &invite_link_); + + static const std::int32_t ID = -496940997; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLinkInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkChatUsername final : public Function { + public: + int53 chat_id_; + string username_; + + checkChatUsername(); + + checkChatUsername(int53 chat_id_, string const &username_); + + static const std::int32_t ID = -119119344; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<CheckChatUsernameResult>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkCreatedPublicChatsLimit final : public Function { + public: + object_ptr<PublicChatType> type_; + + checkCreatedPublicChatsLimit(); + + explicit checkCreatedPublicChatsLimit(object_ptr<PublicChatType> &&type_); + + static const std::int32_t ID = -445546591; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkEmailAddressVerificationCode final : public Function { + public: + string code_; + + checkEmailAddressVerificationCode(); + + explicit checkEmailAddressVerificationCode(string const &code_); + + static const std::int32_t ID = -426386685; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkLoginEmailAddressCode final : public Function { + public: + object_ptr<EmailAddressAuthentication> code_; + + checkLoginEmailAddressCode(); + + explicit checkLoginEmailAddressCode(object_ptr<EmailAddressAuthentication> &&code_); + + static const std::int32_t ID = -1454244766; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkPasswordRecoveryCode final : public Function { + public: + string recovery_code_; + + checkPasswordRecoveryCode(); + + explicit checkPasswordRecoveryCode(string const &recovery_code_); + + static const std::int32_t ID = -200794600; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkPhoneNumberConfirmationCode final : public Function { + public: + string code_; + + checkPhoneNumberConfirmationCode(); + + explicit checkPhoneNumberConfirmationCode(string const &code_); + + static const std::int32_t ID = -1348060966; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkPhoneNumberVerificationCode final : public Function { + public: + string code_; + + checkPhoneNumberVerificationCode(); + + explicit checkPhoneNumberVerificationCode(string const &code_); + + static const std::int32_t ID = 1497462718; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkRecoveryEmailAddressCode final : public Function { + public: + string code_; + + checkRecoveryEmailAddressCode(); + + explicit checkRecoveryEmailAddressCode(string const &code_); + + static const std::int32_t ID = -1997039589; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passwordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class checkStickerSetName final : public Function { + public: + string name_; + + checkStickerSetName(); + + explicit checkStickerSetName(string const &name_); + + static const std::int32_t ID = -1789392642; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<CheckStickerSetNameResult>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class cleanFileName final : public Function { + public: + string file_name_; + + cleanFileName(); + + explicit cleanFileName(string const &file_name_); + + static const std::int32_t ID = 967964667; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clearAllDraftMessages final : public Function { + public: + bool exclude_secret_chats_; + + clearAllDraftMessages(); + + explicit clearAllDraftMessages(bool exclude_secret_chats_); + + static const std::int32_t ID = -46369573; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clearImportedContacts final : public Function { + public: + + clearImportedContacts(); + + static const std::int32_t ID = 869503298; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clearRecentEmojiStatuses final : public Function { + public: + + clearRecentEmojiStatuses(); + + static const std::int32_t ID = -428749986; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clearRecentReactions final : public Function { + public: + + clearRecentReactions(); + + static const std::int32_t ID = 1298253650; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clearRecentStickers final : public Function { + public: + bool is_attached_; + + clearRecentStickers(); + + explicit clearRecentStickers(bool is_attached_); + + static const std::int32_t ID = -321242684; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clearRecentlyFoundChats final : public Function { + public: + + clearRecentlyFoundChats(); + + static const std::int32_t ID = -285582542; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clickAnimatedEmojiMessage final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + clickAnimatedEmojiMessage(); + + clickAnimatedEmojiMessage(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 196179554; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<sticker>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class clickPremiumSubscriptionButton final : public Function { + public: + + clickPremiumSubscriptionButton(); + + static const std::int32_t ID = -369319162; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class close final : public Function { + public: + + close(); + + static const std::int32_t ID = -1187782273; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class closeChat final : public Function { + public: + int53 chat_id_; + + closeChat(); + + explicit closeChat(int53 chat_id_); + + static const std::int32_t ID = 39749353; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class closeSecretChat final : public Function { + public: + int32 secret_chat_id_; + + closeSecretChat(); + + explicit closeSecretChat(int32 secret_chat_id_); + + static const std::int32_t ID = -471006133; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class closeWebApp final : public Function { + public: + int64 web_app_launch_id_; + + closeWebApp(); + + explicit closeWebApp(int64 web_app_launch_id_); + + static const std::int32_t ID = 1755391174; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class confirmQrCodeAuthentication final : public Function { + public: + string link_; + + confirmQrCodeAuthentication(); + + explicit confirmQrCodeAuthentication(string const &link_); + + static const std::int32_t ID = -376199379; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<session>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createBasicGroupChat final : public Function { + public: + int53 basic_group_id_; + bool force_; + + createBasicGroupChat(); + + createBasicGroupChat(int53 basic_group_id_, bool force_); + + static const std::int32_t ID = 1972024548; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createCall final : public Function { + public: + int53 user_id_; + object_ptr<callProtocol> protocol_; + bool is_video_; + + createCall(); + + createCall(int53 user_id_, object_ptr<callProtocol> &&protocol_, bool is_video_); + + static const std::int32_t ID = -1104663024; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<callId>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createChatFilter final : public Function { + public: + object_ptr<chatFilter> filter_; + + createChatFilter(); + + explicit createChatFilter(object_ptr<chatFilter> &&filter_); + + static const std::int32_t ID = 49065126; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatFilterInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createChatInviteLink final : public Function { + public: + int53 chat_id_; + string name_; + int32 expiration_date_; + int32 member_limit_; + bool creates_join_request_; + + createChatInviteLink(); + + createChatInviteLink(int53 chat_id_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_); + + static const std::int32_t ID = 287744833; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLink>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createForumTopic final : public Function { + public: + int53 chat_id_; + string name_; + object_ptr<forumTopicIcon> icon_; + + createForumTopic(); + + createForumTopic(int53 chat_id_, string const &name_, object_ptr<forumTopicIcon> &&icon_); + + static const std::int32_t ID = -1040570140; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<forumTopicInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createInvoiceLink final : public Function { + public: + object_ptr<InputMessageContent> invoice_; + + createInvoiceLink(); + + explicit createInvoiceLink(object_ptr<InputMessageContent> &&invoice_); + + static const std::int32_t ID = 216787233; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createNewBasicGroupChat final : public Function { + public: + array<int53> user_ids_; + string title_; + + createNewBasicGroupChat(); + + createNewBasicGroupChat(array<int53> &&user_ids_, string const &title_); + + static const std::int32_t ID = -2104438789; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createNewSecretChat final : public Function { + public: + int53 user_id_; + + createNewSecretChat(); + + explicit createNewSecretChat(int53 user_id_); + + static const std::int32_t ID = -620682651; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createNewStickerSet final : public Function { + public: + int53 user_id_; + string title_; + string name_; + object_ptr<StickerType> sticker_type_; + array<object_ptr<inputSticker>> stickers_; + string source_; + + createNewStickerSet(); + + createNewStickerSet(int53 user_id_, string const &title_, string const &name_, object_ptr<StickerType> &&sticker_type_, array<object_ptr<inputSticker>> &&stickers_, string const &source_); + + static const std::int32_t ID = 1424129402; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSet>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createNewSupergroupChat final : public Function { + public: + string title_; + bool is_channel_; + string description_; + object_ptr<chatLocation> location_; + bool for_import_; + + createNewSupergroupChat(); + + createNewSupergroupChat(string const &title_, bool is_channel_, string const &description_, object_ptr<chatLocation> &&location_, bool for_import_); + + static const std::int32_t ID = -830232895; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createPrivateChat final : public Function { + public: + int53 user_id_; + bool force_; + + createPrivateChat(); + + createPrivateChat(int53 user_id_, bool force_); + + static const std::int32_t ID = -947758327; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createSecretChat final : public Function { + public: + int32 secret_chat_id_; + + createSecretChat(); + + explicit createSecretChat(int32 secret_chat_id_); + + static const std::int32_t ID = 1930285615; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createSupergroupChat final : public Function { + public: + int53 supergroup_id_; + bool force_; + + createSupergroupChat(); + + createSupergroupChat(int53 supergroup_id_, bool force_); + + static const std::int32_t ID = 1187475691; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createTemporaryPassword final : public Function { + public: + string password_; + int32 valid_for_; + + createTemporaryPassword(); + + createTemporaryPassword(string const &password_, int32 valid_for_); + + static const std::int32_t ID = -1626509434; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<temporaryPasswordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class createVideoChat final : public Function { + public: + int53 chat_id_; + string title_; + int32 start_date_; + bool is_rtmp_stream_; + + createVideoChat(); + + createVideoChat(int53 chat_id_, string const &title_, int32 start_date_, bool is_rtmp_stream_); + + static const std::int32_t ID = 2124715405; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<groupCallId>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteAccount final : public Function { + public: + string reason_; + string password_; + + deleteAccount(); + + deleteAccount(string const &reason_, string const &password_); + + static const std::int32_t ID = 1395816134; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteAllCallMessages final : public Function { + public: + bool revoke_; + + deleteAllCallMessages(); + + explicit deleteAllCallMessages(bool revoke_); + + static const std::int32_t ID = -1466445325; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteAllRevokedChatInviteLinks final : public Function { + public: + int53 chat_id_; + int53 creator_user_id_; + + deleteAllRevokedChatInviteLinks(); + + deleteAllRevokedChatInviteLinks(int53 chat_id_, int53 creator_user_id_); + + static const std::int32_t ID = 1112020698; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteChat final : public Function { + public: + int53 chat_id_; + + deleteChat(); + + explicit deleteChat(int53 chat_id_); + + static const std::int32_t ID = -171253666; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteChatFilter final : public Function { + public: + int32 chat_filter_id_; + + deleteChatFilter(); + + explicit deleteChatFilter(int32 chat_filter_id_); + + static const std::int32_t ID = -523220877; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteChatHistory final : public Function { + public: + int53 chat_id_; + bool remove_from_chat_list_; + bool revoke_; + + deleteChatHistory(); + + deleteChatHistory(int53 chat_id_, bool remove_from_chat_list_, bool revoke_); + + static const std::int32_t ID = -1472081761; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteChatMessagesByDate final : public Function { + public: + int53 chat_id_; + int32 min_date_; + int32 max_date_; + bool revoke_; + + deleteChatMessagesByDate(); + + deleteChatMessagesByDate(int53 chat_id_, int32 min_date_, int32 max_date_, bool revoke_); + + static const std::int32_t ID = -1639653185; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteChatMessagesBySender final : public Function { + public: + int53 chat_id_; + object_ptr<MessageSender> sender_id_; + + deleteChatMessagesBySender(); + + deleteChatMessagesBySender(int53 chat_id_, object_ptr<MessageSender> &&sender_id_); + + static const std::int32_t ID = -1164235161; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteChatReplyMarkup final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + deleteChatReplyMarkup(); + + deleteChatReplyMarkup(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 100637531; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteCommands final : public Function { + public: + object_ptr<BotCommandScope> scope_; + string language_code_; + + deleteCommands(); + + deleteCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_); + + static const std::int32_t ID = 1002732586; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteFile final : public Function { + public: + int32 file_id_; + + deleteFile(); + + explicit deleteFile(int32 file_id_); + + static const std::int32_t ID = 1807653676; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteForumTopic final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + + deleteForumTopic(); + + deleteForumTopic(int53 chat_id_, int53 message_thread_id_); + + static const std::int32_t ID = 1864916152; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteLanguagePack final : public Function { + public: + string language_pack_id_; + + deleteLanguagePack(); + + explicit deleteLanguagePack(string const &language_pack_id_); + + static const std::int32_t ID = -2108761026; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteMessages final : public Function { + public: + int53 chat_id_; + array<int53> message_ids_; + bool revoke_; + + deleteMessages(); + + deleteMessages(int53 chat_id_, array<int53> &&message_ids_, bool revoke_); + + static const std::int32_t ID = 1130090173; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deletePassportElement final : public Function { + public: + object_ptr<PassportElementType> type_; + + deletePassportElement(); + + explicit deletePassportElement(object_ptr<PassportElementType> &&type_); + + static const std::int32_t ID = -1719555468; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteProfilePhoto final : public Function { + public: + int64 profile_photo_id_; + + deleteProfilePhoto(); + + explicit deleteProfilePhoto(int64 profile_photo_id_); + + static const std::int32_t ID = 1319794625; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteRevokedChatInviteLink final : public Function { + public: + int53 chat_id_; + string invite_link_; + + deleteRevokedChatInviteLink(); + + deleteRevokedChatInviteLink(int53 chat_id_, string const &invite_link_); + + static const std::int32_t ID = -1859711873; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteSavedCredentials final : public Function { + public: + + deleteSavedCredentials(); + + static const std::int32_t ID = 826300114; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class deleteSavedOrderInfo final : public Function { + public: + + deleteSavedOrderInfo(); + + static const std::int32_t ID = 1629058164; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class destroy final : public Function { + public: + + destroy(); + + static const std::int32_t ID = 685331274; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class disableAllSupergroupUsernames final : public Function { + public: + int53 supergroup_id_; + + disableAllSupergroupUsernames(); + + explicit disableAllSupergroupUsernames(int53 supergroup_id_); + + static const std::int32_t ID = 843511216; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class disableProxy final : public Function { + public: + + disableProxy(); + + static const std::int32_t ID = -2100095102; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class discardCall final : public Function { + public: + int32 call_id_; + bool is_disconnected_; + int32 duration_; + bool is_video_; + int64 connection_id_; + + discardCall(); + + discardCall(int32 call_id_, bool is_disconnected_, int32 duration_, bool is_video_, int64 connection_id_); + + static const std::int32_t ID = -1784044162; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class disconnectAllWebsites final : public Function { + public: + + disconnectAllWebsites(); + + static const std::int32_t ID = -1082985981; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class disconnectWebsite final : public Function { + public: + int64 website_id_; + + disconnectWebsite(); + + explicit disconnectWebsite(int64 website_id_); + + static const std::int32_t ID = -778767395; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class downloadFile final : public Function { + public: + int32 file_id_; + int32 priority_; + int53 offset_; + int53 limit_; + bool synchronous_; + + downloadFile(); + + downloadFile(int32 file_id_, int32 priority_, int53 offset_, int53 limit_, bool synchronous_); + + static const std::int32_t ID = 1059402292; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<file>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editChatFilter final : public Function { + public: + int32 chat_filter_id_; + object_ptr<chatFilter> filter_; + + editChatFilter(); + + editChatFilter(int32 chat_filter_id_, object_ptr<chatFilter> &&filter_); + + static const std::int32_t ID = -1674793086; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatFilterInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editChatInviteLink final : public Function { + public: + int53 chat_id_; + string invite_link_; + string name_; + int32 expiration_date_; + int32 member_limit_; + bool creates_join_request_; + + editChatInviteLink(); + + editChatInviteLink(int53 chat_id_, string const &invite_link_, string const &name_, int32 expiration_date_, int32 member_limit_, bool creates_join_request_); + + static const std::int32_t ID = 1320303996; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLink>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editCustomLanguagePackInfo final : public Function { + public: + object_ptr<languagePackInfo> info_; + + editCustomLanguagePackInfo(); + + explicit editCustomLanguagePackInfo(object_ptr<languagePackInfo> &&info_); + + static const std::int32_t ID = 1320751257; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editForumTopic final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + string name_; + int64 icon_custom_emoji_id_; + + editForumTopic(); + + editForumTopic(int53 chat_id_, int53 message_thread_id_, string const &name_, int64 icon_custom_emoji_id_); + + static const std::int32_t ID = -222142032; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editInlineMessageCaption final : public Function { + public: + string inline_message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<formattedText> caption_; + + editInlineMessageCaption(); + + editInlineMessageCaption(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = -760985929; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editInlineMessageLiveLocation final : public Function { + public: + string inline_message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<location> location_; + int32 heading_; + int32 proximity_alert_radius_; + + editInlineMessageLiveLocation(); + + editInlineMessageLiveLocation(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_); + + static const std::int32_t ID = -156902912; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editInlineMessageMedia final : public Function { + public: + string inline_message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + editInlineMessageMedia(); + + editInlineMessageMedia(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 23553921; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editInlineMessageReplyMarkup final : public Function { + public: + string inline_message_id_; + object_ptr<ReplyMarkup> reply_markup_; + + editInlineMessageReplyMarkup(); + + editInlineMessageReplyMarkup(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = -67565858; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editInlineMessageText final : public Function { + public: + string inline_message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + editInlineMessageText(); + + editInlineMessageText(string const &inline_message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = -855457307; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editMessageCaption final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<formattedText> caption_; + + editMessageCaption(); + + editMessageCaption(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<formattedText> &&caption_); + + static const std::int32_t ID = 1154677038; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editMessageLiveLocation final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<location> location_; + int32 heading_; + int32 proximity_alert_radius_; + + editMessageLiveLocation(); + + editMessageLiveLocation(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<location> &&location_, int32 heading_, int32 proximity_alert_radius_); + + static const std::int32_t ID = -14047982; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editMessageMedia final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + editMessageMedia(); + + editMessageMedia(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = -1152678125; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editMessageReplyMarkup final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReplyMarkup> reply_markup_; + + editMessageReplyMarkup(); + + editMessageReplyMarkup(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = 332127881; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editMessageSchedulingState final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<MessageSchedulingState> scheduling_state_; + + editMessageSchedulingState(); + + editMessageSchedulingState(int53 chat_id_, int53 message_id_, object_ptr<MessageSchedulingState> &&scheduling_state_); + + static const std::int32_t ID = -1372976192; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editMessageText final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + editMessageText(); + + editMessageText(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 196272567; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class editProxy final : public Function { + public: + int32 proxy_id_; + string server_; + int32 port_; + bool enable_; + object_ptr<ProxyType> type_; + + editProxy(); + + editProxy(int32 proxy_id_, string const &server_, int32 port_, bool enable_, object_ptr<ProxyType> &&type_); + + static const std::int32_t ID = -1605883821; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<proxy>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class enableProxy final : public Function { + public: + int32 proxy_id_; + + enableProxy(); + + explicit enableProxy(int32 proxy_id_); + + static const std::int32_t ID = 1494450838; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class endGroupCall final : public Function { + public: + int32 group_call_id_; + + endGroupCall(); + + explicit endGroupCall(int32 group_call_id_); + + static const std::int32_t ID = 573131959; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class endGroupCallRecording final : public Function { + public: + int32 group_call_id_; + + endGroupCallRecording(); + + explicit endGroupCallRecording(int32 group_call_id_); + + static const std::int32_t ID = -75799927; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class endGroupCallScreenSharing final : public Function { + public: + int32 group_call_id_; + + endGroupCallScreenSharing(); + + explicit endGroupCallScreenSharing(int32 group_call_id_); + + static const std::int32_t ID = -2047599540; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class finishFileGeneration final : public Function { + public: + int64 generation_id_; + object_ptr<error> error_; + + finishFileGeneration(); + + finishFileGeneration(int64 generation_id_, object_ptr<error> &&error_); + + static const std::int32_t ID = -1055060835; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class forwardMessages final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + int53 from_chat_id_; + array<int53> message_ids_; + object_ptr<messageSendOptions> options_; + bool send_copy_; + bool remove_caption_; + bool only_preview_; + + forwardMessages(); + + forwardMessages(int53 chat_id_, int53 message_thread_id_, int53 from_chat_id_, array<int53> &&message_ids_, object_ptr<messageSendOptions> &&options_, bool send_copy_, bool remove_caption_, bool only_preview_); + + static const std::int32_t ID = -1054441908; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getAccountTtl final : public Function { + public: + + getAccountTtl(); + + static const std::int32_t ID = -443905161; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<accountTtl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getActiveLiveLocationMessages final : public Function { + public: + + getActiveLiveLocationMessages(); + + static const std::int32_t ID = -1425459567; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getActiveSessions final : public Function { + public: + + getActiveSessions(); + + static const std::int32_t ID = 1119710526; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<sessions>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getAllPassportElements final : public Function { + public: + string password_; + + getAllPassportElements(); + + explicit getAllPassportElements(string const &password_); + + static const std::int32_t ID = -2038945045; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passportElements>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getAnimatedEmoji final : public Function { + public: + string emoji_; + + getAnimatedEmoji(); + + explicit getAnimatedEmoji(string const &emoji_); + + static const std::int32_t ID = 1065635702; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<animatedEmoji>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getApplicationConfig final : public Function { + public: + + getApplicationConfig(); + + static const std::int32_t ID = -1823144318; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<JsonValue>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getApplicationDownloadLink final : public Function { + public: + + getApplicationDownloadLink(); + + static const std::int32_t ID = 112013252; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getArchivedStickerSets final : public Function { + public: + object_ptr<StickerType> sticker_type_; + int64 offset_sticker_set_id_; + int32 limit_; + + getArchivedStickerSets(); + + getArchivedStickerSets(object_ptr<StickerType> &&sticker_type_, int64 offset_sticker_set_id_, int32 limit_); + + static const std::int32_t ID = 1001931341; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSets>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getAttachedStickerSets final : public Function { + public: + int32 file_id_; + + getAttachedStickerSets(); + + explicit getAttachedStickerSets(int32 file_id_); + + static const std::int32_t ID = 1302172429; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSets>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getAttachmentMenuBot final : public Function { + public: + int53 bot_user_id_; + + getAttachmentMenuBot(); + + explicit getAttachmentMenuBot(int53 bot_user_id_); + + static const std::int32_t ID = 1034248699; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<attachmentMenuBot>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getAuthorizationState final : public Function { + public: + + getAuthorizationState(); + + static const std::int32_t ID = 1949154877; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<AuthorizationState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getAutoDownloadSettingsPresets final : public Function { + public: + + getAutoDownloadSettingsPresets(); + + static const std::int32_t ID = -1721088201; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<autoDownloadSettingsPresets>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getBackgroundUrl final : public Function { + public: + string name_; + object_ptr<BackgroundType> type_; + + getBackgroundUrl(); + + getBackgroundUrl(string const &name_, object_ptr<BackgroundType> &&type_); + + static const std::int32_t ID = 733769682; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getBackgrounds final : public Function { + public: + bool for_dark_theme_; + + getBackgrounds(); + + explicit getBackgrounds(bool for_dark_theme_); + + static const std::int32_t ID = 249072633; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<backgrounds>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getBankCardInfo final : public Function { + public: + string bank_card_number_; + + getBankCardInfo(); + + explicit getBankCardInfo(string const &bank_card_number_); + + static const std::int32_t ID = -1310515792; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<bankCardInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getBasicGroup final : public Function { + public: + int53 basic_group_id_; + + getBasicGroup(); + + explicit getBasicGroup(int53 basic_group_id_); + + static const std::int32_t ID = -1635174828; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<basicGroup>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getBasicGroupFullInfo final : public Function { + public: + int53 basic_group_id_; + + getBasicGroupFullInfo(); + + explicit getBasicGroupFullInfo(int53 basic_group_id_); + + static const std::int32_t ID = -1822039253; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<basicGroupFullInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getBlockedMessageSenders final : public Function { + public: + int32 offset_; + int32 limit_; + + getBlockedMessageSenders(); + + getBlockedMessageSenders(int32 offset_, int32 limit_); + + static const std::int32_t ID = 1947079776; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messageSenders>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCallbackQueryAnswer final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<CallbackQueryPayload> payload_; + + getCallbackQueryAnswer(); + + getCallbackQueryAnswer(int53 chat_id_, int53 message_id_, object_ptr<CallbackQueryPayload> &&payload_); + + static const std::int32_t ID = 116357727; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<callbackQueryAnswer>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCallbackQueryMessage final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int64 callback_query_id_; + + getCallbackQueryMessage(); + + getCallbackQueryMessage(int53 chat_id_, int53 message_id_, int64 callback_query_id_); + + static const std::int32_t ID = -1121939086; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChat final : public Function { + public: + int53 chat_id_; + + getChat(); + + explicit getChat(int53 chat_id_); + + static const std::int32_t ID = 1866601536; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatAdministrators final : public Function { + public: + int53 chat_id_; + + getChatAdministrators(); + + explicit getChatAdministrators(int53 chat_id_); + + static const std::int32_t ID = 1544468155; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatAdministrators>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatAvailableMessageSenders final : public Function { + public: + int53 chat_id_; + + getChatAvailableMessageSenders(); + + explicit getChatAvailableMessageSenders(int53 chat_id_); + + static const std::int32_t ID = 1158670635; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatMessageSenders>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatEventLog final : public Function { + public: + int53 chat_id_; + string query_; + int64 from_event_id_; + int32 limit_; + object_ptr<chatEventLogFilters> filters_; + array<int53> user_ids_; + + getChatEventLog(); + + getChatEventLog(int53 chat_id_, string const &query_, int64 from_event_id_, int32 limit_, object_ptr<chatEventLogFilters> &&filters_, array<int53> &&user_ids_); + + static const std::int32_t ID = -1281344669; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatEvents>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatFilter final : public Function { + public: + int32 chat_filter_id_; + + getChatFilter(); + + explicit getChatFilter(int32 chat_filter_id_); + + static const std::int32_t ID = 1826317803; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatFilter>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatFilterDefaultIconName final : public Function { + public: + object_ptr<chatFilter> filter_; + + getChatFilterDefaultIconName(); + + explicit getChatFilterDefaultIconName(object_ptr<chatFilter> &&filter_); + + static const std::int32_t ID = -1339828680; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatHistory final : public Function { + public: + int53 chat_id_; + int53 from_message_id_; + int32 offset_; + int32 limit_; + bool only_local_; + + getChatHistory(); + + getChatHistory(int53 chat_id_, int53 from_message_id_, int32 offset_, int32 limit_, bool only_local_); + + static const std::int32_t ID = -799960451; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatInviteLink final : public Function { + public: + int53 chat_id_; + string invite_link_; + + getChatInviteLink(); + + getChatInviteLink(int53 chat_id_, string const &invite_link_); + + static const std::int32_t ID = -479575555; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLink>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatInviteLinkCounts final : public Function { + public: + int53 chat_id_; + + getChatInviteLinkCounts(); + + explicit getChatInviteLinkCounts(int53 chat_id_); + + static const std::int32_t ID = 890299025; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLinkCounts>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatInviteLinkMembers final : public Function { + public: + int53 chat_id_; + string invite_link_; + object_ptr<chatInviteLinkMember> offset_member_; + int32 limit_; + + getChatInviteLinkMembers(); + + getChatInviteLinkMembers(int53 chat_id_, string const &invite_link_, object_ptr<chatInviteLinkMember> &&offset_member_, int32 limit_); + + static const std::int32_t ID = -977921638; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLinkMembers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatInviteLinks final : public Function { + public: + int53 chat_id_; + int53 creator_user_id_; + bool is_revoked_; + int32 offset_date_; + string offset_invite_link_; + int32 limit_; + + getChatInviteLinks(); + + getChatInviteLinks(int53 chat_id_, int53 creator_user_id_, bool is_revoked_, int32 offset_date_, string const &offset_invite_link_, int32 limit_); + + static const std::int32_t ID = 883252396; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLinks>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatJoinRequests final : public Function { + public: + int53 chat_id_; + string invite_link_; + string query_; + object_ptr<chatJoinRequest> offset_request_; + int32 limit_; + + getChatJoinRequests(); + + getChatJoinRequests(int53 chat_id_, string const &invite_link_, string const &query_, object_ptr<chatJoinRequest> &&offset_request_, int32 limit_); + + static const std::int32_t ID = -388428126; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatJoinRequests>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatListsToAddChat final : public Function { + public: + int53 chat_id_; + + getChatListsToAddChat(); + + explicit getChatListsToAddChat(int53 chat_id_); + + static const std::int32_t ID = 654956193; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatLists>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatMember final : public Function { + public: + int53 chat_id_; + object_ptr<MessageSender> member_id_; + + getChatMember(); + + getChatMember(int53 chat_id_, object_ptr<MessageSender> &&member_id_); + + static const std::int32_t ID = -792636814; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatMember>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatMessageByDate final : public Function { + public: + int53 chat_id_; + int32 date_; + + getChatMessageByDate(); + + getChatMessageByDate(int53 chat_id_, int32 date_); + + static const std::int32_t ID = 1062564150; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatMessageCalendar final : public Function { + public: + int53 chat_id_; + object_ptr<SearchMessagesFilter> filter_; + int53 from_message_id_; + + getChatMessageCalendar(); + + getChatMessageCalendar(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_); + + static const std::int32_t ID = -326164204; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messageCalendar>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatMessageCount final : public Function { + public: + int53 chat_id_; + object_ptr<SearchMessagesFilter> filter_; + bool return_local_; + + getChatMessageCount(); + + getChatMessageCount(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, bool return_local_); + + static const std::int32_t ID = 205435308; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<count>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatMessagePosition final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<SearchMessagesFilter> filter_; + int53 message_thread_id_; + + getChatMessagePosition(); + + getChatMessagePosition(int53 chat_id_, int53 message_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_); + + static const std::int32_t ID = -559474920; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<count>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatNotificationSettingsExceptions final : public Function { + public: + object_ptr<NotificationSettingsScope> scope_; + bool compare_sound_; + + getChatNotificationSettingsExceptions(); + + getChatNotificationSettingsExceptions(object_ptr<NotificationSettingsScope> &&scope_, bool compare_sound_); + + static const std::int32_t ID = 201199121; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatPinnedMessage final : public Function { + public: + int53 chat_id_; + + getChatPinnedMessage(); + + explicit getChatPinnedMessage(int53 chat_id_); + + static const std::int32_t ID = 359865008; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatScheduledMessages final : public Function { + public: + int53 chat_id_; + + getChatScheduledMessages(); + + explicit getChatScheduledMessages(int53 chat_id_); + + static const std::int32_t ID = -549638149; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatSparseMessagePositions final : public Function { + public: + int53 chat_id_; + object_ptr<SearchMessagesFilter> filter_; + int53 from_message_id_; + int32 limit_; + + getChatSparseMessagePositions(); + + getChatSparseMessagePositions(int53 chat_id_, object_ptr<SearchMessagesFilter> &&filter_, int53 from_message_id_, int32 limit_); + + static const std::int32_t ID = -462227580; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messagePositions>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatSponsoredMessages final : public Function { + public: + int53 chat_id_; + + getChatSponsoredMessages(); + + explicit getChatSponsoredMessages(int53 chat_id_); + + static const std::int32_t ID = 1353203864; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<sponsoredMessages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChatStatistics final : public Function { + public: + int53 chat_id_; + bool is_dark_; + + getChatStatistics(); + + getChatStatistics(int53 chat_id_, bool is_dark_); + + static const std::int32_t ID = 327057816; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ChatStatistics>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getChats final : public Function { + public: + object_ptr<ChatList> chat_list_; + int32 limit_; + + getChats(); + + getChats(object_ptr<ChatList> &&chat_list_, int32 limit_); + + static const std::int32_t ID = -972768574; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCommands final : public Function { + public: + object_ptr<BotCommandScope> scope_; + string language_code_; + + getCommands(); + + getCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_); + + static const std::int32_t ID = 1488621559; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<botCommands>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getConnectedWebsites final : public Function { + public: + + getConnectedWebsites(); + + static const std::int32_t ID = -170536110; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<connectedWebsites>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getContacts final : public Function { + public: + + getContacts(); + + static const std::int32_t ID = -1417722768; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<users>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCountries final : public Function { + public: + + getCountries(); + + static const std::int32_t ID = -51902050; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<countries>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCountryCode final : public Function { + public: + + getCountryCode(); + + static const std::int32_t ID = 1540593906; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCreatedPublicChats final : public Function { + public: + object_ptr<PublicChatType> type_; + + getCreatedPublicChats(); + + explicit getCreatedPublicChats(object_ptr<PublicChatType> &&type_); + + static const std::int32_t ID = 710354415; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCurrentState final : public Function { + public: + + getCurrentState(); + + static const std::int32_t ID = -1191417719; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<updates>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCustomEmojiReactionAnimations final : public Function { + public: + + getCustomEmojiReactionAnimations(); + + static const std::int32_t ID = 1232375250; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getCustomEmojiStickers final : public Function { + public: + array<int64> custom_emoji_ids_; + + getCustomEmojiStickers(); + + explicit getCustomEmojiStickers(array<int64> &&custom_emoji_ids_); + + static const std::int32_t ID = -2127427955; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getDatabaseStatistics final : public Function { + public: + + getDatabaseStatistics(); + + static const std::int32_t ID = -1942760263; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<databaseStatistics>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getDeepLinkInfo final : public Function { + public: + string link_; + + getDeepLinkInfo(); + + explicit getDeepLinkInfo(string const &link_); + + static const std::int32_t ID = 680673150; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<deepLinkInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getDefaultEmojiStatuses final : public Function { + public: + + getDefaultEmojiStatuses(); + + static const std::int32_t ID = 618946243; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojiStatuses>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getEmojiReaction final : public Function { + public: + string emoji_; + + getEmojiReaction(); + + explicit getEmojiReaction(string const &emoji_); + + static const std::int32_t ID = -449572388; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojiReaction>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getEmojiSuggestionsUrl final : public Function { + public: + string language_code_; + + getEmojiSuggestionsUrl(); + + explicit getEmojiSuggestionsUrl(string const &language_code_); + + static const std::int32_t ID = -1404101841; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getExternalLink final : public Function { + public: + string link_; + bool allow_write_access_; + + getExternalLink(); + + getExternalLink(string const &link_, bool allow_write_access_); + + static const std::int32_t ID = 1586688235; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getExternalLinkInfo final : public Function { + public: + string link_; + + getExternalLinkInfo(); + + explicit getExternalLinkInfo(string const &link_); + + static const std::int32_t ID = 1175288383; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<LoginUrlInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getFavoriteStickers final : public Function { + public: + + getFavoriteStickers(); + + static const std::int32_t ID = -338964672; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getFile final : public Function { + public: + int32 file_id_; + + getFile(); + + explicit getFile(int32 file_id_); + + static const std::int32_t ID = 1553923406; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<file>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getFileDownloadedPrefixSize final : public Function { + public: + int32 file_id_; + int53 offset_; + + getFileDownloadedPrefixSize(); + + getFileDownloadedPrefixSize(int32 file_id_, int53 offset_); + + static const std::int32_t ID = 855948589; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<fileDownloadedPrefixSize>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getFileExtension final : public Function { + public: + string mime_type_; + + getFileExtension(); + + explicit getFileExtension(string const &mime_type_); + + static const std::int32_t ID = -106055372; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getFileMimeType final : public Function { + public: + string file_name_; + + getFileMimeType(); + + explicit getFileMimeType(string const &file_name_); + + static const std::int32_t ID = -2073879671; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getForumTopicDefaultIcons final : public Function { + public: + + getForumTopicDefaultIcons(); + + static const std::int32_t ID = 1479898332; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getGameHighScores final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int53 user_id_; + + getGameHighScores(); + + getGameHighScores(int53 chat_id_, int53 message_id_, int53 user_id_); + + static const std::int32_t ID = 15746459; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<gameHighScores>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getGroupCall final : public Function { + public: + int32 group_call_id_; + + getGroupCall(); + + explicit getGroupCall(int32 group_call_id_); + + static const std::int32_t ID = 1468491406; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<groupCall>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getGroupCallInviteLink final : public Function { + public: + int32 group_call_id_; + bool can_self_unmute_; + + getGroupCallInviteLink(); + + getGroupCallInviteLink(int32 group_call_id_, bool can_self_unmute_); + + static const std::int32_t ID = 719407396; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getGroupCallStreamSegment final : public Function { + public: + int32 group_call_id_; + int53 time_offset_; + int32 scale_; + int32 channel_id_; + object_ptr<GroupCallVideoQuality> video_quality_; + + getGroupCallStreamSegment(); + + getGroupCallStreamSegment(int32 group_call_id_, int53 time_offset_, int32 scale_, int32 channel_id_, object_ptr<GroupCallVideoQuality> &&video_quality_); + + static const std::int32_t ID = -2077959515; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<filePart>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getGroupCallStreams final : public Function { + public: + int32 group_call_id_; + + getGroupCallStreams(); + + explicit getGroupCallStreams(int32 group_call_id_); + + static const std::int32_t ID = -1619226268; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<groupCallStreams>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getGroupsInCommon final : public Function { + public: + int53 user_id_; + int53 offset_chat_id_; + int32 limit_; + + getGroupsInCommon(); + + getGroupsInCommon(int53 user_id_, int53 offset_chat_id_, int32 limit_); + + static const std::int32_t ID = 381539178; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getImportedContactCount final : public Function { + public: + + getImportedContactCount(); + + static const std::int32_t ID = -656336346; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<count>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getInactiveSupergroupChats final : public Function { + public: + + getInactiveSupergroupChats(); + + static const std::int32_t ID = -657720907; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getInlineGameHighScores final : public Function { + public: + string inline_message_id_; + int53 user_id_; + + getInlineGameHighScores(); + + getInlineGameHighScores(string const &inline_message_id_, int53 user_id_); + + static const std::int32_t ID = -533107798; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<gameHighScores>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getInlineQueryResults final : public Function { + public: + int53 bot_user_id_; + int53 chat_id_; + object_ptr<location> user_location_; + string query_; + string offset_; + + getInlineQueryResults(); + + getInlineQueryResults(int53 bot_user_id_, int53 chat_id_, object_ptr<location> &&user_location_, string const &query_, string const &offset_); + + static const std::int32_t ID = 2044524652; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<inlineQueryResults>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getInstalledStickerSets final : public Function { + public: + object_ptr<StickerType> sticker_type_; + + getInstalledStickerSets(); + + explicit getInstalledStickerSets(object_ptr<StickerType> &&sticker_type_); + + static const std::int32_t ID = 1630467830; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSets>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getInternalLinkType final : public Function { + public: + string link_; + + getInternalLinkType(); + + explicit getInternalLinkType(string const &link_); + + static const std::int32_t ID = -1948428535; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<InternalLinkType>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getJsonString final : public Function { + public: + object_ptr<JsonValue> json_value_; + + getJsonString(); + + explicit getJsonString(object_ptr<JsonValue> &&json_value_); + + static const std::int32_t ID = 663458849; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getJsonValue final : public Function { + public: + string json_; + + getJsonValue(); + + explicit getJsonValue(string const &json_); + + static const std::int32_t ID = -1829086715; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<JsonValue>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLanguagePackInfo final : public Function { + public: + string language_pack_id_; + + getLanguagePackInfo(); + + explicit getLanguagePackInfo(string const &language_pack_id_); + + static const std::int32_t ID = 2077809320; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<languagePackInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLanguagePackString final : public Function { + public: + string language_pack_database_path_; + string localization_target_; + string language_pack_id_; + string key_; + + getLanguagePackString(); + + getLanguagePackString(string const &language_pack_database_path_, string const &localization_target_, string const &language_pack_id_, string const &key_); + + static const std::int32_t ID = 150789747; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<LanguagePackStringValue>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLanguagePackStrings final : public Function { + public: + string language_pack_id_; + array<string> keys_; + + getLanguagePackStrings(); + + getLanguagePackStrings(string const &language_pack_id_, array<string> &&keys_); + + static const std::int32_t ID = 1246259088; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<languagePackStrings>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLocalizationTargetInfo final : public Function { + public: + bool only_local_; + + getLocalizationTargetInfo(); + + explicit getLocalizationTargetInfo(bool only_local_); + + static const std::int32_t ID = 1849499526; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<localizationTargetInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLogStream final : public Function { + public: + + getLogStream(); + + static const std::int32_t ID = 1167608667; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<LogStream>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLogTagVerbosityLevel final : public Function { + public: + string tag_; + + getLogTagVerbosityLevel(); + + explicit getLogTagVerbosityLevel(string const &tag_); + + static const std::int32_t ID = 951004547; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<logVerbosityLevel>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLogTags final : public Function { + public: + + getLogTags(); + + static const std::int32_t ID = -254449190; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<logTags>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLogVerbosityLevel final : public Function { + public: + + getLogVerbosityLevel(); + + static const std::int32_t ID = 594057956; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<logVerbosityLevel>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLoginUrl final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int53 button_id_; + bool allow_write_access_; + + getLoginUrl(); + + getLoginUrl(int53 chat_id_, int53 message_id_, int53 button_id_, bool allow_write_access_); + + static const std::int32_t ID = 791844305; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getLoginUrlInfo final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int53 button_id_; + + getLoginUrlInfo(); + + getLoginUrlInfo(int53 chat_id_, int53 message_id_, int53 button_id_); + + static const std::int32_t ID = -859202125; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<LoginUrlInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMapThumbnailFile final : public Function { + public: + object_ptr<location> location_; + int32 zoom_; + int32 width_; + int32 height_; + int32 scale_; + int53 chat_id_; + + getMapThumbnailFile(); + + getMapThumbnailFile(object_ptr<location> &&location_, int32 zoom_, int32 width_, int32 height_, int32 scale_, int53 chat_id_); + + static const std::int32_t ID = -152660070; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<file>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMarkdownText final : public Function { + public: + object_ptr<formattedText> text_; + + getMarkdownText(); + + explicit getMarkdownText(object_ptr<formattedText> &&text_); + + static const std::int32_t ID = 164524584; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<formattedText>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMe final : public Function { + public: + + getMe(); + + static const std::int32_t ID = -191516033; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<user>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMenuButton final : public Function { + public: + int53 user_id_; + + getMenuButton(); + + explicit getMenuButton(int53 user_id_); + + static const std::int32_t ID = -437324736; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<botMenuButton>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessage final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + getMessage(); + + getMessage(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = -1821196160; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageAddedReactions final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReactionType> reaction_type_; + string offset_; + int32 limit_; + + getMessageAddedReactions(); + + getMessageAddedReactions(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_, string const &offset_, int32 limit_); + + static const std::int32_t ID = 2110172754; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<addedReactions>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageAvailableReactions final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int32 row_size_; + + getMessageAvailableReactions(); + + getMessageAvailableReactions(int53 chat_id_, int53 message_id_, int32 row_size_); + + static const std::int32_t ID = 1994098354; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<availableReactions>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageEmbeddingCode final : public Function { + public: + int53 chat_id_; + int53 message_id_; + bool for_album_; + + getMessageEmbeddingCode(); + + getMessageEmbeddingCode(int53 chat_id_, int53 message_id_, bool for_album_); + + static const std::int32_t ID = 1654967561; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageFileType final : public Function { + public: + string message_file_head_; + + getMessageFileType(); + + explicit getMessageFileType(string const &message_file_head_); + + static const std::int32_t ID = -490270764; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<MessageFileType>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageImportConfirmationText final : public Function { + public: + int53 chat_id_; + + getMessageImportConfirmationText(); + + explicit getMessageImportConfirmationText(int53 chat_id_); + + static const std::int32_t ID = 390627752; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageLink final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int32 media_timestamp_; + bool for_album_; + bool in_message_thread_; + + getMessageLink(); + + getMessageLink(int53 chat_id_, int53 message_id_, int32 media_timestamp_, bool for_album_, bool in_message_thread_); + + static const std::int32_t ID = -984158342; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messageLink>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageLinkInfo final : public Function { + public: + string url_; + + getMessageLinkInfo(); + + explicit getMessageLinkInfo(string const &url_); + + static const std::int32_t ID = -700533672; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messageLinkInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageLocally final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + getMessageLocally(); + + getMessageLocally(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = -603575444; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessagePublicForwards final : public Function { + public: + int53 chat_id_; + int53 message_id_; + string offset_; + int32 limit_; + + getMessagePublicForwards(); + + getMessagePublicForwards(int53 chat_id_, int53 message_id_, string const &offset_, int32 limit_); + + static const std::int32_t ID = 1611049289; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<foundMessages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageStatistics final : public Function { + public: + int53 chat_id_; + int53 message_id_; + bool is_dark_; + + getMessageStatistics(); + + getMessageStatistics(int53 chat_id_, int53 message_id_, bool is_dark_); + + static const std::int32_t ID = 1270194648; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messageStatistics>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageThread final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + getMessageThread(); + + getMessageThread(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 2062695998; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messageThreadInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageThreadHistory final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int53 from_message_id_; + int32 offset_; + int32 limit_; + + getMessageThreadHistory(); + + getMessageThreadHistory(int53 chat_id_, int53 message_id_, int53 from_message_id_, int32 offset_, int32 limit_); + + static const std::int32_t ID = -1808411608; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessageViewers final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + getMessageViewers(); + + getMessageViewers(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = -1879496099; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<users>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getMessages final : public Function { + public: + int53 chat_id_; + array<int53> message_ids_; + + getMessages(); + + getMessages(int53 chat_id_, array<int53> &&message_ids_); + + static const std::int32_t ID = 425299338; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getNetworkStatistics final : public Function { + public: + bool only_current_; + + getNetworkStatistics(); + + explicit getNetworkStatistics(bool only_current_); + + static const std::int32_t ID = -986228706; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<networkStatistics>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getOption final : public Function { + public: + string name_; + + getOption(); + + explicit getOption(string const &name_); + + static const std::int32_t ID = -1572495746; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<OptionValue>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPassportAuthorizationForm final : public Function { + public: + int53 bot_user_id_; + string scope_; + string public_key_; + string nonce_; + + getPassportAuthorizationForm(); + + getPassportAuthorizationForm(int53 bot_user_id_, string const &scope_, string const &public_key_, string const &nonce_); + + static const std::int32_t ID = 1636107398; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passportAuthorizationForm>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPassportAuthorizationFormAvailableElements final : public Function { + public: + int32 autorization_form_id_; + string password_; + + getPassportAuthorizationFormAvailableElements(); + + getPassportAuthorizationFormAvailableElements(int32 autorization_form_id_, string const &password_); + + static const std::int32_t ID = 1738134754; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passportElementsWithErrors>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPassportElement final : public Function { + public: + object_ptr<PassportElementType> type_; + string password_; + + getPassportElement(); + + getPassportElement(object_ptr<PassportElementType> &&type_, string const &password_); + + static const std::int32_t ID = -1882398342; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<PassportElement>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPasswordState final : public Function { + public: + + getPasswordState(); + + static const std::int32_t ID = -174752904; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passwordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPaymentForm final : public Function { + public: + object_ptr<InputInvoice> input_invoice_; + object_ptr<themeParameters> theme_; + + getPaymentForm(); + + getPaymentForm(object_ptr<InputInvoice> &&input_invoice_, object_ptr<themeParameters> &&theme_); + + static const std::int32_t ID = -1924172076; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<paymentForm>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPaymentReceipt final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + getPaymentReceipt(); + + getPaymentReceipt(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 1013758294; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<paymentReceipt>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPhoneNumberInfo final : public Function { + public: + string phone_number_prefix_; + + getPhoneNumberInfo(); + + explicit getPhoneNumberInfo(string const &phone_number_prefix_); + + static const std::int32_t ID = -1608344583; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phoneNumberInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPhoneNumberInfoSync final : public Function { + public: + string language_code_; + string phone_number_prefix_; + + getPhoneNumberInfoSync(); + + getPhoneNumberInfoSync(string const &language_code_, string const &phone_number_prefix_); + + static const std::int32_t ID = 547061048; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phoneNumberInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPollVoters final : public Function { + public: + int53 chat_id_; + int53 message_id_; + int32 option_id_; + int32 offset_; + int32 limit_; + + getPollVoters(); + + getPollVoters(int53 chat_id_, int53 message_id_, int32 option_id_, int32 offset_, int32 limit_); + + static const std::int32_t ID = 2075288734; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<users>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPreferredCountryLanguage final : public Function { + public: + string country_code_; + + getPreferredCountryLanguage(); + + explicit getPreferredCountryLanguage(string const &country_code_); + + static const std::int32_t ID = -933049386; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPremiumFeatures final : public Function { + public: + object_ptr<PremiumSource> source_; + + getPremiumFeatures(); + + explicit getPremiumFeatures(object_ptr<PremiumSource> &&source_); + + static const std::int32_t ID = -1260640695; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<premiumFeatures>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPremiumLimit final : public Function { + public: + object_ptr<PremiumLimitType> limit_type_; + + getPremiumLimit(); + + explicit getPremiumLimit(object_ptr<PremiumLimitType> &&limit_type_); + + static const std::int32_t ID = 1075313898; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<premiumLimit>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPremiumState final : public Function { + public: + + getPremiumState(); + + static const std::int32_t ID = 663632610; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<premiumState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPremiumStickerExamples final : public Function { + public: + + getPremiumStickerExamples(); + + static const std::int32_t ID = 1399442328; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPremiumStickers final : public Function { + public: + int32 limit_; + + getPremiumStickers(); + + explicit getPremiumStickers(int32 limit_); + + static const std::int32_t ID = -280950192; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getProxies final : public Function { + public: + + getProxies(); + + static const std::int32_t ID = -95026381; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<proxies>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getProxyLink final : public Function { + public: + int32 proxy_id_; + + getProxyLink(); + + explicit getProxyLink(int32 proxy_id_); + + static const std::int32_t ID = -1054495112; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getPushReceiverId final : public Function { + public: + string payload_; + + getPushReceiverId(); + + explicit getPushReceiverId(string const &payload_); + + static const std::int32_t ID = -286505294; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<pushReceiverId>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRecentEmojiStatuses final : public Function { + public: + + getRecentEmojiStatuses(); + + static const std::int32_t ID = -1371914967; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojiStatuses>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRecentInlineBots final : public Function { + public: + + getRecentInlineBots(); + + static const std::int32_t ID = 1437823548; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<users>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRecentStickers final : public Function { + public: + bool is_attached_; + + getRecentStickers(); + + explicit getRecentStickers(bool is_attached_); + + static const std::int32_t ID = -579622241; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRecentlyOpenedChats final : public Function { + public: + int32 limit_; + + getRecentlyOpenedChats(); + + explicit getRecentlyOpenedChats(int32 limit_); + + static const std::int32_t ID = -1924156893; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRecentlyVisitedTMeUrls final : public Function { + public: + string referrer_; + + getRecentlyVisitedTMeUrls(); + + explicit getRecentlyVisitedTMeUrls(string const &referrer_); + + static const std::int32_t ID = 806754961; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<tMeUrls>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRecommendedChatFilters final : public Function { + public: + + getRecommendedChatFilters(); + + static const std::int32_t ID = -779390746; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<recommendedChatFilters>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRecoveryEmailAddress final : public Function { + public: + string password_; + + getRecoveryEmailAddress(); + + explicit getRecoveryEmailAddress(string const &password_); + + static const std::int32_t ID = -1594770947; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<recoveryEmailAddress>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRemoteFile final : public Function { + public: + string remote_file_id_; + object_ptr<FileType> file_type_; + + getRemoteFile(); + + getRemoteFile(string const &remote_file_id_, object_ptr<FileType> &&file_type_); + + static const std::int32_t ID = 2137204530; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<file>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getRepliedMessage final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + getRepliedMessage(); + + getRepliedMessage(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = -641918531; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSavedAnimations final : public Function { + public: + + getSavedAnimations(); + + static const std::int32_t ID = 7051032; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<animations>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSavedNotificationSound final : public Function { + public: + int64 notification_sound_id_; + + getSavedNotificationSound(); + + explicit getSavedNotificationSound(int64 notification_sound_id_); + + static const std::int32_t ID = 459569431; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<notificationSounds>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSavedNotificationSounds final : public Function { + public: + + getSavedNotificationSounds(); + + static const std::int32_t ID = -1070305368; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<notificationSounds>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSavedOrderInfo final : public Function { + public: + + getSavedOrderInfo(); + + static const std::int32_t ID = -1152016675; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<orderInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getScopeNotificationSettings final : public Function { + public: + object_ptr<NotificationSettingsScope> scope_; + + getScopeNotificationSettings(); + + explicit getScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_); + + static const std::int32_t ID = -995613361; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<scopeNotificationSettings>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSecretChat final : public Function { + public: + int32 secret_chat_id_; + + getSecretChat(); + + explicit getSecretChat(int32 secret_chat_id_); + + static const std::int32_t ID = 40599169; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<secretChat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getStatisticalGraph final : public Function { + public: + int53 chat_id_; + string token_; + int53 x_; + + getStatisticalGraph(); + + getStatisticalGraph(int53 chat_id_, string const &token_, int53 x_); + + static const std::int32_t ID = 1100975515; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<StatisticalGraph>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getStickerEmojis final : public Function { + public: + object_ptr<InputFile> sticker_; + + getStickerEmojis(); + + explicit getStickerEmojis(object_ptr<InputFile> &&sticker_); + + static const std::int32_t ID = -1895508665; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojis>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getStickerSet final : public Function { + public: + int64 set_id_; + + getStickerSet(); + + explicit getStickerSet(int64 set_id_); + + static const std::int32_t ID = 1052318659; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSet>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getStickers final : public Function { + public: + object_ptr<StickerType> sticker_type_; + string query_; + int32 limit_; + int53 chat_id_; + + getStickers(); + + getStickers(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_, int53 chat_id_); + + static const std::int32_t ID = 1158058819; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getStorageStatistics final : public Function { + public: + int32 chat_limit_; + + getStorageStatistics(); + + explicit getStorageStatistics(int32 chat_limit_); + + static const std::int32_t ID = -853193929; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<storageStatistics>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getStorageStatisticsFast final : public Function { + public: + + getStorageStatisticsFast(); + + static const std::int32_t ID = 61368066; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<storageStatisticsFast>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSuggestedFileName final : public Function { + public: + int32 file_id_; + string directory_; + + getSuggestedFileName(); + + getSuggestedFileName(int32 file_id_, string const &directory_); + + static const std::int32_t ID = -2049399674; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSuggestedStickerSetName final : public Function { + public: + string title_; + + getSuggestedStickerSetName(); + + explicit getSuggestedStickerSetName(string const &title_); + + static const std::int32_t ID = -1340995520; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSuitableDiscussionChats final : public Function { + public: + + getSuitableDiscussionChats(); + + static const std::int32_t ID = 49044982; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSupergroup final : public Function { + public: + int53 supergroup_id_; + + getSupergroup(); + + explicit getSupergroup(int53 supergroup_id_); + + static const std::int32_t ID = 989663458; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<supergroup>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSupergroupFullInfo final : public Function { + public: + int53 supergroup_id_; + + getSupergroupFullInfo(); + + explicit getSupergroupFullInfo(int53 supergroup_id_); + + static const std::int32_t ID = 1099776056; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<supergroupFullInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSupergroupMembers final : public Function { + public: + int53 supergroup_id_; + object_ptr<SupergroupMembersFilter> filter_; + int32 offset_; + int32 limit_; + + getSupergroupMembers(); + + getSupergroupMembers(int53 supergroup_id_, object_ptr<SupergroupMembersFilter> &&filter_, int32 offset_, int32 limit_); + + static const std::int32_t ID = -570940984; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatMembers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getSupportUser final : public Function { + public: + + getSupportUser(); + + static const std::int32_t ID = -1733497700; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<user>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getTemporaryPasswordState final : public Function { + public: + + getTemporaryPasswordState(); + + static const std::int32_t ID = -12670830; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<temporaryPasswordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getTextEntities final : public Function { + public: + string text_; + + getTextEntities(); + + explicit getTextEntities(string const &text_); + + static const std::int32_t ID = -341490693; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<textEntities>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getThemeParametersJsonString final : public Function { + public: + object_ptr<themeParameters> theme_; + + getThemeParametersJsonString(); + + explicit getThemeParametersJsonString(object_ptr<themeParameters> &&theme_); + + static const std::int32_t ID = -1850145288; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getThemedEmojiStatuses final : public Function { + public: + + getThemedEmojiStatuses(); + + static const std::int32_t ID = 1791346882; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojiStatuses>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getTopChats final : public Function { + public: + object_ptr<TopChatCategory> category_; + int32 limit_; + + getTopChats(); + + getTopChats(object_ptr<TopChatCategory> &&category_, int32 limit_); + + static const std::int32_t ID = -388410847; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getTrendingStickerSets final : public Function { + public: + object_ptr<StickerType> sticker_type_; + int32 offset_; + int32 limit_; + + getTrendingStickerSets(); + + getTrendingStickerSets(object_ptr<StickerType> &&sticker_type_, int32 offset_, int32 limit_); + + static const std::int32_t ID = -531085986; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<trendingStickerSets>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getUser final : public Function { + public: + int53 user_id_; + + getUser(); + + explicit getUser(int53 user_id_); + + static const std::int32_t ID = 1117363211; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<user>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getUserFullInfo final : public Function { + public: + int53 user_id_; + + getUserFullInfo(); + + explicit getUserFullInfo(int53 user_id_); + + static const std::int32_t ID = -776823720; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<userFullInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getUserPrivacySettingRules final : public Function { + public: + object_ptr<UserPrivacySetting> setting_; + + getUserPrivacySettingRules(); + + explicit getUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_); + + static const std::int32_t ID = -2077223311; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<userPrivacySettingRules>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getUserProfilePhotos final : public Function { + public: + int53 user_id_; + int32 offset_; + int32 limit_; + + getUserProfilePhotos(); + + getUserProfilePhotos(int53 user_id_, int32 offset_, int32 limit_); + + static const std::int32_t ID = -908132798; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatPhotos>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getUserSupportInfo final : public Function { + public: + int53 user_id_; + + getUserSupportInfo(); + + explicit getUserSupportInfo(int53 user_id_); + + static const std::int32_t ID = 1957008133; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<userSupportInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getVideoChatAvailableParticipants final : public Function { + public: + int53 chat_id_; + + getVideoChatAvailableParticipants(); + + explicit getVideoChatAvailableParticipants(int53 chat_id_); + + static const std::int32_t ID = -1000496379; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messageSenders>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getVideoChatRtmpUrl final : public Function { + public: + int53 chat_id_; + + getVideoChatRtmpUrl(); + + explicit getVideoChatRtmpUrl(int53 chat_id_); + + static const std::int32_t ID = 1210784543; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<rtmpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getWebAppUrl final : public Function { + public: + int53 bot_user_id_; + string url_; + object_ptr<themeParameters> theme_; + string application_name_; + + getWebAppUrl(); + + getWebAppUrl(int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_); + + static const std::int32_t ID = 1690578110; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<httpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getWebPageInstantView final : public Function { + public: + string url_; + bool force_full_; + + getWebPageInstantView(); + + getWebPageInstantView(string const &url_, bool force_full_); + + static const std::int32_t ID = -1962649975; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<webPageInstantView>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class getWebPagePreview final : public Function { + public: + object_ptr<formattedText> text_; + + getWebPagePreview(); + + explicit getWebPagePreview(object_ptr<formattedText> &&text_); + + static const std::int32_t ID = 573441580; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<webPage>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class hideSuggestedAction final : public Function { + public: + object_ptr<SuggestedAction> action_; + + hideSuggestedAction(); + + explicit hideSuggestedAction(object_ptr<SuggestedAction> &&action_); + + static const std::int32_t ID = -1561384065; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class importContacts final : public Function { + public: + array<object_ptr<contact>> contacts_; + + importContacts(); + + explicit importContacts(array<object_ptr<contact>> &&contacts_); + + static const std::int32_t ID = -215132767; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<importedContacts>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class importMessages final : public Function { + public: + int53 chat_id_; + object_ptr<InputFile> message_file_; + array<object_ptr<InputFile>> attached_files_; + + importMessages(); + + importMessages(int53 chat_id_, object_ptr<InputFile> &&message_file_, array<object_ptr<InputFile>> &&attached_files_); + + static const std::int32_t ID = -1864116784; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inviteGroupCallParticipants final : public Function { + public: + int32 group_call_id_; + array<int53> user_ids_; + + inviteGroupCallParticipants(); + + inviteGroupCallParticipants(int32 group_call_id_, array<int53> &&user_ids_); + + static const std::int32_t ID = 1867097679; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class joinChat final : public Function { + public: + int53 chat_id_; + + joinChat(); + + explicit joinChat(int53 chat_id_); + + static const std::int32_t ID = 326769313; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class joinChatByInviteLink final : public Function { + public: + string invite_link_; + + joinChatByInviteLink(); + + explicit joinChatByInviteLink(string const &invite_link_); + + static const std::int32_t ID = -1049973882; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class joinGroupCall final : public Function { + public: + int32 group_call_id_; + object_ptr<MessageSender> participant_id_; + int32 audio_source_id_; + string payload_; + bool is_muted_; + bool is_my_video_enabled_; + string invite_hash_; + + joinGroupCall(); + + joinGroupCall(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 audio_source_id_, string const &payload_, bool is_muted_, bool is_my_video_enabled_, string const &invite_hash_); + + static const std::int32_t ID = -1043773467; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class leaveChat final : public Function { + public: + int53 chat_id_; + + leaveChat(); + + explicit leaveChat(int53 chat_id_); + + static const std::int32_t ID = -1825080735; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class leaveGroupCall final : public Function { + public: + int32 group_call_id_; + + leaveGroupCall(); + + explicit leaveGroupCall(int32 group_call_id_); + + static const std::int32_t ID = 980152233; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class loadChats final : public Function { + public: + object_ptr<ChatList> chat_list_; + int32 limit_; + + loadChats(); + + loadChats(object_ptr<ChatList> &&chat_list_, int32 limit_); + + static const std::int32_t ID = -1885635205; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class loadGroupCallParticipants final : public Function { + public: + int32 group_call_id_; + int32 limit_; + + loadGroupCallParticipants(); + + loadGroupCallParticipants(int32 group_call_id_, int32 limit_); + + static const std::int32_t ID = 938720974; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class logOut final : public Function { + public: + + logOut(); + + static const std::int32_t ID = -1581923301; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class openChat final : public Function { + public: + int53 chat_id_; + + openChat(); + + explicit openChat(int53 chat_id_); + + static const std::int32_t ID = -323371509; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class openMessageContent final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + openMessageContent(); + + openMessageContent(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = -739088005; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class openWebApp final : public Function { + public: + int53 chat_id_; + int53 bot_user_id_; + string url_; + object_ptr<themeParameters> theme_; + string application_name_; + int53 message_thread_id_; + int53 reply_to_message_id_; + + openWebApp(); + + openWebApp(int53 chat_id_, int53 bot_user_id_, string const &url_, object_ptr<themeParameters> &&theme_, string const &application_name_, int53 message_thread_id_, int53 reply_to_message_id_); + + static const std::int32_t ID = -763742925; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<webAppInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class optimizeStorage final : public Function { + public: + int53 size_; + int32 ttl_; + int32 count_; + int32 immunity_delay_; + array<object_ptr<FileType>> file_types_; + array<int53> chat_ids_; + array<int53> exclude_chat_ids_; + bool return_deleted_file_statistics_; + int32 chat_limit_; + + optimizeStorage(); + + optimizeStorage(int53 size_, int32 ttl_, int32 count_, int32 immunity_delay_, array<object_ptr<FileType>> &&file_types_, array<int53> &&chat_ids_, array<int53> &&exclude_chat_ids_, bool return_deleted_file_statistics_, int32 chat_limit_); + + static const std::int32_t ID = 853186759; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<storageStatistics>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class parseMarkdown final : public Function { + public: + object_ptr<formattedText> text_; + + parseMarkdown(); + + explicit parseMarkdown(object_ptr<formattedText> &&text_); + + static const std::int32_t ID = 756366063; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<formattedText>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class parseTextEntities final : public Function { + public: + string text_; + object_ptr<TextParseMode> parse_mode_; + + parseTextEntities(); + + parseTextEntities(string const &text_, object_ptr<TextParseMode> &&parse_mode_); + + static const std::int32_t ID = -1709194593; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<formattedText>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pinChatMessage final : public Function { + public: + int53 chat_id_; + int53 message_id_; + bool disable_notification_; + bool only_for_self_; + + pinChatMessage(); + + pinChatMessage(int53 chat_id_, int53 message_id_, bool disable_notification_, bool only_for_self_); + + static const std::int32_t ID = 2034719663; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pingProxy final : public Function { + public: + int32 proxy_id_; + + pingProxy(); + + explicit pingProxy(int32 proxy_id_); + + static const std::int32_t ID = -979681103; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<seconds>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class preliminaryUploadFile final : public Function { + public: + object_ptr<InputFile> file_; + object_ptr<FileType> file_type_; + int32 priority_; + + preliminaryUploadFile(); + + preliminaryUploadFile(object_ptr<InputFile> &&file_, object_ptr<FileType> &&file_type_, int32 priority_); + + static const std::int32_t ID = 1894239129; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<file>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class processChatJoinRequest final : public Function { + public: + int53 chat_id_; + int53 user_id_; + bool approve_; + + processChatJoinRequest(); + + processChatJoinRequest(int53 chat_id_, int53 user_id_, bool approve_); + + static const std::int32_t ID = 1004876963; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class processChatJoinRequests final : public Function { + public: + int53 chat_id_; + string invite_link_; + bool approve_; + + processChatJoinRequests(); + + processChatJoinRequests(int53 chat_id_, string const &invite_link_, bool approve_); + + static const std::int32_t ID = 1048722894; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class processPushNotification final : public Function { + public: + string payload_; + + processPushNotification(); + + explicit processPushNotification(string const &payload_); + + static const std::int32_t ID = 786679952; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class rateSpeechRecognition final : public Function { + public: + int53 chat_id_; + int53 message_id_; + bool is_good_; + + rateSpeechRecognition(); + + rateSpeechRecognition(int53 chat_id_, int53 message_id_, bool is_good_); + + static const std::int32_t ID = -287521867; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class readAllChatMentions final : public Function { + public: + int53 chat_id_; + + readAllChatMentions(); + + explicit readAllChatMentions(int53 chat_id_); + + static const std::int32_t ID = 1357558453; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class readAllChatReactions final : public Function { + public: + int53 chat_id_; + + readAllChatReactions(); + + explicit readAllChatReactions(int53 chat_id_); + + static const std::int32_t ID = 1421973357; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class readAllMessageThreadMentions final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + + readAllMessageThreadMentions(); + + readAllMessageThreadMentions(int53 chat_id_, int53 message_thread_id_); + + static const std::int32_t ID = 1323136341; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class readAllMessageThreadReactions final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + + readAllMessageThreadReactions(); + + readAllMessageThreadReactions(int53 chat_id_, int53 message_thread_id_); + + static const std::int32_t ID = -792975554; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class readFilePart final : public Function { + public: + int32 file_id_; + int53 offset_; + int53 count_; + + readFilePart(); + + readFilePart(int32 file_id_, int53 offset_, int53 count_); + + static const std::int32_t ID = 906798861; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<filePart>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recognizeSpeech final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + recognizeSpeech(); + + recognizeSpeech(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 1741947577; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recoverAuthenticationPassword final : public Function { + public: + string recovery_code_; + string new_password_; + string new_hint_; + + recoverAuthenticationPassword(); + + recoverAuthenticationPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_); + + static const std::int32_t ID = -131001053; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recoverPassword final : public Function { + public: + string recovery_code_; + string new_password_; + string new_hint_; + + recoverPassword(); + + recoverPassword(string const &recovery_code_, string const &new_password_, string const &new_hint_); + + static const std::int32_t ID = -1524262541; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passwordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class registerDevice final : public Function { + public: + object_ptr<DeviceToken> device_token_; + array<int53> other_user_ids_; + + registerDevice(); + + registerDevice(object_ptr<DeviceToken> &&device_token_, array<int53> &&other_user_ids_); + + static const std::int32_t ID = 366088823; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<pushReceiverId>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class registerUser final : public Function { + public: + string first_name_; + string last_name_; + + registerUser(); + + registerUser(string const &first_name_, string const &last_name_); + + static const std::int32_t ID = -109994467; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeAllFilesFromDownloads final : public Function { + public: + bool only_active_; + bool only_completed_; + bool delete_from_cache_; + + removeAllFilesFromDownloads(); + + removeAllFilesFromDownloads(bool only_active_, bool only_completed_, bool delete_from_cache_); + + static const std::int32_t ID = -1186433402; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeBackground final : public Function { + public: + int64 background_id_; + + removeBackground(); + + explicit removeBackground(int64 background_id_); + + static const std::int32_t ID = -1484545642; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeChatActionBar final : public Function { + public: + int53 chat_id_; + + removeChatActionBar(); + + explicit removeChatActionBar(int53 chat_id_); + + static const std::int32_t ID = -1650968070; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeContacts final : public Function { + public: + array<int53> user_ids_; + + removeContacts(); + + explicit removeContacts(array<int53> &&user_ids_); + + static const std::int32_t ID = 1943858054; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeFavoriteSticker final : public Function { + public: + object_ptr<InputFile> sticker_; + + removeFavoriteSticker(); + + explicit removeFavoriteSticker(object_ptr<InputFile> &&sticker_); + + static const std::int32_t ID = 1152945264; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeFileFromDownloads final : public Function { + public: + int32 file_id_; + bool delete_from_cache_; + + removeFileFromDownloads(); + + removeFileFromDownloads(int32 file_id_, bool delete_from_cache_); + + static const std::int32_t ID = 1460060142; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeMessageReaction final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReactionType> reaction_type_; + + removeMessageReaction(); + + removeMessageReaction(int53 chat_id_, int53 message_id_, object_ptr<ReactionType> &&reaction_type_); + + static const std::int32_t ID = -1756934789; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeNotification final : public Function { + public: + int32 notification_group_id_; + int32 notification_id_; + + removeNotification(); + + removeNotification(int32 notification_group_id_, int32 notification_id_); + + static const std::int32_t ID = 862630734; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeNotificationGroup final : public Function { + public: + int32 notification_group_id_; + int32 max_notification_id_; + + removeNotificationGroup(); + + removeNotificationGroup(int32 notification_group_id_, int32 max_notification_id_); + + static const std::int32_t ID = 1713005454; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeProxy final : public Function { + public: + int32 proxy_id_; + + removeProxy(); + + explicit removeProxy(int32 proxy_id_); + + static const std::int32_t ID = 1369219847; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeRecentHashtag final : public Function { + public: + string hashtag_; + + removeRecentHashtag(); + + explicit removeRecentHashtag(string const &hashtag_); + + static const std::int32_t ID = -1013735260; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeRecentSticker final : public Function { + public: + bool is_attached_; + object_ptr<InputFile> sticker_; + + removeRecentSticker(); + + removeRecentSticker(bool is_attached_, object_ptr<InputFile> &&sticker_); + + static const std::int32_t ID = 1246577677; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeRecentlyFoundChat final : public Function { + public: + int53 chat_id_; + + removeRecentlyFoundChat(); + + explicit removeRecentlyFoundChat(int53 chat_id_); + + static const std::int32_t ID = 717340444; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeSavedAnimation final : public Function { + public: + object_ptr<InputFile> animation_; + + removeSavedAnimation(); + + explicit removeSavedAnimation(object_ptr<InputFile> &&animation_); + + static const std::int32_t ID = -495605479; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeSavedNotificationSound final : public Function { + public: + int64 notification_sound_id_; + + removeSavedNotificationSound(); + + explicit removeSavedNotificationSound(int64 notification_sound_id_); + + static const std::int32_t ID = -480032946; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeStickerFromSet final : public Function { + public: + object_ptr<InputFile> sticker_; + + removeStickerFromSet(); + + explicit removeStickerFromSet(object_ptr<InputFile> &&sticker_); + + static const std::int32_t ID = 1642196644; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class removeTopChat final : public Function { + public: + object_ptr<TopChatCategory> category_; + int53 chat_id_; + + removeTopChat(); + + removeTopChat(object_ptr<TopChatCategory> &&category_, int53 chat_id_); + + static const std::int32_t ID = -1907876267; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reorderActiveUsernames final : public Function { + public: + array<string> usernames_; + + reorderActiveUsernames(); + + explicit reorderActiveUsernames(array<string> &&usernames_); + + static const std::int32_t ID = -455399375; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reorderChatFilters final : public Function { + public: + array<int32> chat_filter_ids_; + int32 main_chat_list_position_; + + reorderChatFilters(); + + reorderChatFilters(array<int32> &&chat_filter_ids_, int32 main_chat_list_position_); + + static const std::int32_t ID = -1805801313; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reorderInstalledStickerSets final : public Function { + public: + object_ptr<StickerType> sticker_type_; + array<int64> sticker_set_ids_; + + reorderInstalledStickerSets(); + + reorderInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, array<int64> &&sticker_set_ids_); + + static const std::int32_t ID = 1074928158; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reorderSupergroupActiveUsernames final : public Function { + public: + int53 supergroup_id_; + array<string> usernames_; + + reorderSupergroupActiveUsernames(); + + reorderSupergroupActiveUsernames(int53 supergroup_id_, array<string> &&usernames_); + + static const std::int32_t ID = -1962466095; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replacePrimaryChatInviteLink final : public Function { + public: + int53 chat_id_; + + replacePrimaryChatInviteLink(); + + explicit replacePrimaryChatInviteLink(int53 chat_id_); + + static const std::int32_t ID = 1067350941; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLink>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replaceVideoChatRtmpUrl final : public Function { + public: + int53 chat_id_; + + replaceVideoChatRtmpUrl(); + + explicit replaceVideoChatRtmpUrl(int53 chat_id_); + + static const std::int32_t ID = 558862304; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<rtmpUrl>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reportChat final : public Function { + public: + int53 chat_id_; + array<int53> message_ids_; + object_ptr<ChatReportReason> reason_; + string text_; + + reportChat(); + + reportChat(int53 chat_id_, array<int53> &&message_ids_, object_ptr<ChatReportReason> &&reason_, string const &text_); + + static const std::int32_t ID = -964543587; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reportChatPhoto final : public Function { + public: + int53 chat_id_; + int32 file_id_; + object_ptr<ChatReportReason> reason_; + string text_; + + reportChatPhoto(); + + reportChatPhoto(int53 chat_id_, int32 file_id_, object_ptr<ChatReportReason> &&reason_, string const &text_); + + static const std::int32_t ID = 734652708; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reportMessageReactions final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<MessageSender> sender_id_; + + reportMessageReactions(); + + reportMessageReactions(int53 chat_id_, int53 message_id_, object_ptr<MessageSender> &&sender_id_); + + static const std::int32_t ID = 919111719; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reportSupergroupSpam final : public Function { + public: + int53 supergroup_id_; + array<int53> message_ids_; + + reportSupergroupSpam(); + + reportSupergroupSpam(int53 supergroup_id_, array<int53> &&message_ids_); + + static const std::int32_t ID = -94825000; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class requestAuthenticationPasswordRecovery final : public Function { + public: + + requestAuthenticationPasswordRecovery(); + + static const std::int32_t ID = 1393896118; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class requestPasswordRecovery final : public Function { + public: + + requestPasswordRecovery(); + + static const std::int32_t ID = -13777582; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class requestQrCodeAuthentication final : public Function { + public: + array<int53> other_user_ids_; + + requestQrCodeAuthentication(); + + explicit requestQrCodeAuthentication(array<int53> &&other_user_ids_); + + static const std::int32_t ID = 1363496527; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendAuthenticationCode final : public Function { + public: + + resendAuthenticationCode(); + + static const std::int32_t ID = -814377191; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendChangePhoneNumberCode final : public Function { + public: + + resendChangePhoneNumberCode(); + + static const std::int32_t ID = -786772060; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<authenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendEmailAddressVerificationCode final : public Function { + public: + + resendEmailAddressVerificationCode(); + + static const std::int32_t ID = -1872416732; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendLoginEmailAddressCode final : public Function { + public: + + resendLoginEmailAddressCode(); + + static const std::int32_t ID = 292966933; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendMessages final : public Function { + public: + int53 chat_id_; + array<int53> message_ids_; + + resendMessages(); + + resendMessages(int53 chat_id_, array<int53> &&message_ids_); + + static const std::int32_t ID = -940655817; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendPhoneNumberConfirmationCode final : public Function { + public: + + resendPhoneNumberConfirmationCode(); + + static const std::int32_t ID = 2069068522; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<authenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendPhoneNumberVerificationCode final : public Function { + public: + + resendPhoneNumberVerificationCode(); + + static const std::int32_t ID = 1367629820; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<authenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resendRecoveryEmailAddressCode final : public Function { + public: + + resendRecoveryEmailAddressCode(); + + static const std::int32_t ID = 433483548; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passwordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resetAllNotificationSettings final : public Function { + public: + + resetAllNotificationSettings(); + + static const std::int32_t ID = -174020359; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resetBackgrounds final : public Function { + public: + + resetBackgrounds(); + + static const std::int32_t ID = 204852088; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resetNetworkStatistics final : public Function { + public: + + resetNetworkStatistics(); + + static const std::int32_t ID = 1646452102; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class resetPassword final : public Function { + public: + + resetPassword(); + + static const std::int32_t ID = -593589091; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ResetPasswordResult>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class revokeChatInviteLink final : public Function { + public: + int53 chat_id_; + string invite_link_; + + revokeChatInviteLink(); + + revokeChatInviteLink(int53 chat_id_, string const &invite_link_); + + static const std::int32_t ID = -776514135; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatInviteLinks>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class revokeGroupCallInviteLink final : public Function { + public: + int32 group_call_id_; + + revokeGroupCallInviteLink(); + + explicit revokeGroupCallInviteLink(int32 group_call_id_); + + static const std::int32_t ID = 501589140; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class saveApplicationLogEvent final : public Function { + public: + string type_; + int53 chat_id_; + object_ptr<JsonValue> data_; + + saveApplicationLogEvent(); + + saveApplicationLogEvent(string const &type_, int53 chat_id_, object_ptr<JsonValue> &&data_); + + static const std::int32_t ID = -811154930; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchBackground final : public Function { + public: + string name_; + + searchBackground(); + + explicit searchBackground(string const &name_); + + static const std::int32_t ID = -2130996959; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<background>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchCallMessages final : public Function { + public: + int53 from_message_id_; + int32 limit_; + bool only_missed_; + + searchCallMessages(); + + searchCallMessages(int53 from_message_id_, int32 limit_, bool only_missed_); + + static const std::int32_t ID = -1077230820; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchChatMembers final : public Function { + public: + int53 chat_id_; + string query_; + int32 limit_; + object_ptr<ChatMembersFilter> filter_; + + searchChatMembers(); + + searchChatMembers(int53 chat_id_, string const &query_, int32 limit_, object_ptr<ChatMembersFilter> &&filter_); + + static const std::int32_t ID = -445823291; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatMembers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchChatMessages final : public Function { + public: + int53 chat_id_; + string query_; + object_ptr<MessageSender> sender_id_; + int53 from_message_id_; + int32 offset_; + int32 limit_; + object_ptr<SearchMessagesFilter> filter_; + int53 message_thread_id_; + + searchChatMessages(); + + searchChatMessages(int53 chat_id_, string const &query_, object_ptr<MessageSender> &&sender_id_, int53 from_message_id_, int32 offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int53 message_thread_id_); + + static const std::int32_t ID = -162154976; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchChatRecentLocationMessages final : public Function { + public: + int53 chat_id_; + int32 limit_; + + searchChatRecentLocationMessages(); + + searchChatRecentLocationMessages(int53 chat_id_, int32 limit_); + + static const std::int32_t ID = 950238950; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchChats final : public Function { + public: + string query_; + int32 limit_; + + searchChats(); + + searchChats(string const &query_, int32 limit_); + + static const std::int32_t ID = -1879787060; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchChatsNearby final : public Function { + public: + object_ptr<location> location_; + + searchChatsNearby(); + + explicit searchChatsNearby(object_ptr<location> &&location_); + + static const std::int32_t ID = -196753377; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatsNearby>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchChatsOnServer final : public Function { + public: + string query_; + int32 limit_; + + searchChatsOnServer(); + + searchChatsOnServer(string const &query_, int32 limit_); + + static const std::int32_t ID = -1158402188; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchContacts final : public Function { + public: + string query_; + int32 limit_; + + searchContacts(); + + searchContacts(string const &query_, int32 limit_); + + static const std::int32_t ID = -1794690715; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<users>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchEmojis final : public Function { + public: + string text_; + bool exact_match_; + array<string> input_language_codes_; + + searchEmojis(); + + searchEmojis(string const &text_, bool exact_match_, array<string> &&input_language_codes_); + + static const std::int32_t ID = 398837927; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojis>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchFileDownloads final : public Function { + public: + string query_; + bool only_active_; + bool only_completed_; + string offset_; + int32 limit_; + + searchFileDownloads(); + + searchFileDownloads(string const &query_, bool only_active_, bool only_completed_, string const &offset_, int32 limit_); + + static const std::int32_t ID = 706611286; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<foundFileDownloads>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchHashtags final : public Function { + public: + string prefix_; + int32 limit_; + + searchHashtags(); + + searchHashtags(string const &prefix_, int32 limit_); + + static const std::int32_t ID = 1043637617; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<hashtags>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchInstalledStickerSets final : public Function { + public: + object_ptr<StickerType> sticker_type_; + string query_; + int32 limit_; + + searchInstalledStickerSets(); + + searchInstalledStickerSets(object_ptr<StickerType> &&sticker_type_, string const &query_, int32 limit_); + + static const std::int32_t ID = 2120122276; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSets>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchMessages final : public Function { + public: + object_ptr<ChatList> chat_list_; + string query_; + int32 offset_date_; + int53 offset_chat_id_; + int53 offset_message_id_; + int32 limit_; + object_ptr<SearchMessagesFilter> filter_; + int32 min_date_; + int32 max_date_; + + searchMessages(); + + searchMessages(object_ptr<ChatList> &&chat_list_, string const &query_, int32 offset_date_, int53 offset_chat_id_, int53 offset_message_id_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_, int32 min_date_, int32 max_date_); + + static const std::int32_t ID = -225214062; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchOutgoingDocumentMessages final : public Function { + public: + string query_; + int32 limit_; + + searchOutgoingDocumentMessages(); + + searchOutgoingDocumentMessages(string const &query_, int32 limit_); + + static const std::int32_t ID = -1071397762; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<foundMessages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchPublicChat final : public Function { + public: + string username_; + + searchPublicChat(); + + explicit searchPublicChat(string const &username_); + + static const std::int32_t ID = 857135533; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchPublicChats final : public Function { + public: + string query_; + + searchPublicChats(); + + explicit searchPublicChats(string const &query_); + + static const std::int32_t ID = 970385337; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chats>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchSecretMessages final : public Function { + public: + int53 chat_id_; + string query_; + string offset_; + int32 limit_; + object_ptr<SearchMessagesFilter> filter_; + + searchSecretMessages(); + + searchSecretMessages(int53 chat_id_, string const &query_, string const &offset_, int32 limit_, object_ptr<SearchMessagesFilter> &&filter_); + + static const std::int32_t ID = -852865892; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<foundMessages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchStickerSet final : public Function { + public: + string name_; + + searchStickerSet(); + + explicit searchStickerSet(string const &name_); + + static const std::int32_t ID = 1157930222; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSet>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchStickerSets final : public Function { + public: + string query_; + + searchStickerSets(); + + explicit searchStickerSets(string const &query_); + + static const std::int32_t ID = -1082314629; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSets>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchStickers final : public Function { + public: + string emoji_; + int32 limit_; + + searchStickers(); + + searchStickers(string const &emoji_, int32 limit_); + + static const std::int32_t ID = 1555771203; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchUserByPhoneNumber final : public Function { + public: + string phone_number_; + + searchUserByPhoneNumber(); + + explicit searchUserByPhoneNumber(string const &phone_number_); + + static const std::int32_t ID = -1562236142; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<user>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendBotStartMessage final : public Function { + public: + int53 bot_user_id_; + int53 chat_id_; + string parameter_; + + sendBotStartMessage(); + + sendBotStartMessage(int53 bot_user_id_, int53 chat_id_, string const ¶meter_); + + static const std::int32_t ID = -1435877650; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendCallDebugInformation final : public Function { + public: + int32 call_id_; + string debug_information_; + + sendCallDebugInformation(); + + sendCallDebugInformation(int32 call_id_, string const &debug_information_); + + static const std::int32_t ID = 2019243839; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendCallLog final : public Function { + public: + int32 call_id_; + object_ptr<InputFile> log_file_; + + sendCallLog(); + + sendCallLog(int32 call_id_, object_ptr<InputFile> &&log_file_); + + static const std::int32_t ID = 1057638353; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendCallRating final : public Function { + public: + int32 call_id_; + int32 rating_; + string comment_; + array<object_ptr<CallProblem>> problems_; + + sendCallRating(); + + sendCallRating(int32 call_id_, int32 rating_, string const &comment_, array<object_ptr<CallProblem>> &&problems_); + + static const std::int32_t ID = -1402719502; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendCallSignalingData final : public Function { + public: + int32 call_id_; + bytes data_; + + sendCallSignalingData(); + + sendCallSignalingData(int32 call_id_, bytes const &data_); + + static const std::int32_t ID = 1412280732; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendChatAction final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + object_ptr<ChatAction> action_; + + sendChatAction(); + + sendChatAction(int53 chat_id_, int53 message_thread_id_, object_ptr<ChatAction> &&action_); + + static const std::int32_t ID = 2096947540; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendChatScreenshotTakenNotification final : public Function { + public: + int53 chat_id_; + + sendChatScreenshotTakenNotification(); + + explicit sendChatScreenshotTakenNotification(int53 chat_id_); + + static const std::int32_t ID = 448399457; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendCustomRequest final : public Function { + public: + string method_; + string parameters_; + + sendCustomRequest(); + + sendCustomRequest(string const &method_, string const ¶meters_); + + static const std::int32_t ID = 285045153; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<customRequestResult>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendEmailAddressVerificationCode final : public Function { + public: + string email_address_; + + sendEmailAddressVerificationCode(); + + explicit sendEmailAddressVerificationCode(string const &email_address_); + + static const std::int32_t ID = -221621379; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendInlineQueryResultMessage final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + int53 reply_to_message_id_; + object_ptr<messageSendOptions> options_; + int64 query_id_; + string result_id_; + bool hide_via_bot_; + + sendInlineQueryResultMessage(); + + sendInlineQueryResultMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, int64 query_id_, string const &result_id_, bool hide_via_bot_); + + static const std::int32_t ID = -948639588; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessage final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + int53 reply_to_message_id_; + object_ptr<messageSendOptions> options_; + object_ptr<ReplyMarkup> reply_markup_; + object_ptr<InputMessageContent> input_message_content_; + + sendMessage(); + + sendMessage(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, object_ptr<ReplyMarkup> &&reply_markup_, object_ptr<InputMessageContent> &&input_message_content_); + + static const std::int32_t ID = 960453021; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageAlbum final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + int53 reply_to_message_id_; + object_ptr<messageSendOptions> options_; + array<object_ptr<InputMessageContent>> input_message_contents_; + bool only_preview_; + + sendMessageAlbum(); + + sendMessageAlbum(int53 chat_id_, int53 message_thread_id_, int53 reply_to_message_id_, object_ptr<messageSendOptions> &&options_, array<object_ptr<InputMessageContent>> &&input_message_contents_, bool only_preview_); + + static const std::int32_t ID = -1639797862; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendPassportAuthorizationForm final : public Function { + public: + int32 autorization_form_id_; + array<object_ptr<PassportElementType>> types_; + + sendPassportAuthorizationForm(); + + sendPassportAuthorizationForm(int32 autorization_form_id_, array<object_ptr<PassportElementType>> &&types_); + + static const std::int32_t ID = -602402218; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendPaymentForm final : public Function { + public: + object_ptr<InputInvoice> input_invoice_; + int64 payment_form_id_; + string order_info_id_; + string shipping_option_id_; + object_ptr<InputCredentials> credentials_; + int53 tip_amount_; + + sendPaymentForm(); + + sendPaymentForm(object_ptr<InputInvoice> &&input_invoice_, int64 payment_form_id_, string const &order_info_id_, string const &shipping_option_id_, object_ptr<InputCredentials> &&credentials_, int53 tip_amount_); + + static const std::int32_t ID = -965855094; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<paymentResult>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendPhoneNumberConfirmationCode final : public Function { + public: + string hash_; + string phone_number_; + object_ptr<phoneNumberAuthenticationSettings> settings_; + + sendPhoneNumberConfirmationCode(); + + sendPhoneNumberConfirmationCode(string const &hash_, string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_); + + static const std::int32_t ID = -1901171495; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<authenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendPhoneNumberVerificationCode final : public Function { + public: + string phone_number_; + object_ptr<phoneNumberAuthenticationSettings> settings_; + + sendPhoneNumberVerificationCode(); + + sendPhoneNumberVerificationCode(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_); + + static const std::int32_t ID = 2081689035; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<authenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendWebAppData final : public Function { + public: + int53 bot_user_id_; + string button_text_; + string data_; + + sendWebAppData(); + + sendWebAppData(int53 bot_user_id_, string const &button_text_, string const &data_); + + static const std::int32_t ID = -1423978996; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setAccountTtl final : public Function { + public: + object_ptr<accountTtl> ttl_; + + setAccountTtl(); + + explicit setAccountTtl(object_ptr<accountTtl> &&ttl_); + + static const std::int32_t ID = 701389032; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setAlarm final : public Function { + public: + double seconds_; + + setAlarm(); + + explicit setAlarm(double seconds_); + + static const std::int32_t ID = -873497067; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setAuthenticationEmailAddress final : public Function { + public: + string email_address_; + + setAuthenticationEmailAddress(); + + explicit setAuthenticationEmailAddress(string const &email_address_); + + static const std::int32_t ID = 1773323522; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setAuthenticationPhoneNumber final : public Function { + public: + string phone_number_; + object_ptr<phoneNumberAuthenticationSettings> settings_; + + setAuthenticationPhoneNumber(); + + setAuthenticationPhoneNumber(string const &phone_number_, object_ptr<phoneNumberAuthenticationSettings> &&settings_); + + static const std::int32_t ID = 868276259; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setAutoDownloadSettings final : public Function { + public: + object_ptr<autoDownloadSettings> settings_; + object_ptr<NetworkType> type_; + + setAutoDownloadSettings(); + + setAutoDownloadSettings(object_ptr<autoDownloadSettings> &&settings_, object_ptr<NetworkType> &&type_); + + static const std::int32_t ID = -353671948; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setBackground final : public Function { + public: + object_ptr<InputBackground> background_; + object_ptr<BackgroundType> type_; + bool for_dark_theme_; + + setBackground(); + + setBackground(object_ptr<InputBackground> &&background_, object_ptr<BackgroundType> &&type_, bool for_dark_theme_); + + static const std::int32_t ID = -1035439225; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<background>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setBio final : public Function { + public: + string bio_; + + setBio(); + + explicit setBio(string const &bio_); + + static const std::int32_t ID = -1619582124; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setBotUpdatesStatus final : public Function { + public: + int32 pending_update_count_; + string error_message_; + + setBotUpdatesStatus(); + + setBotUpdatesStatus(int32 pending_update_count_, string const &error_message_); + + static const std::int32_t ID = -1154926191; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatAvailableReactions final : public Function { + public: + int53 chat_id_; + object_ptr<ChatAvailableReactions> available_reactions_; + + setChatAvailableReactions(); + + setChatAvailableReactions(int53 chat_id_, object_ptr<ChatAvailableReactions> &&available_reactions_); + + static const std::int32_t ID = 267075078; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatClientData final : public Function { + public: + int53 chat_id_; + string client_data_; + + setChatClientData(); + + setChatClientData(int53 chat_id_, string const &client_data_); + + static const std::int32_t ID = -827119811; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatDescription final : public Function { + public: + int53 chat_id_; + string description_; + + setChatDescription(); + + setChatDescription(int53 chat_id_, string const &description_); + + static const std::int32_t ID = 1957213277; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatDiscussionGroup final : public Function { + public: + int53 chat_id_; + int53 discussion_chat_id_; + + setChatDiscussionGroup(); + + setChatDiscussionGroup(int53 chat_id_, int53 discussion_chat_id_); + + static const std::int32_t ID = -918801736; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatDraftMessage final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + object_ptr<draftMessage> draft_message_; + + setChatDraftMessage(); + + setChatDraftMessage(int53 chat_id_, int53 message_thread_id_, object_ptr<draftMessage> &&draft_message_); + + static const std::int32_t ID = 1683889946; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatLocation final : public Function { + public: + int53 chat_id_; + object_ptr<chatLocation> location_; + + setChatLocation(); + + setChatLocation(int53 chat_id_, object_ptr<chatLocation> &&location_); + + static const std::int32_t ID = -767091286; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatMemberStatus final : public Function { + public: + int53 chat_id_; + object_ptr<MessageSender> member_id_; + object_ptr<ChatMemberStatus> status_; + + setChatMemberStatus(); + + setChatMemberStatus(int53 chat_id_, object_ptr<MessageSender> &&member_id_, object_ptr<ChatMemberStatus> &&status_); + + static const std::int32_t ID = 81794847; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatMessageSender final : public Function { + public: + int53 chat_id_; + object_ptr<MessageSender> message_sender_id_; + + setChatMessageSender(); + + setChatMessageSender(int53 chat_id_, object_ptr<MessageSender> &&message_sender_id_); + + static const std::int32_t ID = -1421513858; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatMessageTtl final : public Function { + public: + int53 chat_id_; + int32 ttl_; + + setChatMessageTtl(); + + setChatMessageTtl(int53 chat_id_, int32 ttl_); + + static const std::int32_t ID = -1578406279; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatNotificationSettings final : public Function { + public: + int53 chat_id_; + object_ptr<chatNotificationSettings> notification_settings_; + + setChatNotificationSettings(); + + setChatNotificationSettings(int53 chat_id_, object_ptr<chatNotificationSettings> &¬ification_settings_); + + static const std::int32_t ID = 777199614; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatPermissions final : public Function { + public: + int53 chat_id_; + object_ptr<chatPermissions> permissions_; + + setChatPermissions(); + + setChatPermissions(int53 chat_id_, object_ptr<chatPermissions> &&permissions_); + + static const std::int32_t ID = 2138507006; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatPhoto final : public Function { + public: + int53 chat_id_; + object_ptr<InputChatPhoto> photo_; + + setChatPhoto(); + + setChatPhoto(int53 chat_id_, object_ptr<InputChatPhoto> &&photo_); + + static const std::int32_t ID = -377778941; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatSlowModeDelay final : public Function { + public: + int53 chat_id_; + int32 slow_mode_delay_; + + setChatSlowModeDelay(); + + setChatSlowModeDelay(int53 chat_id_, int32 slow_mode_delay_); + + static const std::int32_t ID = -540350914; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatTheme final : public Function { + public: + int53 chat_id_; + string theme_name_; + + setChatTheme(); + + setChatTheme(int53 chat_id_, string const &theme_name_); + + static const std::int32_t ID = -1895234925; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setChatTitle final : public Function { + public: + int53 chat_id_; + string title_; + + setChatTitle(); + + setChatTitle(int53 chat_id_, string const &title_); + + static const std::int32_t ID = 164282047; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setCommands final : public Function { + public: + object_ptr<BotCommandScope> scope_; + string language_code_; + array<object_ptr<botCommand>> commands_; + + setCommands(); + + setCommands(object_ptr<BotCommandScope> &&scope_, string const &language_code_, array<object_ptr<botCommand>> &&commands_); + + static const std::int32_t ID = -907165606; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setCustomLanguagePack final : public Function { + public: + object_ptr<languagePackInfo> info_; + array<object_ptr<languagePackString>> strings_; + + setCustomLanguagePack(); + + setCustomLanguagePack(object_ptr<languagePackInfo> &&info_, array<object_ptr<languagePackString>> &&strings_); + + static const std::int32_t ID = -296742819; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setCustomLanguagePackString final : public Function { + public: + string language_pack_id_; + object_ptr<languagePackString> new_string_; + + setCustomLanguagePackString(); + + setCustomLanguagePackString(string const &language_pack_id_, object_ptr<languagePackString> &&new_string_); + + static const std::int32_t ID = 1316365592; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setDatabaseEncryptionKey final : public Function { + public: + bytes new_encryption_key_; + + setDatabaseEncryptionKey(); + + explicit setDatabaseEncryptionKey(bytes const &new_encryption_key_); + + static const std::int32_t ID = -1204599371; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setDefaultChannelAdministratorRights final : public Function { + public: + object_ptr<chatAdministratorRights> default_channel_administrator_rights_; + + setDefaultChannelAdministratorRights(); + + explicit setDefaultChannelAdministratorRights(object_ptr<chatAdministratorRights> &&default_channel_administrator_rights_); + + static const std::int32_t ID = -234004967; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setDefaultGroupAdministratorRights final : public Function { + public: + object_ptr<chatAdministratorRights> default_group_administrator_rights_; + + setDefaultGroupAdministratorRights(); + + explicit setDefaultGroupAdministratorRights(object_ptr<chatAdministratorRights> &&default_group_administrator_rights_); + + static const std::int32_t ID = 1700231016; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setDefaultReactionType final : public Function { + public: + object_ptr<ReactionType> reaction_type_; + + setDefaultReactionType(); + + explicit setDefaultReactionType(object_ptr<ReactionType> &&reaction_type_); + + static const std::int32_t ID = 1694730813; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setEmojiStatus final : public Function { + public: + object_ptr<emojiStatus> emoji_status_; + int32 duration_; + + setEmojiStatus(); + + setEmojiStatus(object_ptr<emojiStatus> &&emoji_status_, int32 duration_); + + static const std::int32_t ID = -1310680569; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setFileGenerationProgress final : public Function { + public: + int64 generation_id_; + int53 expected_size_; + int53 local_prefix_size_; + + setFileGenerationProgress(); + + setFileGenerationProgress(int64 generation_id_, int53 expected_size_, int53 local_prefix_size_); + + static const std::int32_t ID = 1836403518; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setGameScore final : public Function { + public: + int53 chat_id_; + int53 message_id_; + bool edit_message_; + int53 user_id_; + int32 score_; + bool force_; + + setGameScore(); + + setGameScore(int53 chat_id_, int53 message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_); + + static const std::int32_t ID = 2127359430; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<message>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setGroupCallParticipantIsSpeaking final : public Function { + public: + int32 group_call_id_; + int32 audio_source_; + bool is_speaking_; + + setGroupCallParticipantIsSpeaking(); + + setGroupCallParticipantIsSpeaking(int32 group_call_id_, int32 audio_source_, bool is_speaking_); + + static const std::int32_t ID = 927506917; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setGroupCallParticipantVolumeLevel final : public Function { + public: + int32 group_call_id_; + object_ptr<MessageSender> participant_id_; + int32 volume_level_; + + setGroupCallParticipantVolumeLevel(); + + setGroupCallParticipantVolumeLevel(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, int32 volume_level_); + + static const std::int32_t ID = -1753769944; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setGroupCallTitle final : public Function { + public: + int32 group_call_id_; + string title_; + + setGroupCallTitle(); + + setGroupCallTitle(int32 group_call_id_, string const &title_); + + static const std::int32_t ID = -1228825139; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setInactiveSessionTtl final : public Function { + public: + int32 inactive_session_ttl_days_; + + setInactiveSessionTtl(); + + explicit setInactiveSessionTtl(int32 inactive_session_ttl_days_); + + static const std::int32_t ID = 1570548048; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setInlineGameScore final : public Function { + public: + string inline_message_id_; + bool edit_message_; + int53 user_id_; + int32 score_; + bool force_; + + setInlineGameScore(); + + setInlineGameScore(string const &inline_message_id_, bool edit_message_, int53 user_id_, int32 score_, bool force_); + + static const std::int32_t ID = -948871797; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setLocation final : public Function { + public: + object_ptr<location> location_; + + setLocation(); + + explicit setLocation(object_ptr<location> &&location_); + + static const std::int32_t ID = 93926257; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setLogStream final : public Function { + public: + object_ptr<LogStream> log_stream_; + + setLogStream(); + + explicit setLogStream(object_ptr<LogStream> &&log_stream_); + + static const std::int32_t ID = -1364199535; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setLogTagVerbosityLevel final : public Function { + public: + string tag_; + int32 new_verbosity_level_; + + setLogTagVerbosityLevel(); + + setLogTagVerbosityLevel(string const &tag_, int32 new_verbosity_level_); + + static const std::int32_t ID = -2095589738; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setLogVerbosityLevel final : public Function { + public: + int32 new_verbosity_level_; + + setLogVerbosityLevel(); + + explicit setLogVerbosityLevel(int32 new_verbosity_level_); + + static const std::int32_t ID = -303429678; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setLoginEmailAddress final : public Function { + public: + string new_login_email_address_; + + setLoginEmailAddress(); + + explicit setLoginEmailAddress(string const &new_login_email_address_); + + static const std::int32_t ID = 935019476; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emailAddressAuthenticationCodeInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setMenuButton final : public Function { + public: + int53 user_id_; + object_ptr<botMenuButton> menu_button_; + + setMenuButton(); + + setMenuButton(int53 user_id_, object_ptr<botMenuButton> &&menu_button_); + + static const std::int32_t ID = -1269841599; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setName final : public Function { + public: + string first_name_; + string last_name_; + + setName(); + + setName(string const &first_name_, string const &last_name_); + + static const std::int32_t ID = 1711693584; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setNetworkType final : public Function { + public: + object_ptr<NetworkType> type_; + + setNetworkType(); + + explicit setNetworkType(object_ptr<NetworkType> &&type_); + + static const std::int32_t ID = -701635234; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setOption final : public Function { + public: + string name_; + object_ptr<OptionValue> value_; + + setOption(); + + setOption(string const &name_, object_ptr<OptionValue> &&value_); + + static const std::int32_t ID = 2114670322; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setPassportElement final : public Function { + public: + object_ptr<InputPassportElement> element_; + string password_; + + setPassportElement(); + + setPassportElement(object_ptr<InputPassportElement> &&element_, string const &password_); + + static const std::int32_t ID = 2068173212; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<PassportElement>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setPassportElementErrors final : public Function { + public: + int53 user_id_; + array<object_ptr<inputPassportElementError>> errors_; + + setPassportElementErrors(); + + setPassportElementErrors(int53 user_id_, array<object_ptr<inputPassportElementError>> &&errors_); + + static const std::int32_t ID = -2056754881; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setPassword final : public Function { + public: + string old_password_; + string new_password_; + string new_hint_; + bool set_recovery_email_address_; + string new_recovery_email_address_; + + setPassword(); + + setPassword(string const &old_password_, string const &new_password_, string const &new_hint_, bool set_recovery_email_address_, string const &new_recovery_email_address_); + + static const std::int32_t ID = -1193589027; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passwordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setPinnedChats final : public Function { + public: + object_ptr<ChatList> chat_list_; + array<int53> chat_ids_; + + setPinnedChats(); + + setPinnedChats(object_ptr<ChatList> &&chat_list_, array<int53> &&chat_ids_); + + static const std::int32_t ID = -695640000; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setPollAnswer final : public Function { + public: + int53 chat_id_; + int53 message_id_; + array<int32> option_ids_; + + setPollAnswer(); + + setPollAnswer(int53 chat_id_, int53 message_id_, array<int32> &&option_ids_); + + static const std::int32_t ID = -1399388792; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setProfilePhoto final : public Function { + public: + object_ptr<InputChatPhoto> photo_; + + setProfilePhoto(); + + explicit setProfilePhoto(object_ptr<InputChatPhoto> &&photo_); + + static const std::int32_t ID = -2069678882; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setRecoveryEmailAddress final : public Function { + public: + string password_; + string new_recovery_email_address_; + + setRecoveryEmailAddress(); + + setRecoveryEmailAddress(string const &password_, string const &new_recovery_email_address_); + + static const std::int32_t ID = -1981836385; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<passwordState>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setScopeNotificationSettings final : public Function { + public: + object_ptr<NotificationSettingsScope> scope_; + object_ptr<scopeNotificationSettings> notification_settings_; + + setScopeNotificationSettings(); + + setScopeNotificationSettings(object_ptr<NotificationSettingsScope> &&scope_, object_ptr<scopeNotificationSettings> &¬ification_settings_); + + static const std::int32_t ID = -2049984966; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setStickerPositionInSet final : public Function { + public: + object_ptr<InputFile> sticker_; + int32 position_; + + setStickerPositionInSet(); + + setStickerPositionInSet(object_ptr<InputFile> &&sticker_, int32 position_); + + static const std::int32_t ID = 2075281185; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setStickerSetThumbnail final : public Function { + public: + int53 user_id_; + string name_; + object_ptr<InputFile> thumbnail_; + + setStickerSetThumbnail(); + + setStickerSetThumbnail(int53 user_id_, string const &name_, object_ptr<InputFile> &&thumbnail_); + + static const std::int32_t ID = 1230174856; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickerSet>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setSupergroupStickerSet final : public Function { + public: + int53 supergroup_id_; + int64 sticker_set_id_; + + setSupergroupStickerSet(); + + setSupergroupStickerSet(int53 supergroup_id_, int64 sticker_set_id_); + + static const std::int32_t ID = -2056344215; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setSupergroupUsername final : public Function { + public: + int53 supergroup_id_; + string username_; + + setSupergroupUsername(); + + setSupergroupUsername(int53 supergroup_id_, string const &username_); + + static const std::int32_t ID = 1346325252; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setTdlibParameters final : public Function { + public: + bool use_test_dc_; + string database_directory_; + string files_directory_; + bytes database_encryption_key_; + bool use_file_database_; + bool use_chat_info_database_; + bool use_message_database_; + bool use_secret_chats_; + int32 api_id_; + string api_hash_; + string system_language_code_; + string device_model_; + string system_version_; + string application_version_; + bool enable_storage_optimizer_; + bool ignore_file_names_; + + setTdlibParameters(); + + setTdlibParameters(bool use_test_dc_, string const &database_directory_, string const &files_directory_, bytes const &database_encryption_key_, bool use_file_database_, bool use_chat_info_database_, bool use_message_database_, bool use_secret_chats_, int32 api_id_, string const &api_hash_, string const &system_language_code_, string const &device_model_, string const &system_version_, string const &application_version_, bool enable_storage_optimizer_, bool ignore_file_names_); + + static const std::int32_t ID = 1384743481; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setUserPrivacySettingRules final : public Function { + public: + object_ptr<UserPrivacySetting> setting_; + object_ptr<userPrivacySettingRules> rules_; + + setUserPrivacySettingRules(); + + setUserPrivacySettingRules(object_ptr<UserPrivacySetting> &&setting_, object_ptr<userPrivacySettingRules> &&rules_); + + static const std::int32_t ID = -473812741; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setUserSupportInfo final : public Function { + public: + int53 user_id_; + object_ptr<formattedText> message_; + + setUserSupportInfo(); + + setUserSupportInfo(int53 user_id_, object_ptr<formattedText> &&message_); + + static const std::int32_t ID = -2088986621; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<userSupportInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setUsername final : public Function { + public: + string username_; + + setUsername(); + + explicit setUsername(string const &username_); + + static const std::int32_t ID = 439901214; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class setVideoChatDefaultParticipant final : public Function { + public: + int53 chat_id_; + object_ptr<MessageSender> default_participant_id_; + + setVideoChatDefaultParticipant(); + + setVideoChatDefaultParticipant(int53 chat_id_, object_ptr<MessageSender> &&default_participant_id_); + + static const std::int32_t ID = -240749901; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sharePhoneNumber final : public Function { + public: + int53 user_id_; + + sharePhoneNumber(); + + explicit sharePhoneNumber(int53 user_id_); + + static const std::int32_t ID = 1097130069; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class startGroupCallRecording final : public Function { + public: + int32 group_call_id_; + string title_; + bool record_video_; + bool use_portrait_orientation_; + + startGroupCallRecording(); + + startGroupCallRecording(int32 group_call_id_, string const &title_, bool record_video_, bool use_portrait_orientation_); + + static const std::int32_t ID = 1757774971; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class startGroupCallScreenSharing final : public Function { + public: + int32 group_call_id_; + int32 audio_source_id_; + string payload_; + + startGroupCallScreenSharing(); + + startGroupCallScreenSharing(int32 group_call_id_, int32 audio_source_id_, string const &payload_); + + static const std::int32_t ID = -884068051; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class startScheduledGroupCall final : public Function { + public: + int32 group_call_id_; + + startScheduledGroupCall(); + + explicit startScheduledGroupCall(int32 group_call_id_); + + static const std::int32_t ID = 1519938838; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stopPoll final : public Function { + public: + int53 chat_id_; + int53 message_id_; + object_ptr<ReplyMarkup> reply_markup_; + + stopPoll(); + + stopPoll(int53 chat_id_, int53 message_id_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = 1659374253; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class synchronizeLanguagePack final : public Function { + public: + string language_pack_id_; + + synchronizeLanguagePack(); + + explicit synchronizeLanguagePack(string const &language_pack_id_); + + static const std::int32_t ID = -2065307858; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class terminateAllOtherSessions final : public Function { + public: + + terminateAllOtherSessions(); + + static const std::int32_t ID = 1874485523; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class terminateSession final : public Function { + public: + int64 session_id_; + + terminateSession(); + + explicit terminateSession(int64 session_id_); + + static const std::int32_t ID = -407385812; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testCallBytes final : public Function { + public: + bytes x_; + + testCallBytes(); + + explicit testCallBytes(bytes const &x_); + + static const std::int32_t ID = -736011607; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<testBytes>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testCallEmpty final : public Function { + public: + + testCallEmpty(); + + static const std::int32_t ID = -627291626; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testCallString final : public Function { + public: + string x_; + + testCallString(); + + explicit testCallString(string const &x_); + + static const std::int32_t ID = -1732818385; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<testString>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testCallVectorInt final : public Function { + public: + array<int32> x_; + + testCallVectorInt(); + + explicit testCallVectorInt(array<int32> &&x_); + + static const std::int32_t ID = -2137277793; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<testVectorInt>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testCallVectorIntObject final : public Function { + public: + array<object_ptr<testInt>> x_; + + testCallVectorIntObject(); + + explicit testCallVectorIntObject(array<object_ptr<testInt>> &&x_); + + static const std::int32_t ID = 1825428218; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<testVectorIntObject>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testCallVectorString final : public Function { + public: + array<string> x_; + + testCallVectorString(); + + explicit testCallVectorString(array<string> &&x_); + + static const std::int32_t ID = -408600900; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<testVectorString>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testCallVectorStringObject final : public Function { + public: + array<object_ptr<testString>> x_; + + testCallVectorStringObject(); + + explicit testCallVectorStringObject(array<object_ptr<testString>> &&x_); + + static const std::int32_t ID = 1527666429; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<testVectorStringObject>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testGetDifference final : public Function { + public: + + testGetDifference(); + + static const std::int32_t ID = 1747084069; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testNetwork final : public Function { + public: + + testNetwork(); + + static const std::int32_t ID = -1343998901; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testProxy final : public Function { + public: + string server_; + int32 port_; + object_ptr<ProxyType> type_; + int32 dc_id_; + double timeout_; + + testProxy(); + + testProxy(string const &server_, int32 port_, object_ptr<ProxyType> &&type_, int32 dc_id_, double timeout_); + + static const std::int32_t ID = -1197366626; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testReturnError final : public Function { + public: + object_ptr<error> error_; + + testReturnError(); + + explicit testReturnError(object_ptr<error> &&error_); + + static const std::int32_t ID = 455179506; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<error>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testSquareInt final : public Function { + public: + int32 x_; + + testSquareInt(); + + explicit testSquareInt(int32 x_); + + static const std::int32_t ID = -60135024; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<testInt>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class testUseUpdate final : public Function { + public: + + testUseUpdate(); + + static const std::int32_t ID = 717094686; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Update>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleAllDownloadsArePaused final : public Function { + public: + bool are_paused_; + + toggleAllDownloadsArePaused(); + + explicit toggleAllDownloadsArePaused(bool are_paused_); + + static const std::int32_t ID = 1251512322; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleBotIsAddedToAttachmentMenu final : public Function { + public: + int53 bot_user_id_; + bool is_added_; + + toggleBotIsAddedToAttachmentMenu(); + + toggleBotIsAddedToAttachmentMenu(int53 bot_user_id_, bool is_added_); + + static const std::int32_t ID = -1251515422; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleChatDefaultDisableNotification final : public Function { + public: + int53 chat_id_; + bool default_disable_notification_; + + toggleChatDefaultDisableNotification(); + + toggleChatDefaultDisableNotification(int53 chat_id_, bool default_disable_notification_); + + static const std::int32_t ID = 314794002; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleChatHasProtectedContent final : public Function { + public: + int53 chat_id_; + bool has_protected_content_; + + toggleChatHasProtectedContent(); + + toggleChatHasProtectedContent(int53 chat_id_, bool has_protected_content_); + + static const std::int32_t ID = 975231309; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleChatIsMarkedAsUnread final : public Function { + public: + int53 chat_id_; + bool is_marked_as_unread_; + + toggleChatIsMarkedAsUnread(); + + toggleChatIsMarkedAsUnread(int53 chat_id_, bool is_marked_as_unread_); + + static const std::int32_t ID = -986129697; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleChatIsPinned final : public Function { + public: + object_ptr<ChatList> chat_list_; + int53 chat_id_; + bool is_pinned_; + + toggleChatIsPinned(); + + toggleChatIsPinned(object_ptr<ChatList> &&chat_list_, int53 chat_id_, bool is_pinned_); + + static const std::int32_t ID = -1485429186; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleDownloadIsPaused final : public Function { + public: + int32 file_id_; + bool is_paused_; + + toggleDownloadIsPaused(); + + toggleDownloadIsPaused(int32 file_id_, bool is_paused_); + + static const std::int32_t ID = -947493099; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleForumTopicIsClosed final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + bool is_closed_; + + toggleForumTopicIsClosed(); + + toggleForumTopicIsClosed(int53 chat_id_, int53 message_thread_id_, bool is_closed_); + + static const std::int32_t ID = -949712141; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleGroupCallEnabledStartNotification final : public Function { + public: + int32 group_call_id_; + bool enabled_start_notification_; + + toggleGroupCallEnabledStartNotification(); + + toggleGroupCallEnabledStartNotification(int32 group_call_id_, bool enabled_start_notification_); + + static const std::int32_t ID = 707839826; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleGroupCallIsMyVideoEnabled final : public Function { + public: + int32 group_call_id_; + bool is_my_video_enabled_; + + toggleGroupCallIsMyVideoEnabled(); + + toggleGroupCallIsMyVideoEnabled(int32 group_call_id_, bool is_my_video_enabled_); + + static const std::int32_t ID = -1624289030; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleGroupCallIsMyVideoPaused final : public Function { + public: + int32 group_call_id_; + bool is_my_video_paused_; + + toggleGroupCallIsMyVideoPaused(); + + toggleGroupCallIsMyVideoPaused(int32 group_call_id_, bool is_my_video_paused_); + + static const std::int32_t ID = -478875239; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleGroupCallMuteNewParticipants final : public Function { + public: + int32 group_call_id_; + bool mute_new_participants_; + + toggleGroupCallMuteNewParticipants(); + + toggleGroupCallMuteNewParticipants(int32 group_call_id_, bool mute_new_participants_); + + static const std::int32_t ID = 284082626; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleGroupCallParticipantIsHandRaised final : public Function { + public: + int32 group_call_id_; + object_ptr<MessageSender> participant_id_; + bool is_hand_raised_; + + toggleGroupCallParticipantIsHandRaised(); + + toggleGroupCallParticipantIsHandRaised(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_hand_raised_); + + static const std::int32_t ID = -1896127519; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleGroupCallParticipantIsMuted final : public Function { + public: + int32 group_call_id_; + object_ptr<MessageSender> participant_id_; + bool is_muted_; + + toggleGroupCallParticipantIsMuted(); + + toggleGroupCallParticipantIsMuted(int32 group_call_id_, object_ptr<MessageSender> &&participant_id_, bool is_muted_); + + static const std::int32_t ID = -1308093433; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleGroupCallScreenSharingIsPaused final : public Function { + public: + int32 group_call_id_; + bool is_paused_; + + toggleGroupCallScreenSharingIsPaused(); + + toggleGroupCallScreenSharingIsPaused(int32 group_call_id_, bool is_paused_); + + static const std::int32_t ID = -1602530464; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleMessageSenderIsBlocked final : public Function { + public: + object_ptr<MessageSender> sender_id_; + bool is_blocked_; + + toggleMessageSenderIsBlocked(); + + toggleMessageSenderIsBlocked(object_ptr<MessageSender> &&sender_id_, bool is_blocked_); + + static const std::int32_t ID = -2008084779; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSessionCanAcceptCalls final : public Function { + public: + int64 session_id_; + bool can_accept_calls_; + + toggleSessionCanAcceptCalls(); + + toggleSessionCanAcceptCalls(int64 session_id_, bool can_accept_calls_); + + static const std::int32_t ID = 1819027208; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSessionCanAcceptSecretChats final : public Function { + public: + int64 session_id_; + bool can_accept_secret_chats_; + + toggleSessionCanAcceptSecretChats(); + + toggleSessionCanAcceptSecretChats(int64 session_id_, bool can_accept_secret_chats_); + + static const std::int32_t ID = 1000843390; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSupergroupIsAllHistoryAvailable final : public Function { + public: + int53 supergroup_id_; + bool is_all_history_available_; + + toggleSupergroupIsAllHistoryAvailable(); + + toggleSupergroupIsAllHistoryAvailable(int53 supergroup_id_, bool is_all_history_available_); + + static const std::int32_t ID = 1155110478; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSupergroupIsBroadcastGroup final : public Function { + public: + int53 supergroup_id_; + + toggleSupergroupIsBroadcastGroup(); + + explicit toggleSupergroupIsBroadcastGroup(int53 supergroup_id_); + + static const std::int32_t ID = 884089365; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSupergroupIsForum final : public Function { + public: + int53 supergroup_id_; + bool is_forum_; + + toggleSupergroupIsForum(); + + toggleSupergroupIsForum(int53 supergroup_id_, bool is_forum_); + + static const std::int32_t ID = -1771071990; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSupergroupJoinByRequest final : public Function { + public: + int53 supergroup_id_; + bool join_by_request_; + + toggleSupergroupJoinByRequest(); + + toggleSupergroupJoinByRequest(int53 supergroup_id_, bool join_by_request_); + + static const std::int32_t ID = 2111807454; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSupergroupJoinToSendMessages final : public Function { + public: + int53 supergroup_id_; + bool join_to_send_messages_; + + toggleSupergroupJoinToSendMessages(); + + toggleSupergroupJoinToSendMessages(int53 supergroup_id_, bool join_to_send_messages_); + + static const std::int32_t ID = -182022642; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSupergroupSignMessages final : public Function { + public: + int53 supergroup_id_; + bool sign_messages_; + + toggleSupergroupSignMessages(); + + toggleSupergroupSignMessages(int53 supergroup_id_, bool sign_messages_); + + static const std::int32_t ID = 1156568356; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleSupergroupUsernameIsActive final : public Function { + public: + int53 supergroup_id_; + string username_; + bool is_active_; + + toggleSupergroupUsernameIsActive(); + + toggleSupergroupUsernameIsActive(int53 supergroup_id_, string const &username_, bool is_active_); + + static const std::int32_t ID = -1500811777; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class toggleUsernameIsActive final : public Function { + public: + string username_; + bool is_active_; + + toggleUsernameIsActive(); + + toggleUsernameIsActive(string const &username_, bool is_active_); + + static const std::int32_t ID = 1244098019; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class transferChatOwnership final : public Function { + public: + int53 chat_id_; + int53 user_id_; + string password_; + + transferChatOwnership(); + + transferChatOwnership(int53 chat_id_, int53 user_id_, string const &password_); + + static const std::int32_t ID = 2006977043; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class translateText final : public Function { + public: + string text_; + string from_language_code_; + string to_language_code_; + + translateText(); + + translateText(string const &text_, string const &from_language_code_, string const &to_language_code_); + + static const std::int32_t ID = -1619686803; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<text>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class unpinAllChatMessages final : public Function { + public: + int53 chat_id_; + + unpinAllChatMessages(); + + explicit unpinAllChatMessages(int53 chat_id_); + + static const std::int32_t ID = -1437805385; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class unpinAllMessageThreadMessages final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + + unpinAllMessageThreadMessages(); + + unpinAllMessageThreadMessages(int53 chat_id_, int53 message_thread_id_); + + static const std::int32_t ID = -1211719936; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class unpinChatMessage final : public Function { + public: + int53 chat_id_; + int53 message_id_; + + unpinChatMessage(); + + unpinChatMessage(int53 chat_id_, int53 message_id_); + + static const std::int32_t ID = 2065448670; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upgradeBasicGroupChatToSupergroupChat final : public Function { + public: + int53 chat_id_; + + upgradeBasicGroupChatToSupergroupChat(); + + explicit upgradeBasicGroupChatToSupergroupChat(int53 chat_id_); + + static const std::int32_t ID = 300488122; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chat>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class uploadStickerFile final : public Function { + public: + int53 user_id_; + object_ptr<inputSticker> sticker_; + + uploadStickerFile(); + + uploadStickerFile(int53 user_id_, object_ptr<inputSticker> &&sticker_); + + static const std::int32_t ID = 86279066; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<file>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class validateOrderInfo final : public Function { + public: + object_ptr<InputInvoice> input_invoice_; + object_ptr<orderInfo> order_info_; + bool allow_save_; + + validateOrderInfo(); + + validateOrderInfo(object_ptr<InputInvoice> &&input_invoice_, object_ptr<orderInfo> &&order_info_, bool allow_save_); + + static const std::int32_t ID = -1248305201; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<validatedOrderInfo>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class viewMessages final : public Function { + public: + int53 chat_id_; + int53 message_thread_id_; + array<int53> message_ids_; + bool force_read_; + + viewMessages(); + + viewMessages(int53 chat_id_, int53 message_thread_id_, array<int53> &&message_ids_, bool force_read_); + + static const std::int32_t ID = -1155961496; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class viewPremiumFeature final : public Function { + public: + object_ptr<PremiumFeature> feature_; + + viewPremiumFeature(); + + explicit viewPremiumFeature(object_ptr<PremiumFeature> &&feature_); + + static const std::int32_t ID = 192950706; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class viewTrendingStickerSets final : public Function { + public: + array<int64> sticker_set_ids_; + + viewTrendingStickerSets(); + + explicit viewTrendingStickerSets(array<int64> &&sticker_set_ids_); + + static const std::int32_t ID = -952416520; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class writeGeneratedFilePart final : public Function { + public: + int64 generation_id_; + int53 offset_; + bytes data_; + + writeGeneratedFilePart(); + + writeGeneratedFilePart(int64 generation_id_, int53 offset_, bytes const &data_); + + static const std::int32_t ID = 214474389; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ok>; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +} // namespace td_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.hpp new file mode 100644 index 0000000000..7d93e0fe6a --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api.hpp @@ -0,0 +1,8977 @@ +#pragma once + +/** + * \file + * Contains downcast_call methods for calling a function object on downcasted to + * the most derived class TDLib API object. + */ +#include "td_api.h" + +namespace td { +namespace td_api { + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Object &obj, const T &func) { + switch (obj.get_id()) { + case accountTtl::ID: + func(static_cast<accountTtl &>(obj)); + return true; + case addedReaction::ID: + func(static_cast<addedReaction &>(obj)); + return true; + case addedReactions::ID: + func(static_cast<addedReactions &>(obj)); + return true; + case address::ID: + func(static_cast<address &>(obj)); + return true; + case animatedChatPhoto::ID: + func(static_cast<animatedChatPhoto &>(obj)); + return true; + case animatedEmoji::ID: + func(static_cast<animatedEmoji &>(obj)); + return true; + case animation::ID: + func(static_cast<animation &>(obj)); + return true; + case animations::ID: + func(static_cast<animations &>(obj)); + return true; + case attachmentMenuBot::ID: + func(static_cast<attachmentMenuBot &>(obj)); + return true; + case attachmentMenuBotColor::ID: + func(static_cast<attachmentMenuBotColor &>(obj)); + return true; + case audio::ID: + func(static_cast<audio &>(obj)); + return true; + case authenticationCodeInfo::ID: + func(static_cast<authenticationCodeInfo &>(obj)); + return true; + case authenticationCodeTypeTelegramMessage::ID: + func(static_cast<authenticationCodeTypeTelegramMessage &>(obj)); + return true; + case authenticationCodeTypeSms::ID: + func(static_cast<authenticationCodeTypeSms &>(obj)); + return true; + case authenticationCodeTypeCall::ID: + func(static_cast<authenticationCodeTypeCall &>(obj)); + return true; + case authenticationCodeTypeFlashCall::ID: + func(static_cast<authenticationCodeTypeFlashCall &>(obj)); + return true; + case authenticationCodeTypeMissedCall::ID: + func(static_cast<authenticationCodeTypeMissedCall &>(obj)); + return true; + case authorizationStateWaitTdlibParameters::ID: + func(static_cast<authorizationStateWaitTdlibParameters &>(obj)); + return true; + case authorizationStateWaitPhoneNumber::ID: + func(static_cast<authorizationStateWaitPhoneNumber &>(obj)); + return true; + case authorizationStateWaitEmailAddress::ID: + func(static_cast<authorizationStateWaitEmailAddress &>(obj)); + return true; + case authorizationStateWaitEmailCode::ID: + func(static_cast<authorizationStateWaitEmailCode &>(obj)); + return true; + case authorizationStateWaitCode::ID: + func(static_cast<authorizationStateWaitCode &>(obj)); + return true; + case authorizationStateWaitOtherDeviceConfirmation::ID: + func(static_cast<authorizationStateWaitOtherDeviceConfirmation &>(obj)); + return true; + case authorizationStateWaitRegistration::ID: + func(static_cast<authorizationStateWaitRegistration &>(obj)); + return true; + case authorizationStateWaitPassword::ID: + func(static_cast<authorizationStateWaitPassword &>(obj)); + return true; + case authorizationStateReady::ID: + func(static_cast<authorizationStateReady &>(obj)); + return true; + case authorizationStateLoggingOut::ID: + func(static_cast<authorizationStateLoggingOut &>(obj)); + return true; + case authorizationStateClosing::ID: + func(static_cast<authorizationStateClosing &>(obj)); + return true; + case authorizationStateClosed::ID: + func(static_cast<authorizationStateClosed &>(obj)); + return true; + case autoDownloadSettings::ID: + func(static_cast<autoDownloadSettings &>(obj)); + return true; + case autoDownloadSettingsPresets::ID: + func(static_cast<autoDownloadSettingsPresets &>(obj)); + return true; + case availableReaction::ID: + func(static_cast<availableReaction &>(obj)); + return true; + case availableReactions::ID: + func(static_cast<availableReactions &>(obj)); + return true; + case background::ID: + func(static_cast<background &>(obj)); + return true; + case backgroundFillSolid::ID: + func(static_cast<backgroundFillSolid &>(obj)); + return true; + case backgroundFillGradient::ID: + func(static_cast<backgroundFillGradient &>(obj)); + return true; + case backgroundFillFreeformGradient::ID: + func(static_cast<backgroundFillFreeformGradient &>(obj)); + return true; + case backgroundTypeWallpaper::ID: + func(static_cast<backgroundTypeWallpaper &>(obj)); + return true; + case backgroundTypePattern::ID: + func(static_cast<backgroundTypePattern &>(obj)); + return true; + case backgroundTypeFill::ID: + func(static_cast<backgroundTypeFill &>(obj)); + return true; + case backgrounds::ID: + func(static_cast<backgrounds &>(obj)); + return true; + case bankCardActionOpenUrl::ID: + func(static_cast<bankCardActionOpenUrl &>(obj)); + return true; + case bankCardInfo::ID: + func(static_cast<bankCardInfo &>(obj)); + return true; + case basicGroup::ID: + func(static_cast<basicGroup &>(obj)); + return true; + case basicGroupFullInfo::ID: + func(static_cast<basicGroupFullInfo &>(obj)); + return true; + case botCommand::ID: + func(static_cast<botCommand &>(obj)); + return true; + case botCommandScopeDefault::ID: + func(static_cast<botCommandScopeDefault &>(obj)); + return true; + case botCommandScopeAllPrivateChats::ID: + func(static_cast<botCommandScopeAllPrivateChats &>(obj)); + return true; + case botCommandScopeAllGroupChats::ID: + func(static_cast<botCommandScopeAllGroupChats &>(obj)); + return true; + case botCommandScopeAllChatAdministrators::ID: + func(static_cast<botCommandScopeAllChatAdministrators &>(obj)); + return true; + case botCommandScopeChat::ID: + func(static_cast<botCommandScopeChat &>(obj)); + return true; + case botCommandScopeChatAdministrators::ID: + func(static_cast<botCommandScopeChatAdministrators &>(obj)); + return true; + case botCommandScopeChatMember::ID: + func(static_cast<botCommandScopeChatMember &>(obj)); + return true; + case botCommands::ID: + func(static_cast<botCommands &>(obj)); + return true; + case botInfo::ID: + func(static_cast<botInfo &>(obj)); + return true; + case botMenuButton::ID: + func(static_cast<botMenuButton &>(obj)); + return true; + case call::ID: + func(static_cast<call &>(obj)); + return true; + case callDiscardReasonEmpty::ID: + func(static_cast<callDiscardReasonEmpty &>(obj)); + return true; + case callDiscardReasonMissed::ID: + func(static_cast<callDiscardReasonMissed &>(obj)); + return true; + case callDiscardReasonDeclined::ID: + func(static_cast<callDiscardReasonDeclined &>(obj)); + return true; + case callDiscardReasonDisconnected::ID: + func(static_cast<callDiscardReasonDisconnected &>(obj)); + return true; + case callDiscardReasonHungUp::ID: + func(static_cast<callDiscardReasonHungUp &>(obj)); + return true; + case callId::ID: + func(static_cast<callId &>(obj)); + return true; + case callProblemEcho::ID: + func(static_cast<callProblemEcho &>(obj)); + return true; + case callProblemNoise::ID: + func(static_cast<callProblemNoise &>(obj)); + return true; + case callProblemInterruptions::ID: + func(static_cast<callProblemInterruptions &>(obj)); + return true; + case callProblemDistortedSpeech::ID: + func(static_cast<callProblemDistortedSpeech &>(obj)); + return true; + case callProblemSilentLocal::ID: + func(static_cast<callProblemSilentLocal &>(obj)); + return true; + case callProblemSilentRemote::ID: + func(static_cast<callProblemSilentRemote &>(obj)); + return true; + case callProblemDropped::ID: + func(static_cast<callProblemDropped &>(obj)); + return true; + case callProblemDistortedVideo::ID: + func(static_cast<callProblemDistortedVideo &>(obj)); + return true; + case callProblemPixelatedVideo::ID: + func(static_cast<callProblemPixelatedVideo &>(obj)); + return true; + case callProtocol::ID: + func(static_cast<callProtocol &>(obj)); + return true; + case callServer::ID: + func(static_cast<callServer &>(obj)); + return true; + case callServerTypeTelegramReflector::ID: + func(static_cast<callServerTypeTelegramReflector &>(obj)); + return true; + case callServerTypeWebrtc::ID: + func(static_cast<callServerTypeWebrtc &>(obj)); + return true; + case callStatePending::ID: + func(static_cast<callStatePending &>(obj)); + return true; + case callStateExchangingKeys::ID: + func(static_cast<callStateExchangingKeys &>(obj)); + return true; + case callStateReady::ID: + func(static_cast<callStateReady &>(obj)); + return true; + case callStateHangingUp::ID: + func(static_cast<callStateHangingUp &>(obj)); + return true; + case callStateDiscarded::ID: + func(static_cast<callStateDiscarded &>(obj)); + return true; + case callStateError::ID: + func(static_cast<callStateError &>(obj)); + return true; + case callbackQueryAnswer::ID: + func(static_cast<callbackQueryAnswer &>(obj)); + return true; + case callbackQueryPayloadData::ID: + func(static_cast<callbackQueryPayloadData &>(obj)); + return true; + case callbackQueryPayloadDataWithPassword::ID: + func(static_cast<callbackQueryPayloadDataWithPassword &>(obj)); + return true; + case callbackQueryPayloadGame::ID: + func(static_cast<callbackQueryPayloadGame &>(obj)); + return true; + case canTransferOwnershipResultOk::ID: + func(static_cast<canTransferOwnershipResultOk &>(obj)); + return true; + case canTransferOwnershipResultPasswordNeeded::ID: + func(static_cast<canTransferOwnershipResultPasswordNeeded &>(obj)); + return true; + case canTransferOwnershipResultPasswordTooFresh::ID: + func(static_cast<canTransferOwnershipResultPasswordTooFresh &>(obj)); + return true; + case canTransferOwnershipResultSessionTooFresh::ID: + func(static_cast<canTransferOwnershipResultSessionTooFresh &>(obj)); + return true; + case chat::ID: + func(static_cast<chat &>(obj)); + return true; + case chatActionTyping::ID: + func(static_cast<chatActionTyping &>(obj)); + return true; + case chatActionRecordingVideo::ID: + func(static_cast<chatActionRecordingVideo &>(obj)); + return true; + case chatActionUploadingVideo::ID: + func(static_cast<chatActionUploadingVideo &>(obj)); + return true; + case chatActionRecordingVoiceNote::ID: + func(static_cast<chatActionRecordingVoiceNote &>(obj)); + return true; + case chatActionUploadingVoiceNote::ID: + func(static_cast<chatActionUploadingVoiceNote &>(obj)); + return true; + case chatActionUploadingPhoto::ID: + func(static_cast<chatActionUploadingPhoto &>(obj)); + return true; + case chatActionUploadingDocument::ID: + func(static_cast<chatActionUploadingDocument &>(obj)); + return true; + case chatActionChoosingSticker::ID: + func(static_cast<chatActionChoosingSticker &>(obj)); + return true; + case chatActionChoosingLocation::ID: + func(static_cast<chatActionChoosingLocation &>(obj)); + return true; + case chatActionChoosingContact::ID: + func(static_cast<chatActionChoosingContact &>(obj)); + return true; + case chatActionStartPlayingGame::ID: + func(static_cast<chatActionStartPlayingGame &>(obj)); + return true; + case chatActionRecordingVideoNote::ID: + func(static_cast<chatActionRecordingVideoNote &>(obj)); + return true; + case chatActionUploadingVideoNote::ID: + func(static_cast<chatActionUploadingVideoNote &>(obj)); + return true; + case chatActionWatchingAnimations::ID: + func(static_cast<chatActionWatchingAnimations &>(obj)); + return true; + case chatActionCancel::ID: + func(static_cast<chatActionCancel &>(obj)); + return true; + case chatActionBarReportSpam::ID: + func(static_cast<chatActionBarReportSpam &>(obj)); + return true; + case chatActionBarReportUnrelatedLocation::ID: + func(static_cast<chatActionBarReportUnrelatedLocation &>(obj)); + return true; + case chatActionBarInviteMembers::ID: + func(static_cast<chatActionBarInviteMembers &>(obj)); + return true; + case chatActionBarReportAddBlock::ID: + func(static_cast<chatActionBarReportAddBlock &>(obj)); + return true; + case chatActionBarAddContact::ID: + func(static_cast<chatActionBarAddContact &>(obj)); + return true; + case chatActionBarSharePhoneNumber::ID: + func(static_cast<chatActionBarSharePhoneNumber &>(obj)); + return true; + case chatActionBarJoinRequest::ID: + func(static_cast<chatActionBarJoinRequest &>(obj)); + return true; + case chatAdministrator::ID: + func(static_cast<chatAdministrator &>(obj)); + return true; + case chatAdministratorRights::ID: + func(static_cast<chatAdministratorRights &>(obj)); + return true; + case chatAdministrators::ID: + func(static_cast<chatAdministrators &>(obj)); + return true; + case chatAvailableReactionsAll::ID: + func(static_cast<chatAvailableReactionsAll &>(obj)); + return true; + case chatAvailableReactionsSome::ID: + func(static_cast<chatAvailableReactionsSome &>(obj)); + return true; + case chatEvent::ID: + func(static_cast<chatEvent &>(obj)); + return true; + case chatEventMessageEdited::ID: + func(static_cast<chatEventMessageEdited &>(obj)); + return true; + case chatEventMessageDeleted::ID: + func(static_cast<chatEventMessageDeleted &>(obj)); + return true; + case chatEventMessagePinned::ID: + func(static_cast<chatEventMessagePinned &>(obj)); + return true; + case chatEventMessageUnpinned::ID: + func(static_cast<chatEventMessageUnpinned &>(obj)); + return true; + case chatEventPollStopped::ID: + func(static_cast<chatEventPollStopped &>(obj)); + return true; + case chatEventMemberJoined::ID: + func(static_cast<chatEventMemberJoined &>(obj)); + return true; + case chatEventMemberJoinedByInviteLink::ID: + func(static_cast<chatEventMemberJoinedByInviteLink &>(obj)); + return true; + case chatEventMemberJoinedByRequest::ID: + func(static_cast<chatEventMemberJoinedByRequest &>(obj)); + return true; + case chatEventMemberInvited::ID: + func(static_cast<chatEventMemberInvited &>(obj)); + return true; + case chatEventMemberLeft::ID: + func(static_cast<chatEventMemberLeft &>(obj)); + return true; + case chatEventMemberPromoted::ID: + func(static_cast<chatEventMemberPromoted &>(obj)); + return true; + case chatEventMemberRestricted::ID: + func(static_cast<chatEventMemberRestricted &>(obj)); + return true; + case chatEventAvailableReactionsChanged::ID: + func(static_cast<chatEventAvailableReactionsChanged &>(obj)); + return true; + case chatEventDescriptionChanged::ID: + func(static_cast<chatEventDescriptionChanged &>(obj)); + return true; + case chatEventLinkedChatChanged::ID: + func(static_cast<chatEventLinkedChatChanged &>(obj)); + return true; + case chatEventLocationChanged::ID: + func(static_cast<chatEventLocationChanged &>(obj)); + return true; + case chatEventMessageTtlChanged::ID: + func(static_cast<chatEventMessageTtlChanged &>(obj)); + return true; + case chatEventPermissionsChanged::ID: + func(static_cast<chatEventPermissionsChanged &>(obj)); + return true; + case chatEventPhotoChanged::ID: + func(static_cast<chatEventPhotoChanged &>(obj)); + return true; + case chatEventSlowModeDelayChanged::ID: + func(static_cast<chatEventSlowModeDelayChanged &>(obj)); + return true; + case chatEventStickerSetChanged::ID: + func(static_cast<chatEventStickerSetChanged &>(obj)); + return true; + case chatEventTitleChanged::ID: + func(static_cast<chatEventTitleChanged &>(obj)); + return true; + case chatEventUsernameChanged::ID: + func(static_cast<chatEventUsernameChanged &>(obj)); + return true; + case chatEventActiveUsernamesChanged::ID: + func(static_cast<chatEventActiveUsernamesChanged &>(obj)); + return true; + case chatEventHasProtectedContentToggled::ID: + func(static_cast<chatEventHasProtectedContentToggled &>(obj)); + return true; + case chatEventInvitesToggled::ID: + func(static_cast<chatEventInvitesToggled &>(obj)); + return true; + case chatEventIsAllHistoryAvailableToggled::ID: + func(static_cast<chatEventIsAllHistoryAvailableToggled &>(obj)); + return true; + case chatEventSignMessagesToggled::ID: + func(static_cast<chatEventSignMessagesToggled &>(obj)); + return true; + case chatEventInviteLinkEdited::ID: + func(static_cast<chatEventInviteLinkEdited &>(obj)); + return true; + case chatEventInviteLinkRevoked::ID: + func(static_cast<chatEventInviteLinkRevoked &>(obj)); + return true; + case chatEventInviteLinkDeleted::ID: + func(static_cast<chatEventInviteLinkDeleted &>(obj)); + return true; + case chatEventVideoChatCreated::ID: + func(static_cast<chatEventVideoChatCreated &>(obj)); + return true; + case chatEventVideoChatEnded::ID: + func(static_cast<chatEventVideoChatEnded &>(obj)); + return true; + case chatEventVideoChatMuteNewParticipantsToggled::ID: + func(static_cast<chatEventVideoChatMuteNewParticipantsToggled &>(obj)); + return true; + case chatEventVideoChatParticipantIsMutedToggled::ID: + func(static_cast<chatEventVideoChatParticipantIsMutedToggled &>(obj)); + return true; + case chatEventVideoChatParticipantVolumeLevelChanged::ID: + func(static_cast<chatEventVideoChatParticipantVolumeLevelChanged &>(obj)); + return true; + case chatEventIsForumToggled::ID: + func(static_cast<chatEventIsForumToggled &>(obj)); + return true; + case chatEventForumTopicCreated::ID: + func(static_cast<chatEventForumTopicCreated &>(obj)); + return true; + case chatEventForumTopicEdited::ID: + func(static_cast<chatEventForumTopicEdited &>(obj)); + return true; + case chatEventForumTopicToggleIsClosed::ID: + func(static_cast<chatEventForumTopicToggleIsClosed &>(obj)); + return true; + case chatEventForumTopicDeleted::ID: + func(static_cast<chatEventForumTopicDeleted &>(obj)); + return true; + case chatEventForumTopicPinned::ID: + func(static_cast<chatEventForumTopicPinned &>(obj)); + return true; + case chatEventLogFilters::ID: + func(static_cast<chatEventLogFilters &>(obj)); + return true; + case chatEvents::ID: + func(static_cast<chatEvents &>(obj)); + return true; + case chatFilter::ID: + func(static_cast<chatFilter &>(obj)); + return true; + case chatFilterInfo::ID: + func(static_cast<chatFilterInfo &>(obj)); + return true; + case chatInviteLink::ID: + func(static_cast<chatInviteLink &>(obj)); + return true; + case chatInviteLinkCount::ID: + func(static_cast<chatInviteLinkCount &>(obj)); + return true; + case chatInviteLinkCounts::ID: + func(static_cast<chatInviteLinkCounts &>(obj)); + return true; + case chatInviteLinkInfo::ID: + func(static_cast<chatInviteLinkInfo &>(obj)); + return true; + case chatInviteLinkMember::ID: + func(static_cast<chatInviteLinkMember &>(obj)); + return true; + case chatInviteLinkMembers::ID: + func(static_cast<chatInviteLinkMembers &>(obj)); + return true; + case chatInviteLinks::ID: + func(static_cast<chatInviteLinks &>(obj)); + return true; + case chatJoinRequest::ID: + func(static_cast<chatJoinRequest &>(obj)); + return true; + case chatJoinRequests::ID: + func(static_cast<chatJoinRequests &>(obj)); + return true; + case chatJoinRequestsInfo::ID: + func(static_cast<chatJoinRequestsInfo &>(obj)); + return true; + case chatListMain::ID: + func(static_cast<chatListMain &>(obj)); + return true; + case chatListArchive::ID: + func(static_cast<chatListArchive &>(obj)); + return true; + case chatListFilter::ID: + func(static_cast<chatListFilter &>(obj)); + return true; + case chatLists::ID: + func(static_cast<chatLists &>(obj)); + return true; + case chatLocation::ID: + func(static_cast<chatLocation &>(obj)); + return true; + case chatMember::ID: + func(static_cast<chatMember &>(obj)); + return true; + case chatMemberStatusCreator::ID: + func(static_cast<chatMemberStatusCreator &>(obj)); + return true; + case chatMemberStatusAdministrator::ID: + func(static_cast<chatMemberStatusAdministrator &>(obj)); + return true; + case chatMemberStatusMember::ID: + func(static_cast<chatMemberStatusMember &>(obj)); + return true; + case chatMemberStatusRestricted::ID: + func(static_cast<chatMemberStatusRestricted &>(obj)); + return true; + case chatMemberStatusLeft::ID: + func(static_cast<chatMemberStatusLeft &>(obj)); + return true; + case chatMemberStatusBanned::ID: + func(static_cast<chatMemberStatusBanned &>(obj)); + return true; + case chatMembers::ID: + func(static_cast<chatMembers &>(obj)); + return true; + case chatMembersFilterContacts::ID: + func(static_cast<chatMembersFilterContacts &>(obj)); + return true; + case chatMembersFilterAdministrators::ID: + func(static_cast<chatMembersFilterAdministrators &>(obj)); + return true; + case chatMembersFilterMembers::ID: + func(static_cast<chatMembersFilterMembers &>(obj)); + return true; + case chatMembersFilterMention::ID: + func(static_cast<chatMembersFilterMention &>(obj)); + return true; + case chatMembersFilterRestricted::ID: + func(static_cast<chatMembersFilterRestricted &>(obj)); + return true; + case chatMembersFilterBanned::ID: + func(static_cast<chatMembersFilterBanned &>(obj)); + return true; + case chatMembersFilterBots::ID: + func(static_cast<chatMembersFilterBots &>(obj)); + return true; + case chatMessageSender::ID: + func(static_cast<chatMessageSender &>(obj)); + return true; + case chatMessageSenders::ID: + func(static_cast<chatMessageSenders &>(obj)); + return true; + case chatNearby::ID: + func(static_cast<chatNearby &>(obj)); + return true; + case chatNotificationSettings::ID: + func(static_cast<chatNotificationSettings &>(obj)); + return true; + case chatPermissions::ID: + func(static_cast<chatPermissions &>(obj)); + return true; + case chatPhoto::ID: + func(static_cast<chatPhoto &>(obj)); + return true; + case chatPhotoInfo::ID: + func(static_cast<chatPhotoInfo &>(obj)); + return true; + case chatPhotos::ID: + func(static_cast<chatPhotos &>(obj)); + return true; + case chatPosition::ID: + func(static_cast<chatPosition &>(obj)); + return true; + case chatReportReasonSpam::ID: + func(static_cast<chatReportReasonSpam &>(obj)); + return true; + case chatReportReasonViolence::ID: + func(static_cast<chatReportReasonViolence &>(obj)); + return true; + case chatReportReasonPornography::ID: + func(static_cast<chatReportReasonPornography &>(obj)); + return true; + case chatReportReasonChildAbuse::ID: + func(static_cast<chatReportReasonChildAbuse &>(obj)); + return true; + case chatReportReasonCopyright::ID: + func(static_cast<chatReportReasonCopyright &>(obj)); + return true; + case chatReportReasonUnrelatedLocation::ID: + func(static_cast<chatReportReasonUnrelatedLocation &>(obj)); + return true; + case chatReportReasonFake::ID: + func(static_cast<chatReportReasonFake &>(obj)); + return true; + case chatReportReasonIllegalDrugs::ID: + func(static_cast<chatReportReasonIllegalDrugs &>(obj)); + return true; + case chatReportReasonPersonalDetails::ID: + func(static_cast<chatReportReasonPersonalDetails &>(obj)); + return true; + case chatReportReasonCustom::ID: + func(static_cast<chatReportReasonCustom &>(obj)); + return true; + case chatSourceMtprotoProxy::ID: + func(static_cast<chatSourceMtprotoProxy &>(obj)); + return true; + case chatSourcePublicServiceAnnouncement::ID: + func(static_cast<chatSourcePublicServiceAnnouncement &>(obj)); + return true; + case chatStatisticsSupergroup::ID: + func(static_cast<chatStatisticsSupergroup &>(obj)); + return true; + case chatStatisticsChannel::ID: + func(static_cast<chatStatisticsChannel &>(obj)); + return true; + case chatStatisticsAdministratorActionsInfo::ID: + func(static_cast<chatStatisticsAdministratorActionsInfo &>(obj)); + return true; + case chatStatisticsInviterInfo::ID: + func(static_cast<chatStatisticsInviterInfo &>(obj)); + return true; + case chatStatisticsMessageInteractionInfo::ID: + func(static_cast<chatStatisticsMessageInteractionInfo &>(obj)); + return true; + case chatStatisticsMessageSenderInfo::ID: + func(static_cast<chatStatisticsMessageSenderInfo &>(obj)); + return true; + case chatTheme::ID: + func(static_cast<chatTheme &>(obj)); + return true; + case chatTypePrivate::ID: + func(static_cast<chatTypePrivate &>(obj)); + return true; + case chatTypeBasicGroup::ID: + func(static_cast<chatTypeBasicGroup &>(obj)); + return true; + case chatTypeSupergroup::ID: + func(static_cast<chatTypeSupergroup &>(obj)); + return true; + case chatTypeSecret::ID: + func(static_cast<chatTypeSecret &>(obj)); + return true; + case chats::ID: + func(static_cast<chats &>(obj)); + return true; + case chatsNearby::ID: + func(static_cast<chatsNearby &>(obj)); + return true; + case checkChatUsernameResultOk::ID: + func(static_cast<checkChatUsernameResultOk &>(obj)); + return true; + case checkChatUsernameResultUsernameInvalid::ID: + func(static_cast<checkChatUsernameResultUsernameInvalid &>(obj)); + return true; + case checkChatUsernameResultUsernameOccupied::ID: + func(static_cast<checkChatUsernameResultUsernameOccupied &>(obj)); + return true; + case checkChatUsernameResultPublicChatsTooMuch::ID: + func(static_cast<checkChatUsernameResultPublicChatsTooMuch &>(obj)); + return true; + case checkChatUsernameResultPublicGroupsUnavailable::ID: + func(static_cast<checkChatUsernameResultPublicGroupsUnavailable &>(obj)); + return true; + case checkStickerSetNameResultOk::ID: + func(static_cast<checkStickerSetNameResultOk &>(obj)); + return true; + case checkStickerSetNameResultNameInvalid::ID: + func(static_cast<checkStickerSetNameResultNameInvalid &>(obj)); + return true; + case checkStickerSetNameResultNameOccupied::ID: + func(static_cast<checkStickerSetNameResultNameOccupied &>(obj)); + return true; + case closedVectorPath::ID: + func(static_cast<closedVectorPath &>(obj)); + return true; + case connectedWebsite::ID: + func(static_cast<connectedWebsite &>(obj)); + return true; + case connectedWebsites::ID: + func(static_cast<connectedWebsites &>(obj)); + return true; + case connectionStateWaitingForNetwork::ID: + func(static_cast<connectionStateWaitingForNetwork &>(obj)); + return true; + case connectionStateConnectingToProxy::ID: + func(static_cast<connectionStateConnectingToProxy &>(obj)); + return true; + case connectionStateConnecting::ID: + func(static_cast<connectionStateConnecting &>(obj)); + return true; + case connectionStateUpdating::ID: + func(static_cast<connectionStateUpdating &>(obj)); + return true; + case connectionStateReady::ID: + func(static_cast<connectionStateReady &>(obj)); + return true; + case contact::ID: + func(static_cast<contact &>(obj)); + return true; + case count::ID: + func(static_cast<count &>(obj)); + return true; + case countries::ID: + func(static_cast<countries &>(obj)); + return true; + case countryInfo::ID: + func(static_cast<countryInfo &>(obj)); + return true; + case customRequestResult::ID: + func(static_cast<customRequestResult &>(obj)); + return true; + case databaseStatistics::ID: + func(static_cast<databaseStatistics &>(obj)); + return true; + case date::ID: + func(static_cast<date &>(obj)); + return true; + case dateRange::ID: + func(static_cast<dateRange &>(obj)); + return true; + case datedFile::ID: + func(static_cast<datedFile &>(obj)); + return true; + case deepLinkInfo::ID: + func(static_cast<deepLinkInfo &>(obj)); + return true; + case deviceTokenFirebaseCloudMessaging::ID: + func(static_cast<deviceTokenFirebaseCloudMessaging &>(obj)); + return true; + case deviceTokenApplePush::ID: + func(static_cast<deviceTokenApplePush &>(obj)); + return true; + case deviceTokenApplePushVoIP::ID: + func(static_cast<deviceTokenApplePushVoIP &>(obj)); + return true; + case deviceTokenWindowsPush::ID: + func(static_cast<deviceTokenWindowsPush &>(obj)); + return true; + case deviceTokenMicrosoftPush::ID: + func(static_cast<deviceTokenMicrosoftPush &>(obj)); + return true; + case deviceTokenMicrosoftPushVoIP::ID: + func(static_cast<deviceTokenMicrosoftPushVoIP &>(obj)); + return true; + case deviceTokenWebPush::ID: + func(static_cast<deviceTokenWebPush &>(obj)); + return true; + case deviceTokenSimplePush::ID: + func(static_cast<deviceTokenSimplePush &>(obj)); + return true; + case deviceTokenUbuntuPush::ID: + func(static_cast<deviceTokenUbuntuPush &>(obj)); + return true; + case deviceTokenBlackBerryPush::ID: + func(static_cast<deviceTokenBlackBerryPush &>(obj)); + return true; + case deviceTokenTizenPush::ID: + func(static_cast<deviceTokenTizenPush &>(obj)); + return true; + case diceStickersRegular::ID: + func(static_cast<diceStickersRegular &>(obj)); + return true; + case diceStickersSlotMachine::ID: + func(static_cast<diceStickersSlotMachine &>(obj)); + return true; + case document::ID: + func(static_cast<document &>(obj)); + return true; + case downloadedFileCounts::ID: + func(static_cast<downloadedFileCounts &>(obj)); + return true; + case draftMessage::ID: + func(static_cast<draftMessage &>(obj)); + return true; + case emailAddressAuthenticationCode::ID: + func(static_cast<emailAddressAuthenticationCode &>(obj)); + return true; + case emailAddressAuthenticationAppleId::ID: + func(static_cast<emailAddressAuthenticationAppleId &>(obj)); + return true; + case emailAddressAuthenticationGoogleId::ID: + func(static_cast<emailAddressAuthenticationGoogleId &>(obj)); + return true; + case emailAddressAuthenticationCodeInfo::ID: + func(static_cast<emailAddressAuthenticationCodeInfo &>(obj)); + return true; + case emojiReaction::ID: + func(static_cast<emojiReaction &>(obj)); + return true; + case emojiStatus::ID: + func(static_cast<emojiStatus &>(obj)); + return true; + case emojiStatuses::ID: + func(static_cast<emojiStatuses &>(obj)); + return true; + case emojis::ID: + func(static_cast<emojis &>(obj)); + return true; + case encryptedCredentials::ID: + func(static_cast<encryptedCredentials &>(obj)); + return true; + case encryptedPassportElement::ID: + func(static_cast<encryptedPassportElement &>(obj)); + return true; + case error::ID: + func(static_cast<error &>(obj)); + return true; + case file::ID: + func(static_cast<file &>(obj)); + return true; + case fileDownload::ID: + func(static_cast<fileDownload &>(obj)); + return true; + case fileDownloadedPrefixSize::ID: + func(static_cast<fileDownloadedPrefixSize &>(obj)); + return true; + case filePart::ID: + func(static_cast<filePart &>(obj)); + return true; + case fileTypeNone::ID: + func(static_cast<fileTypeNone &>(obj)); + return true; + case fileTypeAnimation::ID: + func(static_cast<fileTypeAnimation &>(obj)); + return true; + case fileTypeAudio::ID: + func(static_cast<fileTypeAudio &>(obj)); + return true; + case fileTypeDocument::ID: + func(static_cast<fileTypeDocument &>(obj)); + return true; + case fileTypeNotificationSound::ID: + func(static_cast<fileTypeNotificationSound &>(obj)); + return true; + case fileTypePhoto::ID: + func(static_cast<fileTypePhoto &>(obj)); + return true; + case fileTypeProfilePhoto::ID: + func(static_cast<fileTypeProfilePhoto &>(obj)); + return true; + case fileTypeSecret::ID: + func(static_cast<fileTypeSecret &>(obj)); + return true; + case fileTypeSecretThumbnail::ID: + func(static_cast<fileTypeSecretThumbnail &>(obj)); + return true; + case fileTypeSecure::ID: + func(static_cast<fileTypeSecure &>(obj)); + return true; + case fileTypeSticker::ID: + func(static_cast<fileTypeSticker &>(obj)); + return true; + case fileTypeThumbnail::ID: + func(static_cast<fileTypeThumbnail &>(obj)); + return true; + case fileTypeUnknown::ID: + func(static_cast<fileTypeUnknown &>(obj)); + return true; + case fileTypeVideo::ID: + func(static_cast<fileTypeVideo &>(obj)); + return true; + case fileTypeVideoNote::ID: + func(static_cast<fileTypeVideoNote &>(obj)); + return true; + case fileTypeVoiceNote::ID: + func(static_cast<fileTypeVoiceNote &>(obj)); + return true; + case fileTypeWallpaper::ID: + func(static_cast<fileTypeWallpaper &>(obj)); + return true; + case formattedText::ID: + func(static_cast<formattedText &>(obj)); + return true; + case forumTopic::ID: + func(static_cast<forumTopic &>(obj)); + return true; + case forumTopicIcon::ID: + func(static_cast<forumTopicIcon &>(obj)); + return true; + case forumTopicInfo::ID: + func(static_cast<forumTopicInfo &>(obj)); + return true; + case foundFileDownloads::ID: + func(static_cast<foundFileDownloads &>(obj)); + return true; + case foundMessages::ID: + func(static_cast<foundMessages &>(obj)); + return true; + case game::ID: + func(static_cast<game &>(obj)); + return true; + case gameHighScore::ID: + func(static_cast<gameHighScore &>(obj)); + return true; + case gameHighScores::ID: + func(static_cast<gameHighScores &>(obj)); + return true; + case groupCall::ID: + func(static_cast<groupCall &>(obj)); + return true; + case groupCallId::ID: + func(static_cast<groupCallId &>(obj)); + return true; + case groupCallParticipant::ID: + func(static_cast<groupCallParticipant &>(obj)); + return true; + case groupCallParticipantVideoInfo::ID: + func(static_cast<groupCallParticipantVideoInfo &>(obj)); + return true; + case groupCallRecentSpeaker::ID: + func(static_cast<groupCallRecentSpeaker &>(obj)); + return true; + case groupCallStream::ID: + func(static_cast<groupCallStream &>(obj)); + return true; + case groupCallStreams::ID: + func(static_cast<groupCallStreams &>(obj)); + return true; + case groupCallVideoQualityThumbnail::ID: + func(static_cast<groupCallVideoQualityThumbnail &>(obj)); + return true; + case groupCallVideoQualityMedium::ID: + func(static_cast<groupCallVideoQualityMedium &>(obj)); + return true; + case groupCallVideoQualityFull::ID: + func(static_cast<groupCallVideoQualityFull &>(obj)); + return true; + case groupCallVideoSourceGroup::ID: + func(static_cast<groupCallVideoSourceGroup &>(obj)); + return true; + case hashtags::ID: + func(static_cast<hashtags &>(obj)); + return true; + case httpUrl::ID: + func(static_cast<httpUrl &>(obj)); + return true; + case identityDocument::ID: + func(static_cast<identityDocument &>(obj)); + return true; + case importedContacts::ID: + func(static_cast<importedContacts &>(obj)); + return true; + case inlineKeyboardButton::ID: + func(static_cast<inlineKeyboardButton &>(obj)); + return true; + case inlineKeyboardButtonTypeUrl::ID: + func(static_cast<inlineKeyboardButtonTypeUrl &>(obj)); + return true; + case inlineKeyboardButtonTypeLoginUrl::ID: + func(static_cast<inlineKeyboardButtonTypeLoginUrl &>(obj)); + return true; + case inlineKeyboardButtonTypeWebApp::ID: + func(static_cast<inlineKeyboardButtonTypeWebApp &>(obj)); + return true; + case inlineKeyboardButtonTypeCallback::ID: + func(static_cast<inlineKeyboardButtonTypeCallback &>(obj)); + return true; + case inlineKeyboardButtonTypeCallbackWithPassword::ID: + func(static_cast<inlineKeyboardButtonTypeCallbackWithPassword &>(obj)); + return true; + case inlineKeyboardButtonTypeCallbackGame::ID: + func(static_cast<inlineKeyboardButtonTypeCallbackGame &>(obj)); + return true; + case inlineKeyboardButtonTypeSwitchInline::ID: + func(static_cast<inlineKeyboardButtonTypeSwitchInline &>(obj)); + return true; + case inlineKeyboardButtonTypeBuy::ID: + func(static_cast<inlineKeyboardButtonTypeBuy &>(obj)); + return true; + case inlineKeyboardButtonTypeUser::ID: + func(static_cast<inlineKeyboardButtonTypeUser &>(obj)); + return true; + case inlineQueryResultArticle::ID: + func(static_cast<inlineQueryResultArticle &>(obj)); + return true; + case inlineQueryResultContact::ID: + func(static_cast<inlineQueryResultContact &>(obj)); + return true; + case inlineQueryResultLocation::ID: + func(static_cast<inlineQueryResultLocation &>(obj)); + return true; + case inlineQueryResultVenue::ID: + func(static_cast<inlineQueryResultVenue &>(obj)); + return true; + case inlineQueryResultGame::ID: + func(static_cast<inlineQueryResultGame &>(obj)); + return true; + case inlineQueryResultAnimation::ID: + func(static_cast<inlineQueryResultAnimation &>(obj)); + return true; + case inlineQueryResultAudio::ID: + func(static_cast<inlineQueryResultAudio &>(obj)); + return true; + case inlineQueryResultDocument::ID: + func(static_cast<inlineQueryResultDocument &>(obj)); + return true; + case inlineQueryResultPhoto::ID: + func(static_cast<inlineQueryResultPhoto &>(obj)); + return true; + case inlineQueryResultSticker::ID: + func(static_cast<inlineQueryResultSticker &>(obj)); + return true; + case inlineQueryResultVideo::ID: + func(static_cast<inlineQueryResultVideo &>(obj)); + return true; + case inlineQueryResultVoiceNote::ID: + func(static_cast<inlineQueryResultVoiceNote &>(obj)); + return true; + case inlineQueryResults::ID: + func(static_cast<inlineQueryResults &>(obj)); + return true; + case inputBackgroundLocal::ID: + func(static_cast<inputBackgroundLocal &>(obj)); + return true; + case inputBackgroundRemote::ID: + func(static_cast<inputBackgroundRemote &>(obj)); + return true; + case inputChatPhotoPrevious::ID: + func(static_cast<inputChatPhotoPrevious &>(obj)); + return true; + case inputChatPhotoStatic::ID: + func(static_cast<inputChatPhotoStatic &>(obj)); + return true; + case inputChatPhotoAnimation::ID: + func(static_cast<inputChatPhotoAnimation &>(obj)); + return true; + case inputCredentialsSaved::ID: + func(static_cast<inputCredentialsSaved &>(obj)); + return true; + case inputCredentialsNew::ID: + func(static_cast<inputCredentialsNew &>(obj)); + return true; + case inputCredentialsApplePay::ID: + func(static_cast<inputCredentialsApplePay &>(obj)); + return true; + case inputCredentialsGooglePay::ID: + func(static_cast<inputCredentialsGooglePay &>(obj)); + return true; + case inputFileId::ID: + func(static_cast<inputFileId &>(obj)); + return true; + case inputFileRemote::ID: + func(static_cast<inputFileRemote &>(obj)); + return true; + case inputFileLocal::ID: + func(static_cast<inputFileLocal &>(obj)); + return true; + case inputFileGenerated::ID: + func(static_cast<inputFileGenerated &>(obj)); + return true; + case inputIdentityDocument::ID: + func(static_cast<inputIdentityDocument &>(obj)); + return true; + case inputInlineQueryResultAnimation::ID: + func(static_cast<inputInlineQueryResultAnimation &>(obj)); + return true; + case inputInlineQueryResultArticle::ID: + func(static_cast<inputInlineQueryResultArticle &>(obj)); + return true; + case inputInlineQueryResultAudio::ID: + func(static_cast<inputInlineQueryResultAudio &>(obj)); + return true; + case inputInlineQueryResultContact::ID: + func(static_cast<inputInlineQueryResultContact &>(obj)); + return true; + case inputInlineQueryResultDocument::ID: + func(static_cast<inputInlineQueryResultDocument &>(obj)); + return true; + case inputInlineQueryResultGame::ID: + func(static_cast<inputInlineQueryResultGame &>(obj)); + return true; + case inputInlineQueryResultLocation::ID: + func(static_cast<inputInlineQueryResultLocation &>(obj)); + return true; + case inputInlineQueryResultPhoto::ID: + func(static_cast<inputInlineQueryResultPhoto &>(obj)); + return true; + case inputInlineQueryResultSticker::ID: + func(static_cast<inputInlineQueryResultSticker &>(obj)); + return true; + case inputInlineQueryResultVenue::ID: + func(static_cast<inputInlineQueryResultVenue &>(obj)); + return true; + case inputInlineQueryResultVideo::ID: + func(static_cast<inputInlineQueryResultVideo &>(obj)); + return true; + case inputInlineQueryResultVoiceNote::ID: + func(static_cast<inputInlineQueryResultVoiceNote &>(obj)); + return true; + case inputInvoiceMessage::ID: + func(static_cast<inputInvoiceMessage &>(obj)); + return true; + case inputInvoiceName::ID: + func(static_cast<inputInvoiceName &>(obj)); + return true; + case inputMessageText::ID: + func(static_cast<inputMessageText &>(obj)); + return true; + case inputMessageAnimation::ID: + func(static_cast<inputMessageAnimation &>(obj)); + return true; + case inputMessageAudio::ID: + func(static_cast<inputMessageAudio &>(obj)); + return true; + case inputMessageDocument::ID: + func(static_cast<inputMessageDocument &>(obj)); + return true; + case inputMessagePhoto::ID: + func(static_cast<inputMessagePhoto &>(obj)); + return true; + case inputMessageSticker::ID: + func(static_cast<inputMessageSticker &>(obj)); + return true; + case inputMessageVideo::ID: + func(static_cast<inputMessageVideo &>(obj)); + return true; + case inputMessageVideoNote::ID: + func(static_cast<inputMessageVideoNote &>(obj)); + return true; + case inputMessageVoiceNote::ID: + func(static_cast<inputMessageVoiceNote &>(obj)); + return true; + case inputMessageLocation::ID: + func(static_cast<inputMessageLocation &>(obj)); + return true; + case inputMessageVenue::ID: + func(static_cast<inputMessageVenue &>(obj)); + return true; + case inputMessageContact::ID: + func(static_cast<inputMessageContact &>(obj)); + return true; + case inputMessageDice::ID: + func(static_cast<inputMessageDice &>(obj)); + return true; + case inputMessageGame::ID: + func(static_cast<inputMessageGame &>(obj)); + return true; + case inputMessageInvoice::ID: + func(static_cast<inputMessageInvoice &>(obj)); + return true; + case inputMessagePoll::ID: + func(static_cast<inputMessagePoll &>(obj)); + return true; + case inputMessageForwarded::ID: + func(static_cast<inputMessageForwarded &>(obj)); + return true; + case inputPassportElementPersonalDetails::ID: + func(static_cast<inputPassportElementPersonalDetails &>(obj)); + return true; + case inputPassportElementPassport::ID: + func(static_cast<inputPassportElementPassport &>(obj)); + return true; + case inputPassportElementDriverLicense::ID: + func(static_cast<inputPassportElementDriverLicense &>(obj)); + return true; + case inputPassportElementIdentityCard::ID: + func(static_cast<inputPassportElementIdentityCard &>(obj)); + return true; + case inputPassportElementInternalPassport::ID: + func(static_cast<inputPassportElementInternalPassport &>(obj)); + return true; + case inputPassportElementAddress::ID: + func(static_cast<inputPassportElementAddress &>(obj)); + return true; + case inputPassportElementUtilityBill::ID: + func(static_cast<inputPassportElementUtilityBill &>(obj)); + return true; + case inputPassportElementBankStatement::ID: + func(static_cast<inputPassportElementBankStatement &>(obj)); + return true; + case inputPassportElementRentalAgreement::ID: + func(static_cast<inputPassportElementRentalAgreement &>(obj)); + return true; + case inputPassportElementPassportRegistration::ID: + func(static_cast<inputPassportElementPassportRegistration &>(obj)); + return true; + case inputPassportElementTemporaryRegistration::ID: + func(static_cast<inputPassportElementTemporaryRegistration &>(obj)); + return true; + case inputPassportElementPhoneNumber::ID: + func(static_cast<inputPassportElementPhoneNumber &>(obj)); + return true; + case inputPassportElementEmailAddress::ID: + func(static_cast<inputPassportElementEmailAddress &>(obj)); + return true; + case inputPassportElementError::ID: + func(static_cast<inputPassportElementError &>(obj)); + return true; + case inputPassportElementErrorSourceUnspecified::ID: + func(static_cast<inputPassportElementErrorSourceUnspecified &>(obj)); + return true; + case inputPassportElementErrorSourceDataField::ID: + func(static_cast<inputPassportElementErrorSourceDataField &>(obj)); + return true; + case inputPassportElementErrorSourceFrontSide::ID: + func(static_cast<inputPassportElementErrorSourceFrontSide &>(obj)); + return true; + case inputPassportElementErrorSourceReverseSide::ID: + func(static_cast<inputPassportElementErrorSourceReverseSide &>(obj)); + return true; + case inputPassportElementErrorSourceSelfie::ID: + func(static_cast<inputPassportElementErrorSourceSelfie &>(obj)); + return true; + case inputPassportElementErrorSourceTranslationFile::ID: + func(static_cast<inputPassportElementErrorSourceTranslationFile &>(obj)); + return true; + case inputPassportElementErrorSourceTranslationFiles::ID: + func(static_cast<inputPassportElementErrorSourceTranslationFiles &>(obj)); + return true; + case inputPassportElementErrorSourceFile::ID: + func(static_cast<inputPassportElementErrorSourceFile &>(obj)); + return true; + case inputPassportElementErrorSourceFiles::ID: + func(static_cast<inputPassportElementErrorSourceFiles &>(obj)); + return true; + case inputPersonalDocument::ID: + func(static_cast<inputPersonalDocument &>(obj)); + return true; + case inputSticker::ID: + func(static_cast<inputSticker &>(obj)); + return true; + case inputThumbnail::ID: + func(static_cast<inputThumbnail &>(obj)); + return true; + case internalLinkTypeActiveSessions::ID: + func(static_cast<internalLinkTypeActiveSessions &>(obj)); + return true; + case internalLinkTypeAttachmentMenuBot::ID: + func(static_cast<internalLinkTypeAttachmentMenuBot &>(obj)); + return true; + case internalLinkTypeAuthenticationCode::ID: + func(static_cast<internalLinkTypeAuthenticationCode &>(obj)); + return true; + case internalLinkTypeBackground::ID: + func(static_cast<internalLinkTypeBackground &>(obj)); + return true; + case internalLinkTypeBotStart::ID: + func(static_cast<internalLinkTypeBotStart &>(obj)); + return true; + case internalLinkTypeBotStartInGroup::ID: + func(static_cast<internalLinkTypeBotStartInGroup &>(obj)); + return true; + case internalLinkTypeBotAddToChannel::ID: + func(static_cast<internalLinkTypeBotAddToChannel &>(obj)); + return true; + case internalLinkTypeChangePhoneNumber::ID: + func(static_cast<internalLinkTypeChangePhoneNumber &>(obj)); + return true; + case internalLinkTypeChatInvite::ID: + func(static_cast<internalLinkTypeChatInvite &>(obj)); + return true; + case internalLinkTypeFilterSettings::ID: + func(static_cast<internalLinkTypeFilterSettings &>(obj)); + return true; + case internalLinkTypeGame::ID: + func(static_cast<internalLinkTypeGame &>(obj)); + return true; + case internalLinkTypeInstantView::ID: + func(static_cast<internalLinkTypeInstantView &>(obj)); + return true; + case internalLinkTypeInvoice::ID: + func(static_cast<internalLinkTypeInvoice &>(obj)); + return true; + case internalLinkTypeLanguagePack::ID: + func(static_cast<internalLinkTypeLanguagePack &>(obj)); + return true; + case internalLinkTypeLanguageSettings::ID: + func(static_cast<internalLinkTypeLanguageSettings &>(obj)); + return true; + case internalLinkTypeMessage::ID: + func(static_cast<internalLinkTypeMessage &>(obj)); + return true; + case internalLinkTypeMessageDraft::ID: + func(static_cast<internalLinkTypeMessageDraft &>(obj)); + return true; + case internalLinkTypePassportDataRequest::ID: + func(static_cast<internalLinkTypePassportDataRequest &>(obj)); + return true; + case internalLinkTypePhoneNumberConfirmation::ID: + func(static_cast<internalLinkTypePhoneNumberConfirmation &>(obj)); + return true; + case internalLinkTypePremiumFeatures::ID: + func(static_cast<internalLinkTypePremiumFeatures &>(obj)); + return true; + case internalLinkTypePrivacyAndSecuritySettings::ID: + func(static_cast<internalLinkTypePrivacyAndSecuritySettings &>(obj)); + return true; + case internalLinkTypeProxy::ID: + func(static_cast<internalLinkTypeProxy &>(obj)); + return true; + case internalLinkTypePublicChat::ID: + func(static_cast<internalLinkTypePublicChat &>(obj)); + return true; + case internalLinkTypeQrCodeAuthentication::ID: + func(static_cast<internalLinkTypeQrCodeAuthentication &>(obj)); + return true; + case internalLinkTypeRestorePurchases::ID: + func(static_cast<internalLinkTypeRestorePurchases &>(obj)); + return true; + case internalLinkTypeSettings::ID: + func(static_cast<internalLinkTypeSettings &>(obj)); + return true; + case internalLinkTypeStickerSet::ID: + func(static_cast<internalLinkTypeStickerSet &>(obj)); + return true; + case internalLinkTypeTheme::ID: + func(static_cast<internalLinkTypeTheme &>(obj)); + return true; + case internalLinkTypeThemeSettings::ID: + func(static_cast<internalLinkTypeThemeSettings &>(obj)); + return true; + case internalLinkTypeUnknownDeepLink::ID: + func(static_cast<internalLinkTypeUnknownDeepLink &>(obj)); + return true; + case internalLinkTypeUnsupportedProxy::ID: + func(static_cast<internalLinkTypeUnsupportedProxy &>(obj)); + return true; + case internalLinkTypeUserPhoneNumber::ID: + func(static_cast<internalLinkTypeUserPhoneNumber &>(obj)); + return true; + case internalLinkTypeVideoChat::ID: + func(static_cast<internalLinkTypeVideoChat &>(obj)); + return true; + case invoice::ID: + func(static_cast<invoice &>(obj)); + return true; + case jsonObjectMember::ID: + func(static_cast<jsonObjectMember &>(obj)); + return true; + case jsonValueNull::ID: + func(static_cast<jsonValueNull &>(obj)); + return true; + case jsonValueBoolean::ID: + func(static_cast<jsonValueBoolean &>(obj)); + return true; + case jsonValueNumber::ID: + func(static_cast<jsonValueNumber &>(obj)); + return true; + case jsonValueString::ID: + func(static_cast<jsonValueString &>(obj)); + return true; + case jsonValueArray::ID: + func(static_cast<jsonValueArray &>(obj)); + return true; + case jsonValueObject::ID: + func(static_cast<jsonValueObject &>(obj)); + return true; + case keyboardButton::ID: + func(static_cast<keyboardButton &>(obj)); + return true; + case keyboardButtonTypeText::ID: + func(static_cast<keyboardButtonTypeText &>(obj)); + return true; + case keyboardButtonTypeRequestPhoneNumber::ID: + func(static_cast<keyboardButtonTypeRequestPhoneNumber &>(obj)); + return true; + case keyboardButtonTypeRequestLocation::ID: + func(static_cast<keyboardButtonTypeRequestLocation &>(obj)); + return true; + case keyboardButtonTypeRequestPoll::ID: + func(static_cast<keyboardButtonTypeRequestPoll &>(obj)); + return true; + case keyboardButtonTypeWebApp::ID: + func(static_cast<keyboardButtonTypeWebApp &>(obj)); + return true; + case labeledPricePart::ID: + func(static_cast<labeledPricePart &>(obj)); + return true; + case languagePackInfo::ID: + func(static_cast<languagePackInfo &>(obj)); + return true; + case languagePackString::ID: + func(static_cast<languagePackString &>(obj)); + return true; + case languagePackStringValueOrdinary::ID: + func(static_cast<languagePackStringValueOrdinary &>(obj)); + return true; + case languagePackStringValuePluralized::ID: + func(static_cast<languagePackStringValuePluralized &>(obj)); + return true; + case languagePackStringValueDeleted::ID: + func(static_cast<languagePackStringValueDeleted &>(obj)); + return true; + case languagePackStrings::ID: + func(static_cast<languagePackStrings &>(obj)); + return true; + case localFile::ID: + func(static_cast<localFile &>(obj)); + return true; + case localizationTargetInfo::ID: + func(static_cast<localizationTargetInfo &>(obj)); + return true; + case location::ID: + func(static_cast<location &>(obj)); + return true; + case logStreamDefault::ID: + func(static_cast<logStreamDefault &>(obj)); + return true; + case logStreamFile::ID: + func(static_cast<logStreamFile &>(obj)); + return true; + case logStreamEmpty::ID: + func(static_cast<logStreamEmpty &>(obj)); + return true; + case logTags::ID: + func(static_cast<logTags &>(obj)); + return true; + case logVerbosityLevel::ID: + func(static_cast<logVerbosityLevel &>(obj)); + return true; + case loginUrlInfoOpen::ID: + func(static_cast<loginUrlInfoOpen &>(obj)); + return true; + case loginUrlInfoRequestConfirmation::ID: + func(static_cast<loginUrlInfoRequestConfirmation &>(obj)); + return true; + case maskPointForehead::ID: + func(static_cast<maskPointForehead &>(obj)); + return true; + case maskPointEyes::ID: + func(static_cast<maskPointEyes &>(obj)); + return true; + case maskPointMouth::ID: + func(static_cast<maskPointMouth &>(obj)); + return true; + case maskPointChin::ID: + func(static_cast<maskPointChin &>(obj)); + return true; + case maskPosition::ID: + func(static_cast<maskPosition &>(obj)); + return true; + case message::ID: + func(static_cast<message &>(obj)); + return true; + case messageCalendar::ID: + func(static_cast<messageCalendar &>(obj)); + return true; + case messageCalendarDay::ID: + func(static_cast<messageCalendarDay &>(obj)); + return true; + case messageText::ID: + func(static_cast<messageText &>(obj)); + return true; + case messageAnimation::ID: + func(static_cast<messageAnimation &>(obj)); + return true; + case messageAudio::ID: + func(static_cast<messageAudio &>(obj)); + return true; + case messageDocument::ID: + func(static_cast<messageDocument &>(obj)); + return true; + case messagePhoto::ID: + func(static_cast<messagePhoto &>(obj)); + return true; + case messageExpiredPhoto::ID: + func(static_cast<messageExpiredPhoto &>(obj)); + return true; + case messageSticker::ID: + func(static_cast<messageSticker &>(obj)); + return true; + case messageVideo::ID: + func(static_cast<messageVideo &>(obj)); + return true; + case messageExpiredVideo::ID: + func(static_cast<messageExpiredVideo &>(obj)); + return true; + case messageVideoNote::ID: + func(static_cast<messageVideoNote &>(obj)); + return true; + case messageVoiceNote::ID: + func(static_cast<messageVoiceNote &>(obj)); + return true; + case messageLocation::ID: + func(static_cast<messageLocation &>(obj)); + return true; + case messageVenue::ID: + func(static_cast<messageVenue &>(obj)); + return true; + case messageContact::ID: + func(static_cast<messageContact &>(obj)); + return true; + case messageAnimatedEmoji::ID: + func(static_cast<messageAnimatedEmoji &>(obj)); + return true; + case messageDice::ID: + func(static_cast<messageDice &>(obj)); + return true; + case messageGame::ID: + func(static_cast<messageGame &>(obj)); + return true; + case messagePoll::ID: + func(static_cast<messagePoll &>(obj)); + return true; + case messageInvoice::ID: + func(static_cast<messageInvoice &>(obj)); + return true; + case messageCall::ID: + func(static_cast<messageCall &>(obj)); + return true; + case messageVideoChatScheduled::ID: + func(static_cast<messageVideoChatScheduled &>(obj)); + return true; + case messageVideoChatStarted::ID: + func(static_cast<messageVideoChatStarted &>(obj)); + return true; + case messageVideoChatEnded::ID: + func(static_cast<messageVideoChatEnded &>(obj)); + return true; + case messageInviteVideoChatParticipants::ID: + func(static_cast<messageInviteVideoChatParticipants &>(obj)); + return true; + case messageBasicGroupChatCreate::ID: + func(static_cast<messageBasicGroupChatCreate &>(obj)); + return true; + case messageSupergroupChatCreate::ID: + func(static_cast<messageSupergroupChatCreate &>(obj)); + return true; + case messageChatChangeTitle::ID: + func(static_cast<messageChatChangeTitle &>(obj)); + return true; + case messageChatChangePhoto::ID: + func(static_cast<messageChatChangePhoto &>(obj)); + return true; + case messageChatDeletePhoto::ID: + func(static_cast<messageChatDeletePhoto &>(obj)); + return true; + case messageChatAddMembers::ID: + func(static_cast<messageChatAddMembers &>(obj)); + return true; + case messageChatJoinByLink::ID: + func(static_cast<messageChatJoinByLink &>(obj)); + return true; + case messageChatJoinByRequest::ID: + func(static_cast<messageChatJoinByRequest &>(obj)); + return true; + case messageChatDeleteMember::ID: + func(static_cast<messageChatDeleteMember &>(obj)); + return true; + case messageChatUpgradeTo::ID: + func(static_cast<messageChatUpgradeTo &>(obj)); + return true; + case messageChatUpgradeFrom::ID: + func(static_cast<messageChatUpgradeFrom &>(obj)); + return true; + case messagePinMessage::ID: + func(static_cast<messagePinMessage &>(obj)); + return true; + case messageScreenshotTaken::ID: + func(static_cast<messageScreenshotTaken &>(obj)); + return true; + case messageChatSetTheme::ID: + func(static_cast<messageChatSetTheme &>(obj)); + return true; + case messageChatSetTtl::ID: + func(static_cast<messageChatSetTtl &>(obj)); + return true; + case messageForumTopicCreated::ID: + func(static_cast<messageForumTopicCreated &>(obj)); + return true; + case messageForumTopicEdited::ID: + func(static_cast<messageForumTopicEdited &>(obj)); + return true; + case messageForumTopicIsClosedToggled::ID: + func(static_cast<messageForumTopicIsClosedToggled &>(obj)); + return true; + case messageCustomServiceAction::ID: + func(static_cast<messageCustomServiceAction &>(obj)); + return true; + case messageGameScore::ID: + func(static_cast<messageGameScore &>(obj)); + return true; + case messagePaymentSuccessful::ID: + func(static_cast<messagePaymentSuccessful &>(obj)); + return true; + case messagePaymentSuccessfulBot::ID: + func(static_cast<messagePaymentSuccessfulBot &>(obj)); + return true; + case messageGiftedPremium::ID: + func(static_cast<messageGiftedPremium &>(obj)); + return true; + case messageContactRegistered::ID: + func(static_cast<messageContactRegistered &>(obj)); + return true; + case messageWebsiteConnected::ID: + func(static_cast<messageWebsiteConnected &>(obj)); + return true; + case messageWebAppDataSent::ID: + func(static_cast<messageWebAppDataSent &>(obj)); + return true; + case messageWebAppDataReceived::ID: + func(static_cast<messageWebAppDataReceived &>(obj)); + return true; + case messagePassportDataSent::ID: + func(static_cast<messagePassportDataSent &>(obj)); + return true; + case messagePassportDataReceived::ID: + func(static_cast<messagePassportDataReceived &>(obj)); + return true; + case messageProximityAlertTriggered::ID: + func(static_cast<messageProximityAlertTriggered &>(obj)); + return true; + case messageUnsupported::ID: + func(static_cast<messageUnsupported &>(obj)); + return true; + case messageCopyOptions::ID: + func(static_cast<messageCopyOptions &>(obj)); + return true; + case messageExtendedMediaPreview::ID: + func(static_cast<messageExtendedMediaPreview &>(obj)); + return true; + case messageExtendedMediaPhoto::ID: + func(static_cast<messageExtendedMediaPhoto &>(obj)); + return true; + case messageExtendedMediaVideo::ID: + func(static_cast<messageExtendedMediaVideo &>(obj)); + return true; + case messageExtendedMediaUnsupported::ID: + func(static_cast<messageExtendedMediaUnsupported &>(obj)); + return true; + case messageFileTypePrivate::ID: + func(static_cast<messageFileTypePrivate &>(obj)); + return true; + case messageFileTypeGroup::ID: + func(static_cast<messageFileTypeGroup &>(obj)); + return true; + case messageFileTypeUnknown::ID: + func(static_cast<messageFileTypeUnknown &>(obj)); + return true; + case messageForwardInfo::ID: + func(static_cast<messageForwardInfo &>(obj)); + return true; + case messageForwardOriginUser::ID: + func(static_cast<messageForwardOriginUser &>(obj)); + return true; + case messageForwardOriginChat::ID: + func(static_cast<messageForwardOriginChat &>(obj)); + return true; + case messageForwardOriginHiddenUser::ID: + func(static_cast<messageForwardOriginHiddenUser &>(obj)); + return true; + case messageForwardOriginChannel::ID: + func(static_cast<messageForwardOriginChannel &>(obj)); + return true; + case messageForwardOriginMessageImport::ID: + func(static_cast<messageForwardOriginMessageImport &>(obj)); + return true; + case messageInteractionInfo::ID: + func(static_cast<messageInteractionInfo &>(obj)); + return true; + case messageLink::ID: + func(static_cast<messageLink &>(obj)); + return true; + case messageLinkInfo::ID: + func(static_cast<messageLinkInfo &>(obj)); + return true; + case messagePosition::ID: + func(static_cast<messagePosition &>(obj)); + return true; + case messagePositions::ID: + func(static_cast<messagePositions &>(obj)); + return true; + case messageReaction::ID: + func(static_cast<messageReaction &>(obj)); + return true; + case messageReplyInfo::ID: + func(static_cast<messageReplyInfo &>(obj)); + return true; + case messageSchedulingStateSendAtDate::ID: + func(static_cast<messageSchedulingStateSendAtDate &>(obj)); + return true; + case messageSchedulingStateSendWhenOnline::ID: + func(static_cast<messageSchedulingStateSendWhenOnline &>(obj)); + return true; + case messageSendOptions::ID: + func(static_cast<messageSendOptions &>(obj)); + return true; + case messageSenderUser::ID: + func(static_cast<messageSenderUser &>(obj)); + return true; + case messageSenderChat::ID: + func(static_cast<messageSenderChat &>(obj)); + return true; + case messageSenders::ID: + func(static_cast<messageSenders &>(obj)); + return true; + case messageSendingStatePending::ID: + func(static_cast<messageSendingStatePending &>(obj)); + return true; + case messageSendingStateFailed::ID: + func(static_cast<messageSendingStateFailed &>(obj)); + return true; + case messageStatistics::ID: + func(static_cast<messageStatistics &>(obj)); + return true; + case messageThreadInfo::ID: + func(static_cast<messageThreadInfo &>(obj)); + return true; + case messages::ID: + func(static_cast<messages &>(obj)); + return true; + case minithumbnail::ID: + func(static_cast<minithumbnail &>(obj)); + return true; + case networkStatistics::ID: + func(static_cast<networkStatistics &>(obj)); + return true; + case networkStatisticsEntryFile::ID: + func(static_cast<networkStatisticsEntryFile &>(obj)); + return true; + case networkStatisticsEntryCall::ID: + func(static_cast<networkStatisticsEntryCall &>(obj)); + return true; + case networkTypeNone::ID: + func(static_cast<networkTypeNone &>(obj)); + return true; + case networkTypeMobile::ID: + func(static_cast<networkTypeMobile &>(obj)); + return true; + case networkTypeMobileRoaming::ID: + func(static_cast<networkTypeMobileRoaming &>(obj)); + return true; + case networkTypeWiFi::ID: + func(static_cast<networkTypeWiFi &>(obj)); + return true; + case networkTypeOther::ID: + func(static_cast<networkTypeOther &>(obj)); + return true; + case notification::ID: + func(static_cast<notification &>(obj)); + return true; + case notificationGroup::ID: + func(static_cast<notificationGroup &>(obj)); + return true; + case notificationGroupTypeMessages::ID: + func(static_cast<notificationGroupTypeMessages &>(obj)); + return true; + case notificationGroupTypeMentions::ID: + func(static_cast<notificationGroupTypeMentions &>(obj)); + return true; + case notificationGroupTypeSecretChat::ID: + func(static_cast<notificationGroupTypeSecretChat &>(obj)); + return true; + case notificationGroupTypeCalls::ID: + func(static_cast<notificationGroupTypeCalls &>(obj)); + return true; + case notificationSettingsScopePrivateChats::ID: + func(static_cast<notificationSettingsScopePrivateChats &>(obj)); + return true; + case notificationSettingsScopeGroupChats::ID: + func(static_cast<notificationSettingsScopeGroupChats &>(obj)); + return true; + case notificationSettingsScopeChannelChats::ID: + func(static_cast<notificationSettingsScopeChannelChats &>(obj)); + return true; + case notificationSound::ID: + func(static_cast<notificationSound &>(obj)); + return true; + case notificationSounds::ID: + func(static_cast<notificationSounds &>(obj)); + return true; + case notificationTypeNewMessage::ID: + func(static_cast<notificationTypeNewMessage &>(obj)); + return true; + case notificationTypeNewSecretChat::ID: + func(static_cast<notificationTypeNewSecretChat &>(obj)); + return true; + case notificationTypeNewCall::ID: + func(static_cast<notificationTypeNewCall &>(obj)); + return true; + case notificationTypeNewPushMessage::ID: + func(static_cast<notificationTypeNewPushMessage &>(obj)); + return true; + case ok::ID: + func(static_cast<ok &>(obj)); + return true; + case optionValueBoolean::ID: + func(static_cast<optionValueBoolean &>(obj)); + return true; + case optionValueEmpty::ID: + func(static_cast<optionValueEmpty &>(obj)); + return true; + case optionValueInteger::ID: + func(static_cast<optionValueInteger &>(obj)); + return true; + case optionValueString::ID: + func(static_cast<optionValueString &>(obj)); + return true; + case orderInfo::ID: + func(static_cast<orderInfo &>(obj)); + return true; + case pageBlockTitle::ID: + func(static_cast<pageBlockTitle &>(obj)); + return true; + case pageBlockSubtitle::ID: + func(static_cast<pageBlockSubtitle &>(obj)); + return true; + case pageBlockAuthorDate::ID: + func(static_cast<pageBlockAuthorDate &>(obj)); + return true; + case pageBlockHeader::ID: + func(static_cast<pageBlockHeader &>(obj)); + return true; + case pageBlockSubheader::ID: + func(static_cast<pageBlockSubheader &>(obj)); + return true; + case pageBlockKicker::ID: + func(static_cast<pageBlockKicker &>(obj)); + return true; + case pageBlockParagraph::ID: + func(static_cast<pageBlockParagraph &>(obj)); + return true; + case pageBlockPreformatted::ID: + func(static_cast<pageBlockPreformatted &>(obj)); + return true; + case pageBlockFooter::ID: + func(static_cast<pageBlockFooter &>(obj)); + return true; + case pageBlockDivider::ID: + func(static_cast<pageBlockDivider &>(obj)); + return true; + case pageBlockAnchor::ID: + func(static_cast<pageBlockAnchor &>(obj)); + return true; + case pageBlockList::ID: + func(static_cast<pageBlockList &>(obj)); + return true; + case pageBlockBlockQuote::ID: + func(static_cast<pageBlockBlockQuote &>(obj)); + return true; + case pageBlockPullQuote::ID: + func(static_cast<pageBlockPullQuote &>(obj)); + return true; + case pageBlockAnimation::ID: + func(static_cast<pageBlockAnimation &>(obj)); + return true; + case pageBlockAudio::ID: + func(static_cast<pageBlockAudio &>(obj)); + return true; + case pageBlockPhoto::ID: + func(static_cast<pageBlockPhoto &>(obj)); + return true; + case pageBlockVideo::ID: + func(static_cast<pageBlockVideo &>(obj)); + return true; + case pageBlockVoiceNote::ID: + func(static_cast<pageBlockVoiceNote &>(obj)); + return true; + case pageBlockCover::ID: + func(static_cast<pageBlockCover &>(obj)); + return true; + case pageBlockEmbedded::ID: + func(static_cast<pageBlockEmbedded &>(obj)); + return true; + case pageBlockEmbeddedPost::ID: + func(static_cast<pageBlockEmbeddedPost &>(obj)); + return true; + case pageBlockCollage::ID: + func(static_cast<pageBlockCollage &>(obj)); + return true; + case pageBlockSlideshow::ID: + func(static_cast<pageBlockSlideshow &>(obj)); + return true; + case pageBlockChatLink::ID: + func(static_cast<pageBlockChatLink &>(obj)); + return true; + case pageBlockTable::ID: + func(static_cast<pageBlockTable &>(obj)); + return true; + case pageBlockDetails::ID: + func(static_cast<pageBlockDetails &>(obj)); + return true; + case pageBlockRelatedArticles::ID: + func(static_cast<pageBlockRelatedArticles &>(obj)); + return true; + case pageBlockMap::ID: + func(static_cast<pageBlockMap &>(obj)); + return true; + case pageBlockCaption::ID: + func(static_cast<pageBlockCaption &>(obj)); + return true; + case pageBlockHorizontalAlignmentLeft::ID: + func(static_cast<pageBlockHorizontalAlignmentLeft &>(obj)); + return true; + case pageBlockHorizontalAlignmentCenter::ID: + func(static_cast<pageBlockHorizontalAlignmentCenter &>(obj)); + return true; + case pageBlockHorizontalAlignmentRight::ID: + func(static_cast<pageBlockHorizontalAlignmentRight &>(obj)); + return true; + case pageBlockListItem::ID: + func(static_cast<pageBlockListItem &>(obj)); + return true; + case pageBlockRelatedArticle::ID: + func(static_cast<pageBlockRelatedArticle &>(obj)); + return true; + case pageBlockTableCell::ID: + func(static_cast<pageBlockTableCell &>(obj)); + return true; + case pageBlockVerticalAlignmentTop::ID: + func(static_cast<pageBlockVerticalAlignmentTop &>(obj)); + return true; + case pageBlockVerticalAlignmentMiddle::ID: + func(static_cast<pageBlockVerticalAlignmentMiddle &>(obj)); + return true; + case pageBlockVerticalAlignmentBottom::ID: + func(static_cast<pageBlockVerticalAlignmentBottom &>(obj)); + return true; + case passportAuthorizationForm::ID: + func(static_cast<passportAuthorizationForm &>(obj)); + return true; + case passportElementPersonalDetails::ID: + func(static_cast<passportElementPersonalDetails &>(obj)); + return true; + case passportElementPassport::ID: + func(static_cast<passportElementPassport &>(obj)); + return true; + case passportElementDriverLicense::ID: + func(static_cast<passportElementDriverLicense &>(obj)); + return true; + case passportElementIdentityCard::ID: + func(static_cast<passportElementIdentityCard &>(obj)); + return true; + case passportElementInternalPassport::ID: + func(static_cast<passportElementInternalPassport &>(obj)); + return true; + case passportElementAddress::ID: + func(static_cast<passportElementAddress &>(obj)); + return true; + case passportElementUtilityBill::ID: + func(static_cast<passportElementUtilityBill &>(obj)); + return true; + case passportElementBankStatement::ID: + func(static_cast<passportElementBankStatement &>(obj)); + return true; + case passportElementRentalAgreement::ID: + func(static_cast<passportElementRentalAgreement &>(obj)); + return true; + case passportElementPassportRegistration::ID: + func(static_cast<passportElementPassportRegistration &>(obj)); + return true; + case passportElementTemporaryRegistration::ID: + func(static_cast<passportElementTemporaryRegistration &>(obj)); + return true; + case passportElementPhoneNumber::ID: + func(static_cast<passportElementPhoneNumber &>(obj)); + return true; + case passportElementEmailAddress::ID: + func(static_cast<passportElementEmailAddress &>(obj)); + return true; + case passportElementError::ID: + func(static_cast<passportElementError &>(obj)); + return true; + case passportElementErrorSourceUnspecified::ID: + func(static_cast<passportElementErrorSourceUnspecified &>(obj)); + return true; + case passportElementErrorSourceDataField::ID: + func(static_cast<passportElementErrorSourceDataField &>(obj)); + return true; + case passportElementErrorSourceFrontSide::ID: + func(static_cast<passportElementErrorSourceFrontSide &>(obj)); + return true; + case passportElementErrorSourceReverseSide::ID: + func(static_cast<passportElementErrorSourceReverseSide &>(obj)); + return true; + case passportElementErrorSourceSelfie::ID: + func(static_cast<passportElementErrorSourceSelfie &>(obj)); + return true; + case passportElementErrorSourceTranslationFile::ID: + func(static_cast<passportElementErrorSourceTranslationFile &>(obj)); + return true; + case passportElementErrorSourceTranslationFiles::ID: + func(static_cast<passportElementErrorSourceTranslationFiles &>(obj)); + return true; + case passportElementErrorSourceFile::ID: + func(static_cast<passportElementErrorSourceFile &>(obj)); + return true; + case passportElementErrorSourceFiles::ID: + func(static_cast<passportElementErrorSourceFiles &>(obj)); + return true; + case passportElementTypePersonalDetails::ID: + func(static_cast<passportElementTypePersonalDetails &>(obj)); + return true; + case passportElementTypePassport::ID: + func(static_cast<passportElementTypePassport &>(obj)); + return true; + case passportElementTypeDriverLicense::ID: + func(static_cast<passportElementTypeDriverLicense &>(obj)); + return true; + case passportElementTypeIdentityCard::ID: + func(static_cast<passportElementTypeIdentityCard &>(obj)); + return true; + case passportElementTypeInternalPassport::ID: + func(static_cast<passportElementTypeInternalPassport &>(obj)); + return true; + case passportElementTypeAddress::ID: + func(static_cast<passportElementTypeAddress &>(obj)); + return true; + case passportElementTypeUtilityBill::ID: + func(static_cast<passportElementTypeUtilityBill &>(obj)); + return true; + case passportElementTypeBankStatement::ID: + func(static_cast<passportElementTypeBankStatement &>(obj)); + return true; + case passportElementTypeRentalAgreement::ID: + func(static_cast<passportElementTypeRentalAgreement &>(obj)); + return true; + case passportElementTypePassportRegistration::ID: + func(static_cast<passportElementTypePassportRegistration &>(obj)); + return true; + case passportElementTypeTemporaryRegistration::ID: + func(static_cast<passportElementTypeTemporaryRegistration &>(obj)); + return true; + case passportElementTypePhoneNumber::ID: + func(static_cast<passportElementTypePhoneNumber &>(obj)); + return true; + case passportElementTypeEmailAddress::ID: + func(static_cast<passportElementTypeEmailAddress &>(obj)); + return true; + case passportElements::ID: + func(static_cast<passportElements &>(obj)); + return true; + case passportElementsWithErrors::ID: + func(static_cast<passportElementsWithErrors &>(obj)); + return true; + case passportRequiredElement::ID: + func(static_cast<passportRequiredElement &>(obj)); + return true; + case passportSuitableElement::ID: + func(static_cast<passportSuitableElement &>(obj)); + return true; + case passwordState::ID: + func(static_cast<passwordState &>(obj)); + return true; + case paymentForm::ID: + func(static_cast<paymentForm &>(obj)); + return true; + case paymentOption::ID: + func(static_cast<paymentOption &>(obj)); + return true; + case paymentProviderSmartGlocal::ID: + func(static_cast<paymentProviderSmartGlocal &>(obj)); + return true; + case paymentProviderStripe::ID: + func(static_cast<paymentProviderStripe &>(obj)); + return true; + case paymentProviderOther::ID: + func(static_cast<paymentProviderOther &>(obj)); + return true; + case paymentReceipt::ID: + func(static_cast<paymentReceipt &>(obj)); + return true; + case paymentResult::ID: + func(static_cast<paymentResult &>(obj)); + return true; + case personalDetails::ID: + func(static_cast<personalDetails &>(obj)); + return true; + case personalDocument::ID: + func(static_cast<personalDocument &>(obj)); + return true; + case phoneNumberAuthenticationSettings::ID: + func(static_cast<phoneNumberAuthenticationSettings &>(obj)); + return true; + case phoneNumberInfo::ID: + func(static_cast<phoneNumberInfo &>(obj)); + return true; + case photo::ID: + func(static_cast<photo &>(obj)); + return true; + case photoSize::ID: + func(static_cast<photoSize &>(obj)); + return true; + case point::ID: + func(static_cast<point &>(obj)); + return true; + case poll::ID: + func(static_cast<poll &>(obj)); + return true; + case pollOption::ID: + func(static_cast<pollOption &>(obj)); + return true; + case pollTypeRegular::ID: + func(static_cast<pollTypeRegular &>(obj)); + return true; + case pollTypeQuiz::ID: + func(static_cast<pollTypeQuiz &>(obj)); + return true; + case premiumFeatureIncreasedLimits::ID: + func(static_cast<premiumFeatureIncreasedLimits &>(obj)); + return true; + case premiumFeatureIncreasedUploadFileSize::ID: + func(static_cast<premiumFeatureIncreasedUploadFileSize &>(obj)); + return true; + case premiumFeatureImprovedDownloadSpeed::ID: + func(static_cast<premiumFeatureImprovedDownloadSpeed &>(obj)); + return true; + case premiumFeatureVoiceRecognition::ID: + func(static_cast<premiumFeatureVoiceRecognition &>(obj)); + return true; + case premiumFeatureDisabledAds::ID: + func(static_cast<premiumFeatureDisabledAds &>(obj)); + return true; + case premiumFeatureUniqueReactions::ID: + func(static_cast<premiumFeatureUniqueReactions &>(obj)); + return true; + case premiumFeatureUniqueStickers::ID: + func(static_cast<premiumFeatureUniqueStickers &>(obj)); + return true; + case premiumFeatureCustomEmoji::ID: + func(static_cast<premiumFeatureCustomEmoji &>(obj)); + return true; + case premiumFeatureAdvancedChatManagement::ID: + func(static_cast<premiumFeatureAdvancedChatManagement &>(obj)); + return true; + case premiumFeatureProfileBadge::ID: + func(static_cast<premiumFeatureProfileBadge &>(obj)); + return true; + case premiumFeatureEmojiStatus::ID: + func(static_cast<premiumFeatureEmojiStatus &>(obj)); + return true; + case premiumFeatureAnimatedProfilePhoto::ID: + func(static_cast<premiumFeatureAnimatedProfilePhoto &>(obj)); + return true; + case premiumFeatureForumTopicIcon::ID: + func(static_cast<premiumFeatureForumTopicIcon &>(obj)); + return true; + case premiumFeatureAppIcons::ID: + func(static_cast<premiumFeatureAppIcons &>(obj)); + return true; + case premiumFeaturePromotionAnimation::ID: + func(static_cast<premiumFeaturePromotionAnimation &>(obj)); + return true; + case premiumFeatures::ID: + func(static_cast<premiumFeatures &>(obj)); + return true; + case premiumLimit::ID: + func(static_cast<premiumLimit &>(obj)); + return true; + case premiumLimitTypeSupergroupCount::ID: + func(static_cast<premiumLimitTypeSupergroupCount &>(obj)); + return true; + case premiumLimitTypePinnedChatCount::ID: + func(static_cast<premiumLimitTypePinnedChatCount &>(obj)); + return true; + case premiumLimitTypeCreatedPublicChatCount::ID: + func(static_cast<premiumLimitTypeCreatedPublicChatCount &>(obj)); + return true; + case premiumLimitTypeSavedAnimationCount::ID: + func(static_cast<premiumLimitTypeSavedAnimationCount &>(obj)); + return true; + case premiumLimitTypeFavoriteStickerCount::ID: + func(static_cast<premiumLimitTypeFavoriteStickerCount &>(obj)); + return true; + case premiumLimitTypeChatFilterCount::ID: + func(static_cast<premiumLimitTypeChatFilterCount &>(obj)); + return true; + case premiumLimitTypeChatFilterChosenChatCount::ID: + func(static_cast<premiumLimitTypeChatFilterChosenChatCount &>(obj)); + return true; + case premiumLimitTypePinnedArchivedChatCount::ID: + func(static_cast<premiumLimitTypePinnedArchivedChatCount &>(obj)); + return true; + case premiumLimitTypeCaptionLength::ID: + func(static_cast<premiumLimitTypeCaptionLength &>(obj)); + return true; + case premiumLimitTypeBioLength::ID: + func(static_cast<premiumLimitTypeBioLength &>(obj)); + return true; + case premiumPaymentOption::ID: + func(static_cast<premiumPaymentOption &>(obj)); + return true; + case premiumSourceLimitExceeded::ID: + func(static_cast<premiumSourceLimitExceeded &>(obj)); + return true; + case premiumSourceFeature::ID: + func(static_cast<premiumSourceFeature &>(obj)); + return true; + case premiumSourceLink::ID: + func(static_cast<premiumSourceLink &>(obj)); + return true; + case premiumSourceSettings::ID: + func(static_cast<premiumSourceSettings &>(obj)); + return true; + case premiumState::ID: + func(static_cast<premiumState &>(obj)); + return true; + case profilePhoto::ID: + func(static_cast<profilePhoto &>(obj)); + return true; + case proxies::ID: + func(static_cast<proxies &>(obj)); + return true; + case proxy::ID: + func(static_cast<proxy &>(obj)); + return true; + case proxyTypeSocks5::ID: + func(static_cast<proxyTypeSocks5 &>(obj)); + return true; + case proxyTypeHttp::ID: + func(static_cast<proxyTypeHttp &>(obj)); + return true; + case proxyTypeMtproto::ID: + func(static_cast<proxyTypeMtproto &>(obj)); + return true; + case publicChatTypeHasUsername::ID: + func(static_cast<publicChatTypeHasUsername &>(obj)); + return true; + case publicChatTypeIsLocationBased::ID: + func(static_cast<publicChatTypeIsLocationBased &>(obj)); + return true; + case pushMessageContentHidden::ID: + func(static_cast<pushMessageContentHidden &>(obj)); + return true; + case pushMessageContentAnimation::ID: + func(static_cast<pushMessageContentAnimation &>(obj)); + return true; + case pushMessageContentAudio::ID: + func(static_cast<pushMessageContentAudio &>(obj)); + return true; + case pushMessageContentContact::ID: + func(static_cast<pushMessageContentContact &>(obj)); + return true; + case pushMessageContentContactRegistered::ID: + func(static_cast<pushMessageContentContactRegistered &>(obj)); + return true; + case pushMessageContentDocument::ID: + func(static_cast<pushMessageContentDocument &>(obj)); + return true; + case pushMessageContentGame::ID: + func(static_cast<pushMessageContentGame &>(obj)); + return true; + case pushMessageContentGameScore::ID: + func(static_cast<pushMessageContentGameScore &>(obj)); + return true; + case pushMessageContentInvoice::ID: + func(static_cast<pushMessageContentInvoice &>(obj)); + return true; + case pushMessageContentLocation::ID: + func(static_cast<pushMessageContentLocation &>(obj)); + return true; + case pushMessageContentPhoto::ID: + func(static_cast<pushMessageContentPhoto &>(obj)); + return true; + case pushMessageContentPoll::ID: + func(static_cast<pushMessageContentPoll &>(obj)); + return true; + case pushMessageContentScreenshotTaken::ID: + func(static_cast<pushMessageContentScreenshotTaken &>(obj)); + return true; + case pushMessageContentSticker::ID: + func(static_cast<pushMessageContentSticker &>(obj)); + return true; + case pushMessageContentText::ID: + func(static_cast<pushMessageContentText &>(obj)); + return true; + case pushMessageContentVideo::ID: + func(static_cast<pushMessageContentVideo &>(obj)); + return true; + case pushMessageContentVideoNote::ID: + func(static_cast<pushMessageContentVideoNote &>(obj)); + return true; + case pushMessageContentVoiceNote::ID: + func(static_cast<pushMessageContentVoiceNote &>(obj)); + return true; + case pushMessageContentBasicGroupChatCreate::ID: + func(static_cast<pushMessageContentBasicGroupChatCreate &>(obj)); + return true; + case pushMessageContentChatAddMembers::ID: + func(static_cast<pushMessageContentChatAddMembers &>(obj)); + return true; + case pushMessageContentChatChangePhoto::ID: + func(static_cast<pushMessageContentChatChangePhoto &>(obj)); + return true; + case pushMessageContentChatChangeTitle::ID: + func(static_cast<pushMessageContentChatChangeTitle &>(obj)); + return true; + case pushMessageContentChatSetTheme::ID: + func(static_cast<pushMessageContentChatSetTheme &>(obj)); + return true; + case pushMessageContentChatDeleteMember::ID: + func(static_cast<pushMessageContentChatDeleteMember &>(obj)); + return true; + case pushMessageContentChatJoinByLink::ID: + func(static_cast<pushMessageContentChatJoinByLink &>(obj)); + return true; + case pushMessageContentChatJoinByRequest::ID: + func(static_cast<pushMessageContentChatJoinByRequest &>(obj)); + return true; + case pushMessageContentRecurringPayment::ID: + func(static_cast<pushMessageContentRecurringPayment &>(obj)); + return true; + case pushMessageContentMessageForwards::ID: + func(static_cast<pushMessageContentMessageForwards &>(obj)); + return true; + case pushMessageContentMediaAlbum::ID: + func(static_cast<pushMessageContentMediaAlbum &>(obj)); + return true; + case pushReceiverId::ID: + func(static_cast<pushReceiverId &>(obj)); + return true; + case reactionTypeEmoji::ID: + func(static_cast<reactionTypeEmoji &>(obj)); + return true; + case reactionTypeCustomEmoji::ID: + func(static_cast<reactionTypeCustomEmoji &>(obj)); + return true; + case recommendedChatFilter::ID: + func(static_cast<recommendedChatFilter &>(obj)); + return true; + case recommendedChatFilters::ID: + func(static_cast<recommendedChatFilters &>(obj)); + return true; + case recoveryEmailAddress::ID: + func(static_cast<recoveryEmailAddress &>(obj)); + return true; + case remoteFile::ID: + func(static_cast<remoteFile &>(obj)); + return true; + case replyMarkupRemoveKeyboard::ID: + func(static_cast<replyMarkupRemoveKeyboard &>(obj)); + return true; + case replyMarkupForceReply::ID: + func(static_cast<replyMarkupForceReply &>(obj)); + return true; + case replyMarkupShowKeyboard::ID: + func(static_cast<replyMarkupShowKeyboard &>(obj)); + return true; + case replyMarkupInlineKeyboard::ID: + func(static_cast<replyMarkupInlineKeyboard &>(obj)); + return true; + case resetPasswordResultOk::ID: + func(static_cast<resetPasswordResultOk &>(obj)); + return true; + case resetPasswordResultPending::ID: + func(static_cast<resetPasswordResultPending &>(obj)); + return true; + case resetPasswordResultDeclined::ID: + func(static_cast<resetPasswordResultDeclined &>(obj)); + return true; + case richTextPlain::ID: + func(static_cast<richTextPlain &>(obj)); + return true; + case richTextBold::ID: + func(static_cast<richTextBold &>(obj)); + return true; + case richTextItalic::ID: + func(static_cast<richTextItalic &>(obj)); + return true; + case richTextUnderline::ID: + func(static_cast<richTextUnderline &>(obj)); + return true; + case richTextStrikethrough::ID: + func(static_cast<richTextStrikethrough &>(obj)); + return true; + case richTextFixed::ID: + func(static_cast<richTextFixed &>(obj)); + return true; + case richTextUrl::ID: + func(static_cast<richTextUrl &>(obj)); + return true; + case richTextEmailAddress::ID: + func(static_cast<richTextEmailAddress &>(obj)); + return true; + case richTextSubscript::ID: + func(static_cast<richTextSubscript &>(obj)); + return true; + case richTextSuperscript::ID: + func(static_cast<richTextSuperscript &>(obj)); + return true; + case richTextMarked::ID: + func(static_cast<richTextMarked &>(obj)); + return true; + case richTextPhoneNumber::ID: + func(static_cast<richTextPhoneNumber &>(obj)); + return true; + case richTextIcon::ID: + func(static_cast<richTextIcon &>(obj)); + return true; + case richTextReference::ID: + func(static_cast<richTextReference &>(obj)); + return true; + case richTextAnchor::ID: + func(static_cast<richTextAnchor &>(obj)); + return true; + case richTextAnchorLink::ID: + func(static_cast<richTextAnchorLink &>(obj)); + return true; + case richTexts::ID: + func(static_cast<richTexts &>(obj)); + return true; + case rtmpUrl::ID: + func(static_cast<rtmpUrl &>(obj)); + return true; + case savedCredentials::ID: + func(static_cast<savedCredentials &>(obj)); + return true; + case scopeNotificationSettings::ID: + func(static_cast<scopeNotificationSettings &>(obj)); + return true; + case searchMessagesFilterEmpty::ID: + func(static_cast<searchMessagesFilterEmpty &>(obj)); + return true; + case searchMessagesFilterAnimation::ID: + func(static_cast<searchMessagesFilterAnimation &>(obj)); + return true; + case searchMessagesFilterAudio::ID: + func(static_cast<searchMessagesFilterAudio &>(obj)); + return true; + case searchMessagesFilterDocument::ID: + func(static_cast<searchMessagesFilterDocument &>(obj)); + return true; + case searchMessagesFilterPhoto::ID: + func(static_cast<searchMessagesFilterPhoto &>(obj)); + return true; + case searchMessagesFilterVideo::ID: + func(static_cast<searchMessagesFilterVideo &>(obj)); + return true; + case searchMessagesFilterVoiceNote::ID: + func(static_cast<searchMessagesFilterVoiceNote &>(obj)); + return true; + case searchMessagesFilterPhotoAndVideo::ID: + func(static_cast<searchMessagesFilterPhotoAndVideo &>(obj)); + return true; + case searchMessagesFilterUrl::ID: + func(static_cast<searchMessagesFilterUrl &>(obj)); + return true; + case searchMessagesFilterChatPhoto::ID: + func(static_cast<searchMessagesFilterChatPhoto &>(obj)); + return true; + case searchMessagesFilterVideoNote::ID: + func(static_cast<searchMessagesFilterVideoNote &>(obj)); + return true; + case searchMessagesFilterVoiceAndVideoNote::ID: + func(static_cast<searchMessagesFilterVoiceAndVideoNote &>(obj)); + return true; + case searchMessagesFilterMention::ID: + func(static_cast<searchMessagesFilterMention &>(obj)); + return true; + case searchMessagesFilterUnreadMention::ID: + func(static_cast<searchMessagesFilterUnreadMention &>(obj)); + return true; + case searchMessagesFilterUnreadReaction::ID: + func(static_cast<searchMessagesFilterUnreadReaction &>(obj)); + return true; + case searchMessagesFilterFailedToSend::ID: + func(static_cast<searchMessagesFilterFailedToSend &>(obj)); + return true; + case searchMessagesFilterPinned::ID: + func(static_cast<searchMessagesFilterPinned &>(obj)); + return true; + case seconds::ID: + func(static_cast<seconds &>(obj)); + return true; + case secretChat::ID: + func(static_cast<secretChat &>(obj)); + return true; + case secretChatStatePending::ID: + func(static_cast<secretChatStatePending &>(obj)); + return true; + case secretChatStateReady::ID: + func(static_cast<secretChatStateReady &>(obj)); + return true; + case secretChatStateClosed::ID: + func(static_cast<secretChatStateClosed &>(obj)); + return true; + case sentWebAppMessage::ID: + func(static_cast<sentWebAppMessage &>(obj)); + return true; + case session::ID: + func(static_cast<session &>(obj)); + return true; + case sessionTypeAndroid::ID: + func(static_cast<sessionTypeAndroid &>(obj)); + return true; + case sessionTypeApple::ID: + func(static_cast<sessionTypeApple &>(obj)); + return true; + case sessionTypeBrave::ID: + func(static_cast<sessionTypeBrave &>(obj)); + return true; + case sessionTypeChrome::ID: + func(static_cast<sessionTypeChrome &>(obj)); + return true; + case sessionTypeEdge::ID: + func(static_cast<sessionTypeEdge &>(obj)); + return true; + case sessionTypeFirefox::ID: + func(static_cast<sessionTypeFirefox &>(obj)); + return true; + case sessionTypeIpad::ID: + func(static_cast<sessionTypeIpad &>(obj)); + return true; + case sessionTypeIphone::ID: + func(static_cast<sessionTypeIphone &>(obj)); + return true; + case sessionTypeLinux::ID: + func(static_cast<sessionTypeLinux &>(obj)); + return true; + case sessionTypeMac::ID: + func(static_cast<sessionTypeMac &>(obj)); + return true; + case sessionTypeOpera::ID: + func(static_cast<sessionTypeOpera &>(obj)); + return true; + case sessionTypeSafari::ID: + func(static_cast<sessionTypeSafari &>(obj)); + return true; + case sessionTypeUbuntu::ID: + func(static_cast<sessionTypeUbuntu &>(obj)); + return true; + case sessionTypeUnknown::ID: + func(static_cast<sessionTypeUnknown &>(obj)); + return true; + case sessionTypeVivaldi::ID: + func(static_cast<sessionTypeVivaldi &>(obj)); + return true; + case sessionTypeWindows::ID: + func(static_cast<sessionTypeWindows &>(obj)); + return true; + case sessionTypeXbox::ID: + func(static_cast<sessionTypeXbox &>(obj)); + return true; + case sessions::ID: + func(static_cast<sessions &>(obj)); + return true; + case shippingOption::ID: + func(static_cast<shippingOption &>(obj)); + return true; + case speechRecognitionResultPending::ID: + func(static_cast<speechRecognitionResultPending &>(obj)); + return true; + case speechRecognitionResultText::ID: + func(static_cast<speechRecognitionResultText &>(obj)); + return true; + case speechRecognitionResultError::ID: + func(static_cast<speechRecognitionResultError &>(obj)); + return true; + case sponsoredMessage::ID: + func(static_cast<sponsoredMessage &>(obj)); + return true; + case sponsoredMessages::ID: + func(static_cast<sponsoredMessages &>(obj)); + return true; + case statisticalGraphData::ID: + func(static_cast<statisticalGraphData &>(obj)); + return true; + case statisticalGraphAsync::ID: + func(static_cast<statisticalGraphAsync &>(obj)); + return true; + case statisticalGraphError::ID: + func(static_cast<statisticalGraphError &>(obj)); + return true; + case statisticalValue::ID: + func(static_cast<statisticalValue &>(obj)); + return true; + case sticker::ID: + func(static_cast<sticker &>(obj)); + return true; + case stickerFormatWebp::ID: + func(static_cast<stickerFormatWebp &>(obj)); + return true; + case stickerFormatTgs::ID: + func(static_cast<stickerFormatTgs &>(obj)); + return true; + case stickerFormatWebm::ID: + func(static_cast<stickerFormatWebm &>(obj)); + return true; + case stickerSet::ID: + func(static_cast<stickerSet &>(obj)); + return true; + case stickerSetInfo::ID: + func(static_cast<stickerSetInfo &>(obj)); + return true; + case stickerSets::ID: + func(static_cast<stickerSets &>(obj)); + return true; + case stickerTypeRegular::ID: + func(static_cast<stickerTypeRegular &>(obj)); + return true; + case stickerTypeMask::ID: + func(static_cast<stickerTypeMask &>(obj)); + return true; + case stickerTypeCustomEmoji::ID: + func(static_cast<stickerTypeCustomEmoji &>(obj)); + return true; + case stickers::ID: + func(static_cast<stickers &>(obj)); + return true; + case storageStatistics::ID: + func(static_cast<storageStatistics &>(obj)); + return true; + case storageStatisticsByChat::ID: + func(static_cast<storageStatisticsByChat &>(obj)); + return true; + case storageStatisticsByFileType::ID: + func(static_cast<storageStatisticsByFileType &>(obj)); + return true; + case storageStatisticsFast::ID: + func(static_cast<storageStatisticsFast &>(obj)); + return true; + case storePaymentPurposePremiumSubscription::ID: + func(static_cast<storePaymentPurposePremiumSubscription &>(obj)); + return true; + case storePaymentPurposeGiftedPremium::ID: + func(static_cast<storePaymentPurposeGiftedPremium &>(obj)); + return true; + case suggestedActionEnableArchiveAndMuteNewChats::ID: + func(static_cast<suggestedActionEnableArchiveAndMuteNewChats &>(obj)); + return true; + case suggestedActionCheckPassword::ID: + func(static_cast<suggestedActionCheckPassword &>(obj)); + return true; + case suggestedActionCheckPhoneNumber::ID: + func(static_cast<suggestedActionCheckPhoneNumber &>(obj)); + return true; + case suggestedActionViewChecksHint::ID: + func(static_cast<suggestedActionViewChecksHint &>(obj)); + return true; + case suggestedActionConvertToBroadcastGroup::ID: + func(static_cast<suggestedActionConvertToBroadcastGroup &>(obj)); + return true; + case suggestedActionSetPassword::ID: + func(static_cast<suggestedActionSetPassword &>(obj)); + return true; + case supergroup::ID: + func(static_cast<supergroup &>(obj)); + return true; + case supergroupFullInfo::ID: + func(static_cast<supergroupFullInfo &>(obj)); + return true; + case supergroupMembersFilterRecent::ID: + func(static_cast<supergroupMembersFilterRecent &>(obj)); + return true; + case supergroupMembersFilterContacts::ID: + func(static_cast<supergroupMembersFilterContacts &>(obj)); + return true; + case supergroupMembersFilterAdministrators::ID: + func(static_cast<supergroupMembersFilterAdministrators &>(obj)); + return true; + case supergroupMembersFilterSearch::ID: + func(static_cast<supergroupMembersFilterSearch &>(obj)); + return true; + case supergroupMembersFilterRestricted::ID: + func(static_cast<supergroupMembersFilterRestricted &>(obj)); + return true; + case supergroupMembersFilterBanned::ID: + func(static_cast<supergroupMembersFilterBanned &>(obj)); + return true; + case supergroupMembersFilterMention::ID: + func(static_cast<supergroupMembersFilterMention &>(obj)); + return true; + case supergroupMembersFilterBots::ID: + func(static_cast<supergroupMembersFilterBots &>(obj)); + return true; + case tMeUrl::ID: + func(static_cast<tMeUrl &>(obj)); + return true; + case tMeUrlTypeUser::ID: + func(static_cast<tMeUrlTypeUser &>(obj)); + return true; + case tMeUrlTypeSupergroup::ID: + func(static_cast<tMeUrlTypeSupergroup &>(obj)); + return true; + case tMeUrlTypeChatInvite::ID: + func(static_cast<tMeUrlTypeChatInvite &>(obj)); + return true; + case tMeUrlTypeStickerSet::ID: + func(static_cast<tMeUrlTypeStickerSet &>(obj)); + return true; + case tMeUrls::ID: + func(static_cast<tMeUrls &>(obj)); + return true; + case targetChatCurrent::ID: + func(static_cast<targetChatCurrent &>(obj)); + return true; + case targetChatChosen::ID: + func(static_cast<targetChatChosen &>(obj)); + return true; + case targetChatInternalLink::ID: + func(static_cast<targetChatInternalLink &>(obj)); + return true; + case temporaryPasswordState::ID: + func(static_cast<temporaryPasswordState &>(obj)); + return true; + case termsOfService::ID: + func(static_cast<termsOfService &>(obj)); + return true; + case testBytes::ID: + func(static_cast<testBytes &>(obj)); + return true; + case testInt::ID: + func(static_cast<testInt &>(obj)); + return true; + case testString::ID: + func(static_cast<testString &>(obj)); + return true; + case testVectorInt::ID: + func(static_cast<testVectorInt &>(obj)); + return true; + case testVectorIntObject::ID: + func(static_cast<testVectorIntObject &>(obj)); + return true; + case testVectorString::ID: + func(static_cast<testVectorString &>(obj)); + return true; + case testVectorStringObject::ID: + func(static_cast<testVectorStringObject &>(obj)); + return true; + case text::ID: + func(static_cast<text &>(obj)); + return true; + case textEntities::ID: + func(static_cast<textEntities &>(obj)); + return true; + case textEntity::ID: + func(static_cast<textEntity &>(obj)); + return true; + case textEntityTypeMention::ID: + func(static_cast<textEntityTypeMention &>(obj)); + return true; + case textEntityTypeHashtag::ID: + func(static_cast<textEntityTypeHashtag &>(obj)); + return true; + case textEntityTypeCashtag::ID: + func(static_cast<textEntityTypeCashtag &>(obj)); + return true; + case textEntityTypeBotCommand::ID: + func(static_cast<textEntityTypeBotCommand &>(obj)); + return true; + case textEntityTypeUrl::ID: + func(static_cast<textEntityTypeUrl &>(obj)); + return true; + case textEntityTypeEmailAddress::ID: + func(static_cast<textEntityTypeEmailAddress &>(obj)); + return true; + case textEntityTypePhoneNumber::ID: + func(static_cast<textEntityTypePhoneNumber &>(obj)); + return true; + case textEntityTypeBankCardNumber::ID: + func(static_cast<textEntityTypeBankCardNumber &>(obj)); + return true; + case textEntityTypeBold::ID: + func(static_cast<textEntityTypeBold &>(obj)); + return true; + case textEntityTypeItalic::ID: + func(static_cast<textEntityTypeItalic &>(obj)); + return true; + case textEntityTypeUnderline::ID: + func(static_cast<textEntityTypeUnderline &>(obj)); + return true; + case textEntityTypeStrikethrough::ID: + func(static_cast<textEntityTypeStrikethrough &>(obj)); + return true; + case textEntityTypeSpoiler::ID: + func(static_cast<textEntityTypeSpoiler &>(obj)); + return true; + case textEntityTypeCode::ID: + func(static_cast<textEntityTypeCode &>(obj)); + return true; + case textEntityTypePre::ID: + func(static_cast<textEntityTypePre &>(obj)); + return true; + case textEntityTypePreCode::ID: + func(static_cast<textEntityTypePreCode &>(obj)); + return true; + case textEntityTypeTextUrl::ID: + func(static_cast<textEntityTypeTextUrl &>(obj)); + return true; + case textEntityTypeMentionName::ID: + func(static_cast<textEntityTypeMentionName &>(obj)); + return true; + case textEntityTypeCustomEmoji::ID: + func(static_cast<textEntityTypeCustomEmoji &>(obj)); + return true; + case textEntityTypeMediaTimestamp::ID: + func(static_cast<textEntityTypeMediaTimestamp &>(obj)); + return true; + case textParseModeMarkdown::ID: + func(static_cast<textParseModeMarkdown &>(obj)); + return true; + case textParseModeHTML::ID: + func(static_cast<textParseModeHTML &>(obj)); + return true; + case themeParameters::ID: + func(static_cast<themeParameters &>(obj)); + return true; + case themeSettings::ID: + func(static_cast<themeSettings &>(obj)); + return true; + case thumbnail::ID: + func(static_cast<thumbnail &>(obj)); + return true; + case thumbnailFormatJpeg::ID: + func(static_cast<thumbnailFormatJpeg &>(obj)); + return true; + case thumbnailFormatGif::ID: + func(static_cast<thumbnailFormatGif &>(obj)); + return true; + case thumbnailFormatMpeg4::ID: + func(static_cast<thumbnailFormatMpeg4 &>(obj)); + return true; + case thumbnailFormatPng::ID: + func(static_cast<thumbnailFormatPng &>(obj)); + return true; + case thumbnailFormatTgs::ID: + func(static_cast<thumbnailFormatTgs &>(obj)); + return true; + case thumbnailFormatWebm::ID: + func(static_cast<thumbnailFormatWebm &>(obj)); + return true; + case thumbnailFormatWebp::ID: + func(static_cast<thumbnailFormatWebp &>(obj)); + return true; + case topChatCategoryUsers::ID: + func(static_cast<topChatCategoryUsers &>(obj)); + return true; + case topChatCategoryBots::ID: + func(static_cast<topChatCategoryBots &>(obj)); + return true; + case topChatCategoryGroups::ID: + func(static_cast<topChatCategoryGroups &>(obj)); + return true; + case topChatCategoryChannels::ID: + func(static_cast<topChatCategoryChannels &>(obj)); + return true; + case topChatCategoryInlineBots::ID: + func(static_cast<topChatCategoryInlineBots &>(obj)); + return true; + case topChatCategoryCalls::ID: + func(static_cast<topChatCategoryCalls &>(obj)); + return true; + case topChatCategoryForwardChats::ID: + func(static_cast<topChatCategoryForwardChats &>(obj)); + return true; + case trendingStickerSets::ID: + func(static_cast<trendingStickerSets &>(obj)); + return true; + case unreadReaction::ID: + func(static_cast<unreadReaction &>(obj)); + return true; + case updateAuthorizationState::ID: + func(static_cast<updateAuthorizationState &>(obj)); + return true; + case updateNewMessage::ID: + func(static_cast<updateNewMessage &>(obj)); + return true; + case updateMessageSendAcknowledged::ID: + func(static_cast<updateMessageSendAcknowledged &>(obj)); + return true; + case updateMessageSendSucceeded::ID: + func(static_cast<updateMessageSendSucceeded &>(obj)); + return true; + case updateMessageSendFailed::ID: + func(static_cast<updateMessageSendFailed &>(obj)); + return true; + case updateMessageContent::ID: + func(static_cast<updateMessageContent &>(obj)); + return true; + case updateMessageEdited::ID: + func(static_cast<updateMessageEdited &>(obj)); + return true; + case updateMessageIsPinned::ID: + func(static_cast<updateMessageIsPinned &>(obj)); + return true; + case updateMessageInteractionInfo::ID: + func(static_cast<updateMessageInteractionInfo &>(obj)); + return true; + case updateMessageContentOpened::ID: + func(static_cast<updateMessageContentOpened &>(obj)); + return true; + case updateMessageMentionRead::ID: + func(static_cast<updateMessageMentionRead &>(obj)); + return true; + case updateMessageUnreadReactions::ID: + func(static_cast<updateMessageUnreadReactions &>(obj)); + return true; + case updateMessageLiveLocationViewed::ID: + func(static_cast<updateMessageLiveLocationViewed &>(obj)); + return true; + case updateNewChat::ID: + func(static_cast<updateNewChat &>(obj)); + return true; + case updateChatTitle::ID: + func(static_cast<updateChatTitle &>(obj)); + return true; + case updateChatPhoto::ID: + func(static_cast<updateChatPhoto &>(obj)); + return true; + case updateChatPermissions::ID: + func(static_cast<updateChatPermissions &>(obj)); + return true; + case updateChatLastMessage::ID: + func(static_cast<updateChatLastMessage &>(obj)); + return true; + case updateChatPosition::ID: + func(static_cast<updateChatPosition &>(obj)); + return true; + case updateChatReadInbox::ID: + func(static_cast<updateChatReadInbox &>(obj)); + return true; + case updateChatReadOutbox::ID: + func(static_cast<updateChatReadOutbox &>(obj)); + return true; + case updateChatActionBar::ID: + func(static_cast<updateChatActionBar &>(obj)); + return true; + case updateChatAvailableReactions::ID: + func(static_cast<updateChatAvailableReactions &>(obj)); + return true; + case updateChatDraftMessage::ID: + func(static_cast<updateChatDraftMessage &>(obj)); + return true; + case updateChatMessageSender::ID: + func(static_cast<updateChatMessageSender &>(obj)); + return true; + case updateChatMessageTtl::ID: + func(static_cast<updateChatMessageTtl &>(obj)); + return true; + case updateChatNotificationSettings::ID: + func(static_cast<updateChatNotificationSettings &>(obj)); + return true; + case updateChatPendingJoinRequests::ID: + func(static_cast<updateChatPendingJoinRequests &>(obj)); + return true; + case updateChatReplyMarkup::ID: + func(static_cast<updateChatReplyMarkup &>(obj)); + return true; + case updateChatTheme::ID: + func(static_cast<updateChatTheme &>(obj)); + return true; + case updateChatUnreadMentionCount::ID: + func(static_cast<updateChatUnreadMentionCount &>(obj)); + return true; + case updateChatUnreadReactionCount::ID: + func(static_cast<updateChatUnreadReactionCount &>(obj)); + return true; + case updateChatVideoChat::ID: + func(static_cast<updateChatVideoChat &>(obj)); + return true; + case updateChatDefaultDisableNotification::ID: + func(static_cast<updateChatDefaultDisableNotification &>(obj)); + return true; + case updateChatHasProtectedContent::ID: + func(static_cast<updateChatHasProtectedContent &>(obj)); + return true; + case updateChatHasScheduledMessages::ID: + func(static_cast<updateChatHasScheduledMessages &>(obj)); + return true; + case updateChatIsBlocked::ID: + func(static_cast<updateChatIsBlocked &>(obj)); + return true; + case updateChatIsMarkedAsUnread::ID: + func(static_cast<updateChatIsMarkedAsUnread &>(obj)); + return true; + case updateChatFilters::ID: + func(static_cast<updateChatFilters &>(obj)); + return true; + case updateChatOnlineMemberCount::ID: + func(static_cast<updateChatOnlineMemberCount &>(obj)); + return true; + case updateForumTopicInfo::ID: + func(static_cast<updateForumTopicInfo &>(obj)); + return true; + case updateScopeNotificationSettings::ID: + func(static_cast<updateScopeNotificationSettings &>(obj)); + return true; + case updateNotification::ID: + func(static_cast<updateNotification &>(obj)); + return true; + case updateNotificationGroup::ID: + func(static_cast<updateNotificationGroup &>(obj)); + return true; + case updateActiveNotifications::ID: + func(static_cast<updateActiveNotifications &>(obj)); + return true; + case updateHavePendingNotifications::ID: + func(static_cast<updateHavePendingNotifications &>(obj)); + return true; + case updateDeleteMessages::ID: + func(static_cast<updateDeleteMessages &>(obj)); + return true; + case updateChatAction::ID: + func(static_cast<updateChatAction &>(obj)); + return true; + case updateUserStatus::ID: + func(static_cast<updateUserStatus &>(obj)); + return true; + case updateUser::ID: + func(static_cast<updateUser &>(obj)); + return true; + case updateBasicGroup::ID: + func(static_cast<updateBasicGroup &>(obj)); + return true; + case updateSupergroup::ID: + func(static_cast<updateSupergroup &>(obj)); + return true; + case updateSecretChat::ID: + func(static_cast<updateSecretChat &>(obj)); + return true; + case updateUserFullInfo::ID: + func(static_cast<updateUserFullInfo &>(obj)); + return true; + case updateBasicGroupFullInfo::ID: + func(static_cast<updateBasicGroupFullInfo &>(obj)); + return true; + case updateSupergroupFullInfo::ID: + func(static_cast<updateSupergroupFullInfo &>(obj)); + return true; + case updateServiceNotification::ID: + func(static_cast<updateServiceNotification &>(obj)); + return true; + case updateFile::ID: + func(static_cast<updateFile &>(obj)); + return true; + case updateFileGenerationStart::ID: + func(static_cast<updateFileGenerationStart &>(obj)); + return true; + case updateFileGenerationStop::ID: + func(static_cast<updateFileGenerationStop &>(obj)); + return true; + case updateFileDownloads::ID: + func(static_cast<updateFileDownloads &>(obj)); + return true; + case updateFileAddedToDownloads::ID: + func(static_cast<updateFileAddedToDownloads &>(obj)); + return true; + case updateFileDownload::ID: + func(static_cast<updateFileDownload &>(obj)); + return true; + case updateFileRemovedFromDownloads::ID: + func(static_cast<updateFileRemovedFromDownloads &>(obj)); + return true; + case updateCall::ID: + func(static_cast<updateCall &>(obj)); + return true; + case updateGroupCall::ID: + func(static_cast<updateGroupCall &>(obj)); + return true; + case updateGroupCallParticipant::ID: + func(static_cast<updateGroupCallParticipant &>(obj)); + return true; + case updateNewCallSignalingData::ID: + func(static_cast<updateNewCallSignalingData &>(obj)); + return true; + case updateUserPrivacySettingRules::ID: + func(static_cast<updateUserPrivacySettingRules &>(obj)); + return true; + case updateUnreadMessageCount::ID: + func(static_cast<updateUnreadMessageCount &>(obj)); + return true; + case updateUnreadChatCount::ID: + func(static_cast<updateUnreadChatCount &>(obj)); + return true; + case updateOption::ID: + func(static_cast<updateOption &>(obj)); + return true; + case updateStickerSet::ID: + func(static_cast<updateStickerSet &>(obj)); + return true; + case updateInstalledStickerSets::ID: + func(static_cast<updateInstalledStickerSets &>(obj)); + return true; + case updateTrendingStickerSets::ID: + func(static_cast<updateTrendingStickerSets &>(obj)); + return true; + case updateRecentStickers::ID: + func(static_cast<updateRecentStickers &>(obj)); + return true; + case updateFavoriteStickers::ID: + func(static_cast<updateFavoriteStickers &>(obj)); + return true; + case updateSavedAnimations::ID: + func(static_cast<updateSavedAnimations &>(obj)); + return true; + case updateSavedNotificationSounds::ID: + func(static_cast<updateSavedNotificationSounds &>(obj)); + return true; + case updateSelectedBackground::ID: + func(static_cast<updateSelectedBackground &>(obj)); + return true; + case updateChatThemes::ID: + func(static_cast<updateChatThemes &>(obj)); + return true; + case updateLanguagePackStrings::ID: + func(static_cast<updateLanguagePackStrings &>(obj)); + return true; + case updateConnectionState::ID: + func(static_cast<updateConnectionState &>(obj)); + return true; + case updateTermsOfService::ID: + func(static_cast<updateTermsOfService &>(obj)); + return true; + case updateUsersNearby::ID: + func(static_cast<updateUsersNearby &>(obj)); + return true; + case updateAttachmentMenuBots::ID: + func(static_cast<updateAttachmentMenuBots &>(obj)); + return true; + case updateWebAppMessageSent::ID: + func(static_cast<updateWebAppMessageSent &>(obj)); + return true; + case updateActiveEmojiReactions::ID: + func(static_cast<updateActiveEmojiReactions &>(obj)); + return true; + case updateDefaultReactionType::ID: + func(static_cast<updateDefaultReactionType &>(obj)); + return true; + case updateDiceEmojis::ID: + func(static_cast<updateDiceEmojis &>(obj)); + return true; + case updateAnimatedEmojiMessageClicked::ID: + func(static_cast<updateAnimatedEmojiMessageClicked &>(obj)); + return true; + case updateAnimationSearchParameters::ID: + func(static_cast<updateAnimationSearchParameters &>(obj)); + return true; + case updateSuggestedActions::ID: + func(static_cast<updateSuggestedActions &>(obj)); + return true; + case updateNewInlineQuery::ID: + func(static_cast<updateNewInlineQuery &>(obj)); + return true; + case updateNewChosenInlineResult::ID: + func(static_cast<updateNewChosenInlineResult &>(obj)); + return true; + case updateNewCallbackQuery::ID: + func(static_cast<updateNewCallbackQuery &>(obj)); + return true; + case updateNewInlineCallbackQuery::ID: + func(static_cast<updateNewInlineCallbackQuery &>(obj)); + return true; + case updateNewShippingQuery::ID: + func(static_cast<updateNewShippingQuery &>(obj)); + return true; + case updateNewPreCheckoutQuery::ID: + func(static_cast<updateNewPreCheckoutQuery &>(obj)); + return true; + case updateNewCustomEvent::ID: + func(static_cast<updateNewCustomEvent &>(obj)); + return true; + case updateNewCustomQuery::ID: + func(static_cast<updateNewCustomQuery &>(obj)); + return true; + case updatePoll::ID: + func(static_cast<updatePoll &>(obj)); + return true; + case updatePollAnswer::ID: + func(static_cast<updatePollAnswer &>(obj)); + return true; + case updateChatMember::ID: + func(static_cast<updateChatMember &>(obj)); + return true; + case updateNewChatJoinRequest::ID: + func(static_cast<updateNewChatJoinRequest &>(obj)); + return true; + case updates::ID: + func(static_cast<updates &>(obj)); + return true; + case user::ID: + func(static_cast<user &>(obj)); + return true; + case userFullInfo::ID: + func(static_cast<userFullInfo &>(obj)); + return true; + case userPrivacySettingShowStatus::ID: + func(static_cast<userPrivacySettingShowStatus &>(obj)); + return true; + case userPrivacySettingShowProfilePhoto::ID: + func(static_cast<userPrivacySettingShowProfilePhoto &>(obj)); + return true; + case userPrivacySettingShowLinkInForwardedMessages::ID: + func(static_cast<userPrivacySettingShowLinkInForwardedMessages &>(obj)); + return true; + case userPrivacySettingShowPhoneNumber::ID: + func(static_cast<userPrivacySettingShowPhoneNumber &>(obj)); + return true; + case userPrivacySettingAllowChatInvites::ID: + func(static_cast<userPrivacySettingAllowChatInvites &>(obj)); + return true; + case userPrivacySettingAllowCalls::ID: + func(static_cast<userPrivacySettingAllowCalls &>(obj)); + return true; + case userPrivacySettingAllowPeerToPeerCalls::ID: + func(static_cast<userPrivacySettingAllowPeerToPeerCalls &>(obj)); + return true; + case userPrivacySettingAllowFindingByPhoneNumber::ID: + func(static_cast<userPrivacySettingAllowFindingByPhoneNumber &>(obj)); + return true; + case userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::ID: + func(static_cast<userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &>(obj)); + return true; + case userPrivacySettingRuleAllowAll::ID: + func(static_cast<userPrivacySettingRuleAllowAll &>(obj)); + return true; + case userPrivacySettingRuleAllowContacts::ID: + func(static_cast<userPrivacySettingRuleAllowContacts &>(obj)); + return true; + case userPrivacySettingRuleAllowUsers::ID: + func(static_cast<userPrivacySettingRuleAllowUsers &>(obj)); + return true; + case userPrivacySettingRuleAllowChatMembers::ID: + func(static_cast<userPrivacySettingRuleAllowChatMembers &>(obj)); + return true; + case userPrivacySettingRuleRestrictAll::ID: + func(static_cast<userPrivacySettingRuleRestrictAll &>(obj)); + return true; + case userPrivacySettingRuleRestrictContacts::ID: + func(static_cast<userPrivacySettingRuleRestrictContacts &>(obj)); + return true; + case userPrivacySettingRuleRestrictUsers::ID: + func(static_cast<userPrivacySettingRuleRestrictUsers &>(obj)); + return true; + case userPrivacySettingRuleRestrictChatMembers::ID: + func(static_cast<userPrivacySettingRuleRestrictChatMembers &>(obj)); + return true; + case userPrivacySettingRules::ID: + func(static_cast<userPrivacySettingRules &>(obj)); + return true; + case userStatusEmpty::ID: + func(static_cast<userStatusEmpty &>(obj)); + return true; + case userStatusOnline::ID: + func(static_cast<userStatusOnline &>(obj)); + return true; + case userStatusOffline::ID: + func(static_cast<userStatusOffline &>(obj)); + return true; + case userStatusRecently::ID: + func(static_cast<userStatusRecently &>(obj)); + return true; + case userStatusLastWeek::ID: + func(static_cast<userStatusLastWeek &>(obj)); + return true; + case userStatusLastMonth::ID: + func(static_cast<userStatusLastMonth &>(obj)); + return true; + case userSupportInfo::ID: + func(static_cast<userSupportInfo &>(obj)); + return true; + case userTypeRegular::ID: + func(static_cast<userTypeRegular &>(obj)); + return true; + case userTypeDeleted::ID: + func(static_cast<userTypeDeleted &>(obj)); + return true; + case userTypeBot::ID: + func(static_cast<userTypeBot &>(obj)); + return true; + case userTypeUnknown::ID: + func(static_cast<userTypeUnknown &>(obj)); + return true; + case usernames::ID: + func(static_cast<usernames &>(obj)); + return true; + case users::ID: + func(static_cast<users &>(obj)); + return true; + case validatedOrderInfo::ID: + func(static_cast<validatedOrderInfo &>(obj)); + return true; + case vectorPathCommandLine::ID: + func(static_cast<vectorPathCommandLine &>(obj)); + return true; + case vectorPathCommandCubicBezierCurve::ID: + func(static_cast<vectorPathCommandCubicBezierCurve &>(obj)); + return true; + case venue::ID: + func(static_cast<venue &>(obj)); + return true; + case video::ID: + func(static_cast<video &>(obj)); + return true; + case videoChat::ID: + func(static_cast<videoChat &>(obj)); + return true; + case videoNote::ID: + func(static_cast<videoNote &>(obj)); + return true; + case voiceNote::ID: + func(static_cast<voiceNote &>(obj)); + return true; + case webAppInfo::ID: + func(static_cast<webAppInfo &>(obj)); + return true; + case webPage::ID: + func(static_cast<webPage &>(obj)); + return true; + case webPageInstantView::ID: + func(static_cast<webPageInstantView &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Function &obj, const T &func) { + switch (obj.get_id()) { + case acceptCall::ID: + func(static_cast<acceptCall &>(obj)); + return true; + case acceptTermsOfService::ID: + func(static_cast<acceptTermsOfService &>(obj)); + return true; + case addChatMember::ID: + func(static_cast<addChatMember &>(obj)); + return true; + case addChatMembers::ID: + func(static_cast<addChatMembers &>(obj)); + return true; + case addChatToList::ID: + func(static_cast<addChatToList &>(obj)); + return true; + case addContact::ID: + func(static_cast<addContact &>(obj)); + return true; + case addCustomServerLanguagePack::ID: + func(static_cast<addCustomServerLanguagePack &>(obj)); + return true; + case addFavoriteSticker::ID: + func(static_cast<addFavoriteSticker &>(obj)); + return true; + case addFileToDownloads::ID: + func(static_cast<addFileToDownloads &>(obj)); + return true; + case addLocalMessage::ID: + func(static_cast<addLocalMessage &>(obj)); + return true; + case addLogMessage::ID: + func(static_cast<addLogMessage &>(obj)); + return true; + case addMessageReaction::ID: + func(static_cast<addMessageReaction &>(obj)); + return true; + case addNetworkStatistics::ID: + func(static_cast<addNetworkStatistics &>(obj)); + return true; + case addProxy::ID: + func(static_cast<addProxy &>(obj)); + return true; + case addRecentSticker::ID: + func(static_cast<addRecentSticker &>(obj)); + return true; + case addRecentlyFoundChat::ID: + func(static_cast<addRecentlyFoundChat &>(obj)); + return true; + case addSavedAnimation::ID: + func(static_cast<addSavedAnimation &>(obj)); + return true; + case addSavedNotificationSound::ID: + func(static_cast<addSavedNotificationSound &>(obj)); + return true; + case addStickerToSet::ID: + func(static_cast<addStickerToSet &>(obj)); + return true; + case answerCallbackQuery::ID: + func(static_cast<answerCallbackQuery &>(obj)); + return true; + case answerCustomQuery::ID: + func(static_cast<answerCustomQuery &>(obj)); + return true; + case answerInlineQuery::ID: + func(static_cast<answerInlineQuery &>(obj)); + return true; + case answerPreCheckoutQuery::ID: + func(static_cast<answerPreCheckoutQuery &>(obj)); + return true; + case answerShippingQuery::ID: + func(static_cast<answerShippingQuery &>(obj)); + return true; + case answerWebAppQuery::ID: + func(static_cast<answerWebAppQuery &>(obj)); + return true; + case assignAppStoreTransaction::ID: + func(static_cast<assignAppStoreTransaction &>(obj)); + return true; + case assignGooglePlayTransaction::ID: + func(static_cast<assignGooglePlayTransaction &>(obj)); + return true; + case banChatMember::ID: + func(static_cast<banChatMember &>(obj)); + return true; + case blockMessageSenderFromReplies::ID: + func(static_cast<blockMessageSenderFromReplies &>(obj)); + return true; + case canPurchasePremium::ID: + func(static_cast<canPurchasePremium &>(obj)); + return true; + case canTransferOwnership::ID: + func(static_cast<canTransferOwnership &>(obj)); + return true; + case cancelDownloadFile::ID: + func(static_cast<cancelDownloadFile &>(obj)); + return true; + case cancelPasswordReset::ID: + func(static_cast<cancelPasswordReset &>(obj)); + return true; + case cancelPreliminaryUploadFile::ID: + func(static_cast<cancelPreliminaryUploadFile &>(obj)); + return true; + case changeImportedContacts::ID: + func(static_cast<changeImportedContacts &>(obj)); + return true; + case changePhoneNumber::ID: + func(static_cast<changePhoneNumber &>(obj)); + return true; + case changeStickerSet::ID: + func(static_cast<changeStickerSet &>(obj)); + return true; + case checkAuthenticationBotToken::ID: + func(static_cast<checkAuthenticationBotToken &>(obj)); + return true; + case checkAuthenticationCode::ID: + func(static_cast<checkAuthenticationCode &>(obj)); + return true; + case checkAuthenticationEmailCode::ID: + func(static_cast<checkAuthenticationEmailCode &>(obj)); + return true; + case checkAuthenticationPassword::ID: + func(static_cast<checkAuthenticationPassword &>(obj)); + return true; + case checkAuthenticationPasswordRecoveryCode::ID: + func(static_cast<checkAuthenticationPasswordRecoveryCode &>(obj)); + return true; + case checkChangePhoneNumberCode::ID: + func(static_cast<checkChangePhoneNumberCode &>(obj)); + return true; + case checkChatInviteLink::ID: + func(static_cast<checkChatInviteLink &>(obj)); + return true; + case checkChatUsername::ID: + func(static_cast<checkChatUsername &>(obj)); + return true; + case checkCreatedPublicChatsLimit::ID: + func(static_cast<checkCreatedPublicChatsLimit &>(obj)); + return true; + case checkEmailAddressVerificationCode::ID: + func(static_cast<checkEmailAddressVerificationCode &>(obj)); + return true; + case checkLoginEmailAddressCode::ID: + func(static_cast<checkLoginEmailAddressCode &>(obj)); + return true; + case checkPasswordRecoveryCode::ID: + func(static_cast<checkPasswordRecoveryCode &>(obj)); + return true; + case checkPhoneNumberConfirmationCode::ID: + func(static_cast<checkPhoneNumberConfirmationCode &>(obj)); + return true; + case checkPhoneNumberVerificationCode::ID: + func(static_cast<checkPhoneNumberVerificationCode &>(obj)); + return true; + case checkRecoveryEmailAddressCode::ID: + func(static_cast<checkRecoveryEmailAddressCode &>(obj)); + return true; + case checkStickerSetName::ID: + func(static_cast<checkStickerSetName &>(obj)); + return true; + case cleanFileName::ID: + func(static_cast<cleanFileName &>(obj)); + return true; + case clearAllDraftMessages::ID: + func(static_cast<clearAllDraftMessages &>(obj)); + return true; + case clearImportedContacts::ID: + func(static_cast<clearImportedContacts &>(obj)); + return true; + case clearRecentEmojiStatuses::ID: + func(static_cast<clearRecentEmojiStatuses &>(obj)); + return true; + case clearRecentReactions::ID: + func(static_cast<clearRecentReactions &>(obj)); + return true; + case clearRecentStickers::ID: + func(static_cast<clearRecentStickers &>(obj)); + return true; + case clearRecentlyFoundChats::ID: + func(static_cast<clearRecentlyFoundChats &>(obj)); + return true; + case clickAnimatedEmojiMessage::ID: + func(static_cast<clickAnimatedEmojiMessage &>(obj)); + return true; + case clickPremiumSubscriptionButton::ID: + func(static_cast<clickPremiumSubscriptionButton &>(obj)); + return true; + case close::ID: + func(static_cast<close &>(obj)); + return true; + case closeChat::ID: + func(static_cast<closeChat &>(obj)); + return true; + case closeSecretChat::ID: + func(static_cast<closeSecretChat &>(obj)); + return true; + case closeWebApp::ID: + func(static_cast<closeWebApp &>(obj)); + return true; + case confirmQrCodeAuthentication::ID: + func(static_cast<confirmQrCodeAuthentication &>(obj)); + return true; + case createBasicGroupChat::ID: + func(static_cast<createBasicGroupChat &>(obj)); + return true; + case createCall::ID: + func(static_cast<createCall &>(obj)); + return true; + case createChatFilter::ID: + func(static_cast<createChatFilter &>(obj)); + return true; + case createChatInviteLink::ID: + func(static_cast<createChatInviteLink &>(obj)); + return true; + case createForumTopic::ID: + func(static_cast<createForumTopic &>(obj)); + return true; + case createInvoiceLink::ID: + func(static_cast<createInvoiceLink &>(obj)); + return true; + case createNewBasicGroupChat::ID: + func(static_cast<createNewBasicGroupChat &>(obj)); + return true; + case createNewSecretChat::ID: + func(static_cast<createNewSecretChat &>(obj)); + return true; + case createNewStickerSet::ID: + func(static_cast<createNewStickerSet &>(obj)); + return true; + case createNewSupergroupChat::ID: + func(static_cast<createNewSupergroupChat &>(obj)); + return true; + case createPrivateChat::ID: + func(static_cast<createPrivateChat &>(obj)); + return true; + case createSecretChat::ID: + func(static_cast<createSecretChat &>(obj)); + return true; + case createSupergroupChat::ID: + func(static_cast<createSupergroupChat &>(obj)); + return true; + case createTemporaryPassword::ID: + func(static_cast<createTemporaryPassword &>(obj)); + return true; + case createVideoChat::ID: + func(static_cast<createVideoChat &>(obj)); + return true; + case deleteAccount::ID: + func(static_cast<deleteAccount &>(obj)); + return true; + case deleteAllCallMessages::ID: + func(static_cast<deleteAllCallMessages &>(obj)); + return true; + case deleteAllRevokedChatInviteLinks::ID: + func(static_cast<deleteAllRevokedChatInviteLinks &>(obj)); + return true; + case deleteChat::ID: + func(static_cast<deleteChat &>(obj)); + return true; + case deleteChatFilter::ID: + func(static_cast<deleteChatFilter &>(obj)); + return true; + case deleteChatHistory::ID: + func(static_cast<deleteChatHistory &>(obj)); + return true; + case deleteChatMessagesByDate::ID: + func(static_cast<deleteChatMessagesByDate &>(obj)); + return true; + case deleteChatMessagesBySender::ID: + func(static_cast<deleteChatMessagesBySender &>(obj)); + return true; + case deleteChatReplyMarkup::ID: + func(static_cast<deleteChatReplyMarkup &>(obj)); + return true; + case deleteCommands::ID: + func(static_cast<deleteCommands &>(obj)); + return true; + case deleteFile::ID: + func(static_cast<deleteFile &>(obj)); + return true; + case deleteForumTopic::ID: + func(static_cast<deleteForumTopic &>(obj)); + return true; + case deleteLanguagePack::ID: + func(static_cast<deleteLanguagePack &>(obj)); + return true; + case deleteMessages::ID: + func(static_cast<deleteMessages &>(obj)); + return true; + case deletePassportElement::ID: + func(static_cast<deletePassportElement &>(obj)); + return true; + case deleteProfilePhoto::ID: + func(static_cast<deleteProfilePhoto &>(obj)); + return true; + case deleteRevokedChatInviteLink::ID: + func(static_cast<deleteRevokedChatInviteLink &>(obj)); + return true; + case deleteSavedCredentials::ID: + func(static_cast<deleteSavedCredentials &>(obj)); + return true; + case deleteSavedOrderInfo::ID: + func(static_cast<deleteSavedOrderInfo &>(obj)); + return true; + case destroy::ID: + func(static_cast<destroy &>(obj)); + return true; + case disableAllSupergroupUsernames::ID: + func(static_cast<disableAllSupergroupUsernames &>(obj)); + return true; + case disableProxy::ID: + func(static_cast<disableProxy &>(obj)); + return true; + case discardCall::ID: + func(static_cast<discardCall &>(obj)); + return true; + case disconnectAllWebsites::ID: + func(static_cast<disconnectAllWebsites &>(obj)); + return true; + case disconnectWebsite::ID: + func(static_cast<disconnectWebsite &>(obj)); + return true; + case downloadFile::ID: + func(static_cast<downloadFile &>(obj)); + return true; + case editChatFilter::ID: + func(static_cast<editChatFilter &>(obj)); + return true; + case editChatInviteLink::ID: + func(static_cast<editChatInviteLink &>(obj)); + return true; + case editCustomLanguagePackInfo::ID: + func(static_cast<editCustomLanguagePackInfo &>(obj)); + return true; + case editForumTopic::ID: + func(static_cast<editForumTopic &>(obj)); + return true; + case editInlineMessageCaption::ID: + func(static_cast<editInlineMessageCaption &>(obj)); + return true; + case editInlineMessageLiveLocation::ID: + func(static_cast<editInlineMessageLiveLocation &>(obj)); + return true; + case editInlineMessageMedia::ID: + func(static_cast<editInlineMessageMedia &>(obj)); + return true; + case editInlineMessageReplyMarkup::ID: + func(static_cast<editInlineMessageReplyMarkup &>(obj)); + return true; + case editInlineMessageText::ID: + func(static_cast<editInlineMessageText &>(obj)); + return true; + case editMessageCaption::ID: + func(static_cast<editMessageCaption &>(obj)); + return true; + case editMessageLiveLocation::ID: + func(static_cast<editMessageLiveLocation &>(obj)); + return true; + case editMessageMedia::ID: + func(static_cast<editMessageMedia &>(obj)); + return true; + case editMessageReplyMarkup::ID: + func(static_cast<editMessageReplyMarkup &>(obj)); + return true; + case editMessageSchedulingState::ID: + func(static_cast<editMessageSchedulingState &>(obj)); + return true; + case editMessageText::ID: + func(static_cast<editMessageText &>(obj)); + return true; + case editProxy::ID: + func(static_cast<editProxy &>(obj)); + return true; + case enableProxy::ID: + func(static_cast<enableProxy &>(obj)); + return true; + case endGroupCall::ID: + func(static_cast<endGroupCall &>(obj)); + return true; + case endGroupCallRecording::ID: + func(static_cast<endGroupCallRecording &>(obj)); + return true; + case endGroupCallScreenSharing::ID: + func(static_cast<endGroupCallScreenSharing &>(obj)); + return true; + case finishFileGeneration::ID: + func(static_cast<finishFileGeneration &>(obj)); + return true; + case forwardMessages::ID: + func(static_cast<forwardMessages &>(obj)); + return true; + case getAccountTtl::ID: + func(static_cast<getAccountTtl &>(obj)); + return true; + case getActiveLiveLocationMessages::ID: + func(static_cast<getActiveLiveLocationMessages &>(obj)); + return true; + case getActiveSessions::ID: + func(static_cast<getActiveSessions &>(obj)); + return true; + case getAllPassportElements::ID: + func(static_cast<getAllPassportElements &>(obj)); + return true; + case getAnimatedEmoji::ID: + func(static_cast<getAnimatedEmoji &>(obj)); + return true; + case getApplicationConfig::ID: + func(static_cast<getApplicationConfig &>(obj)); + return true; + case getApplicationDownloadLink::ID: + func(static_cast<getApplicationDownloadLink &>(obj)); + return true; + case getArchivedStickerSets::ID: + func(static_cast<getArchivedStickerSets &>(obj)); + return true; + case getAttachedStickerSets::ID: + func(static_cast<getAttachedStickerSets &>(obj)); + return true; + case getAttachmentMenuBot::ID: + func(static_cast<getAttachmentMenuBot &>(obj)); + return true; + case getAuthorizationState::ID: + func(static_cast<getAuthorizationState &>(obj)); + return true; + case getAutoDownloadSettingsPresets::ID: + func(static_cast<getAutoDownloadSettingsPresets &>(obj)); + return true; + case getBackgroundUrl::ID: + func(static_cast<getBackgroundUrl &>(obj)); + return true; + case getBackgrounds::ID: + func(static_cast<getBackgrounds &>(obj)); + return true; + case getBankCardInfo::ID: + func(static_cast<getBankCardInfo &>(obj)); + return true; + case getBasicGroup::ID: + func(static_cast<getBasicGroup &>(obj)); + return true; + case getBasicGroupFullInfo::ID: + func(static_cast<getBasicGroupFullInfo &>(obj)); + return true; + case getBlockedMessageSenders::ID: + func(static_cast<getBlockedMessageSenders &>(obj)); + return true; + case getCallbackQueryAnswer::ID: + func(static_cast<getCallbackQueryAnswer &>(obj)); + return true; + case getCallbackQueryMessage::ID: + func(static_cast<getCallbackQueryMessage &>(obj)); + return true; + case getChat::ID: + func(static_cast<getChat &>(obj)); + return true; + case getChatAdministrators::ID: + func(static_cast<getChatAdministrators &>(obj)); + return true; + case getChatAvailableMessageSenders::ID: + func(static_cast<getChatAvailableMessageSenders &>(obj)); + return true; + case getChatEventLog::ID: + func(static_cast<getChatEventLog &>(obj)); + return true; + case getChatFilter::ID: + func(static_cast<getChatFilter &>(obj)); + return true; + case getChatFilterDefaultIconName::ID: + func(static_cast<getChatFilterDefaultIconName &>(obj)); + return true; + case getChatHistory::ID: + func(static_cast<getChatHistory &>(obj)); + return true; + case getChatInviteLink::ID: + func(static_cast<getChatInviteLink &>(obj)); + return true; + case getChatInviteLinkCounts::ID: + func(static_cast<getChatInviteLinkCounts &>(obj)); + return true; + case getChatInviteLinkMembers::ID: + func(static_cast<getChatInviteLinkMembers &>(obj)); + return true; + case getChatInviteLinks::ID: + func(static_cast<getChatInviteLinks &>(obj)); + return true; + case getChatJoinRequests::ID: + func(static_cast<getChatJoinRequests &>(obj)); + return true; + case getChatListsToAddChat::ID: + func(static_cast<getChatListsToAddChat &>(obj)); + return true; + case getChatMember::ID: + func(static_cast<getChatMember &>(obj)); + return true; + case getChatMessageByDate::ID: + func(static_cast<getChatMessageByDate &>(obj)); + return true; + case getChatMessageCalendar::ID: + func(static_cast<getChatMessageCalendar &>(obj)); + return true; + case getChatMessageCount::ID: + func(static_cast<getChatMessageCount &>(obj)); + return true; + case getChatMessagePosition::ID: + func(static_cast<getChatMessagePosition &>(obj)); + return true; + case getChatNotificationSettingsExceptions::ID: + func(static_cast<getChatNotificationSettingsExceptions &>(obj)); + return true; + case getChatPinnedMessage::ID: + func(static_cast<getChatPinnedMessage &>(obj)); + return true; + case getChatScheduledMessages::ID: + func(static_cast<getChatScheduledMessages &>(obj)); + return true; + case getChatSparseMessagePositions::ID: + func(static_cast<getChatSparseMessagePositions &>(obj)); + return true; + case getChatSponsoredMessages::ID: + func(static_cast<getChatSponsoredMessages &>(obj)); + return true; + case getChatStatistics::ID: + func(static_cast<getChatStatistics &>(obj)); + return true; + case getChats::ID: + func(static_cast<getChats &>(obj)); + return true; + case getCommands::ID: + func(static_cast<getCommands &>(obj)); + return true; + case getConnectedWebsites::ID: + func(static_cast<getConnectedWebsites &>(obj)); + return true; + case getContacts::ID: + func(static_cast<getContacts &>(obj)); + return true; + case getCountries::ID: + func(static_cast<getCountries &>(obj)); + return true; + case getCountryCode::ID: + func(static_cast<getCountryCode &>(obj)); + return true; + case getCreatedPublicChats::ID: + func(static_cast<getCreatedPublicChats &>(obj)); + return true; + case getCurrentState::ID: + func(static_cast<getCurrentState &>(obj)); + return true; + case getCustomEmojiReactionAnimations::ID: + func(static_cast<getCustomEmojiReactionAnimations &>(obj)); + return true; + case getCustomEmojiStickers::ID: + func(static_cast<getCustomEmojiStickers &>(obj)); + return true; + case getDatabaseStatistics::ID: + func(static_cast<getDatabaseStatistics &>(obj)); + return true; + case getDeepLinkInfo::ID: + func(static_cast<getDeepLinkInfo &>(obj)); + return true; + case getDefaultEmojiStatuses::ID: + func(static_cast<getDefaultEmojiStatuses &>(obj)); + return true; + case getEmojiReaction::ID: + func(static_cast<getEmojiReaction &>(obj)); + return true; + case getEmojiSuggestionsUrl::ID: + func(static_cast<getEmojiSuggestionsUrl &>(obj)); + return true; + case getExternalLink::ID: + func(static_cast<getExternalLink &>(obj)); + return true; + case getExternalLinkInfo::ID: + func(static_cast<getExternalLinkInfo &>(obj)); + return true; + case getFavoriteStickers::ID: + func(static_cast<getFavoriteStickers &>(obj)); + return true; + case getFile::ID: + func(static_cast<getFile &>(obj)); + return true; + case getFileDownloadedPrefixSize::ID: + func(static_cast<getFileDownloadedPrefixSize &>(obj)); + return true; + case getFileExtension::ID: + func(static_cast<getFileExtension &>(obj)); + return true; + case getFileMimeType::ID: + func(static_cast<getFileMimeType &>(obj)); + return true; + case getForumTopicDefaultIcons::ID: + func(static_cast<getForumTopicDefaultIcons &>(obj)); + return true; + case getGameHighScores::ID: + func(static_cast<getGameHighScores &>(obj)); + return true; + case getGroupCall::ID: + func(static_cast<getGroupCall &>(obj)); + return true; + case getGroupCallInviteLink::ID: + func(static_cast<getGroupCallInviteLink &>(obj)); + return true; + case getGroupCallStreamSegment::ID: + func(static_cast<getGroupCallStreamSegment &>(obj)); + return true; + case getGroupCallStreams::ID: + func(static_cast<getGroupCallStreams &>(obj)); + return true; + case getGroupsInCommon::ID: + func(static_cast<getGroupsInCommon &>(obj)); + return true; + case getImportedContactCount::ID: + func(static_cast<getImportedContactCount &>(obj)); + return true; + case getInactiveSupergroupChats::ID: + func(static_cast<getInactiveSupergroupChats &>(obj)); + return true; + case getInlineGameHighScores::ID: + func(static_cast<getInlineGameHighScores &>(obj)); + return true; + case getInlineQueryResults::ID: + func(static_cast<getInlineQueryResults &>(obj)); + return true; + case getInstalledStickerSets::ID: + func(static_cast<getInstalledStickerSets &>(obj)); + return true; + case getInternalLinkType::ID: + func(static_cast<getInternalLinkType &>(obj)); + return true; + case getJsonString::ID: + func(static_cast<getJsonString &>(obj)); + return true; + case getJsonValue::ID: + func(static_cast<getJsonValue &>(obj)); + return true; + case getLanguagePackInfo::ID: + func(static_cast<getLanguagePackInfo &>(obj)); + return true; + case getLanguagePackString::ID: + func(static_cast<getLanguagePackString &>(obj)); + return true; + case getLanguagePackStrings::ID: + func(static_cast<getLanguagePackStrings &>(obj)); + return true; + case getLocalizationTargetInfo::ID: + func(static_cast<getLocalizationTargetInfo &>(obj)); + return true; + case getLogStream::ID: + func(static_cast<getLogStream &>(obj)); + return true; + case getLogTagVerbosityLevel::ID: + func(static_cast<getLogTagVerbosityLevel &>(obj)); + return true; + case getLogTags::ID: + func(static_cast<getLogTags &>(obj)); + return true; + case getLogVerbosityLevel::ID: + func(static_cast<getLogVerbosityLevel &>(obj)); + return true; + case getLoginUrl::ID: + func(static_cast<getLoginUrl &>(obj)); + return true; + case getLoginUrlInfo::ID: + func(static_cast<getLoginUrlInfo &>(obj)); + return true; + case getMapThumbnailFile::ID: + func(static_cast<getMapThumbnailFile &>(obj)); + return true; + case getMarkdownText::ID: + func(static_cast<getMarkdownText &>(obj)); + return true; + case getMe::ID: + func(static_cast<getMe &>(obj)); + return true; + case getMenuButton::ID: + func(static_cast<getMenuButton &>(obj)); + return true; + case getMessage::ID: + func(static_cast<getMessage &>(obj)); + return true; + case getMessageAddedReactions::ID: + func(static_cast<getMessageAddedReactions &>(obj)); + return true; + case getMessageAvailableReactions::ID: + func(static_cast<getMessageAvailableReactions &>(obj)); + return true; + case getMessageEmbeddingCode::ID: + func(static_cast<getMessageEmbeddingCode &>(obj)); + return true; + case getMessageFileType::ID: + func(static_cast<getMessageFileType &>(obj)); + return true; + case getMessageImportConfirmationText::ID: + func(static_cast<getMessageImportConfirmationText &>(obj)); + return true; + case getMessageLink::ID: + func(static_cast<getMessageLink &>(obj)); + return true; + case getMessageLinkInfo::ID: + func(static_cast<getMessageLinkInfo &>(obj)); + return true; + case getMessageLocally::ID: + func(static_cast<getMessageLocally &>(obj)); + return true; + case getMessagePublicForwards::ID: + func(static_cast<getMessagePublicForwards &>(obj)); + return true; + case getMessageStatistics::ID: + func(static_cast<getMessageStatistics &>(obj)); + return true; + case getMessageThread::ID: + func(static_cast<getMessageThread &>(obj)); + return true; + case getMessageThreadHistory::ID: + func(static_cast<getMessageThreadHistory &>(obj)); + return true; + case getMessageViewers::ID: + func(static_cast<getMessageViewers &>(obj)); + return true; + case getMessages::ID: + func(static_cast<getMessages &>(obj)); + return true; + case getNetworkStatistics::ID: + func(static_cast<getNetworkStatistics &>(obj)); + return true; + case getOption::ID: + func(static_cast<getOption &>(obj)); + return true; + case getPassportAuthorizationForm::ID: + func(static_cast<getPassportAuthorizationForm &>(obj)); + return true; + case getPassportAuthorizationFormAvailableElements::ID: + func(static_cast<getPassportAuthorizationFormAvailableElements &>(obj)); + return true; + case getPassportElement::ID: + func(static_cast<getPassportElement &>(obj)); + return true; + case getPasswordState::ID: + func(static_cast<getPasswordState &>(obj)); + return true; + case getPaymentForm::ID: + func(static_cast<getPaymentForm &>(obj)); + return true; + case getPaymentReceipt::ID: + func(static_cast<getPaymentReceipt &>(obj)); + return true; + case getPhoneNumberInfo::ID: + func(static_cast<getPhoneNumberInfo &>(obj)); + return true; + case getPhoneNumberInfoSync::ID: + func(static_cast<getPhoneNumberInfoSync &>(obj)); + return true; + case getPollVoters::ID: + func(static_cast<getPollVoters &>(obj)); + return true; + case getPreferredCountryLanguage::ID: + func(static_cast<getPreferredCountryLanguage &>(obj)); + return true; + case getPremiumFeatures::ID: + func(static_cast<getPremiumFeatures &>(obj)); + return true; + case getPremiumLimit::ID: + func(static_cast<getPremiumLimit &>(obj)); + return true; + case getPremiumState::ID: + func(static_cast<getPremiumState &>(obj)); + return true; + case getPremiumStickerExamples::ID: + func(static_cast<getPremiumStickerExamples &>(obj)); + return true; + case getPremiumStickers::ID: + func(static_cast<getPremiumStickers &>(obj)); + return true; + case getProxies::ID: + func(static_cast<getProxies &>(obj)); + return true; + case getProxyLink::ID: + func(static_cast<getProxyLink &>(obj)); + return true; + case getPushReceiverId::ID: + func(static_cast<getPushReceiverId &>(obj)); + return true; + case getRecentEmojiStatuses::ID: + func(static_cast<getRecentEmojiStatuses &>(obj)); + return true; + case getRecentInlineBots::ID: + func(static_cast<getRecentInlineBots &>(obj)); + return true; + case getRecentStickers::ID: + func(static_cast<getRecentStickers &>(obj)); + return true; + case getRecentlyOpenedChats::ID: + func(static_cast<getRecentlyOpenedChats &>(obj)); + return true; + case getRecentlyVisitedTMeUrls::ID: + func(static_cast<getRecentlyVisitedTMeUrls &>(obj)); + return true; + case getRecommendedChatFilters::ID: + func(static_cast<getRecommendedChatFilters &>(obj)); + return true; + case getRecoveryEmailAddress::ID: + func(static_cast<getRecoveryEmailAddress &>(obj)); + return true; + case getRemoteFile::ID: + func(static_cast<getRemoteFile &>(obj)); + return true; + case getRepliedMessage::ID: + func(static_cast<getRepliedMessage &>(obj)); + return true; + case getSavedAnimations::ID: + func(static_cast<getSavedAnimations &>(obj)); + return true; + case getSavedNotificationSound::ID: + func(static_cast<getSavedNotificationSound &>(obj)); + return true; + case getSavedNotificationSounds::ID: + func(static_cast<getSavedNotificationSounds &>(obj)); + return true; + case getSavedOrderInfo::ID: + func(static_cast<getSavedOrderInfo &>(obj)); + return true; + case getScopeNotificationSettings::ID: + func(static_cast<getScopeNotificationSettings &>(obj)); + return true; + case getSecretChat::ID: + func(static_cast<getSecretChat &>(obj)); + return true; + case getStatisticalGraph::ID: + func(static_cast<getStatisticalGraph &>(obj)); + return true; + case getStickerEmojis::ID: + func(static_cast<getStickerEmojis &>(obj)); + return true; + case getStickerSet::ID: + func(static_cast<getStickerSet &>(obj)); + return true; + case getStickers::ID: + func(static_cast<getStickers &>(obj)); + return true; + case getStorageStatistics::ID: + func(static_cast<getStorageStatistics &>(obj)); + return true; + case getStorageStatisticsFast::ID: + func(static_cast<getStorageStatisticsFast &>(obj)); + return true; + case getSuggestedFileName::ID: + func(static_cast<getSuggestedFileName &>(obj)); + return true; + case getSuggestedStickerSetName::ID: + func(static_cast<getSuggestedStickerSetName &>(obj)); + return true; + case getSuitableDiscussionChats::ID: + func(static_cast<getSuitableDiscussionChats &>(obj)); + return true; + case getSupergroup::ID: + func(static_cast<getSupergroup &>(obj)); + return true; + case getSupergroupFullInfo::ID: + func(static_cast<getSupergroupFullInfo &>(obj)); + return true; + case getSupergroupMembers::ID: + func(static_cast<getSupergroupMembers &>(obj)); + return true; + case getSupportUser::ID: + func(static_cast<getSupportUser &>(obj)); + return true; + case getTemporaryPasswordState::ID: + func(static_cast<getTemporaryPasswordState &>(obj)); + return true; + case getTextEntities::ID: + func(static_cast<getTextEntities &>(obj)); + return true; + case getThemeParametersJsonString::ID: + func(static_cast<getThemeParametersJsonString &>(obj)); + return true; + case getThemedEmojiStatuses::ID: + func(static_cast<getThemedEmojiStatuses &>(obj)); + return true; + case getTopChats::ID: + func(static_cast<getTopChats &>(obj)); + return true; + case getTrendingStickerSets::ID: + func(static_cast<getTrendingStickerSets &>(obj)); + return true; + case getUser::ID: + func(static_cast<getUser &>(obj)); + return true; + case getUserFullInfo::ID: + func(static_cast<getUserFullInfo &>(obj)); + return true; + case getUserPrivacySettingRules::ID: + func(static_cast<getUserPrivacySettingRules &>(obj)); + return true; + case getUserProfilePhotos::ID: + func(static_cast<getUserProfilePhotos &>(obj)); + return true; + case getUserSupportInfo::ID: + func(static_cast<getUserSupportInfo &>(obj)); + return true; + case getVideoChatAvailableParticipants::ID: + func(static_cast<getVideoChatAvailableParticipants &>(obj)); + return true; + case getVideoChatRtmpUrl::ID: + func(static_cast<getVideoChatRtmpUrl &>(obj)); + return true; + case getWebAppUrl::ID: + func(static_cast<getWebAppUrl &>(obj)); + return true; + case getWebPageInstantView::ID: + func(static_cast<getWebPageInstantView &>(obj)); + return true; + case getWebPagePreview::ID: + func(static_cast<getWebPagePreview &>(obj)); + return true; + case hideSuggestedAction::ID: + func(static_cast<hideSuggestedAction &>(obj)); + return true; + case importContacts::ID: + func(static_cast<importContacts &>(obj)); + return true; + case importMessages::ID: + func(static_cast<importMessages &>(obj)); + return true; + case inviteGroupCallParticipants::ID: + func(static_cast<inviteGroupCallParticipants &>(obj)); + return true; + case joinChat::ID: + func(static_cast<joinChat &>(obj)); + return true; + case joinChatByInviteLink::ID: + func(static_cast<joinChatByInviteLink &>(obj)); + return true; + case joinGroupCall::ID: + func(static_cast<joinGroupCall &>(obj)); + return true; + case leaveChat::ID: + func(static_cast<leaveChat &>(obj)); + return true; + case leaveGroupCall::ID: + func(static_cast<leaveGroupCall &>(obj)); + return true; + case loadChats::ID: + func(static_cast<loadChats &>(obj)); + return true; + case loadGroupCallParticipants::ID: + func(static_cast<loadGroupCallParticipants &>(obj)); + return true; + case logOut::ID: + func(static_cast<logOut &>(obj)); + return true; + case openChat::ID: + func(static_cast<openChat &>(obj)); + return true; + case openMessageContent::ID: + func(static_cast<openMessageContent &>(obj)); + return true; + case openWebApp::ID: + func(static_cast<openWebApp &>(obj)); + return true; + case optimizeStorage::ID: + func(static_cast<optimizeStorage &>(obj)); + return true; + case parseMarkdown::ID: + func(static_cast<parseMarkdown &>(obj)); + return true; + case parseTextEntities::ID: + func(static_cast<parseTextEntities &>(obj)); + return true; + case pinChatMessage::ID: + func(static_cast<pinChatMessage &>(obj)); + return true; + case pingProxy::ID: + func(static_cast<pingProxy &>(obj)); + return true; + case preliminaryUploadFile::ID: + func(static_cast<preliminaryUploadFile &>(obj)); + return true; + case processChatJoinRequest::ID: + func(static_cast<processChatJoinRequest &>(obj)); + return true; + case processChatJoinRequests::ID: + func(static_cast<processChatJoinRequests &>(obj)); + return true; + case processPushNotification::ID: + func(static_cast<processPushNotification &>(obj)); + return true; + case rateSpeechRecognition::ID: + func(static_cast<rateSpeechRecognition &>(obj)); + return true; + case readAllChatMentions::ID: + func(static_cast<readAllChatMentions &>(obj)); + return true; + case readAllChatReactions::ID: + func(static_cast<readAllChatReactions &>(obj)); + return true; + case readAllMessageThreadMentions::ID: + func(static_cast<readAllMessageThreadMentions &>(obj)); + return true; + case readAllMessageThreadReactions::ID: + func(static_cast<readAllMessageThreadReactions &>(obj)); + return true; + case readFilePart::ID: + func(static_cast<readFilePart &>(obj)); + return true; + case recognizeSpeech::ID: + func(static_cast<recognizeSpeech &>(obj)); + return true; + case recoverAuthenticationPassword::ID: + func(static_cast<recoverAuthenticationPassword &>(obj)); + return true; + case recoverPassword::ID: + func(static_cast<recoverPassword &>(obj)); + return true; + case registerDevice::ID: + func(static_cast<registerDevice &>(obj)); + return true; + case registerUser::ID: + func(static_cast<registerUser &>(obj)); + return true; + case removeAllFilesFromDownloads::ID: + func(static_cast<removeAllFilesFromDownloads &>(obj)); + return true; + case removeBackground::ID: + func(static_cast<removeBackground &>(obj)); + return true; + case removeChatActionBar::ID: + func(static_cast<removeChatActionBar &>(obj)); + return true; + case removeContacts::ID: + func(static_cast<removeContacts &>(obj)); + return true; + case removeFavoriteSticker::ID: + func(static_cast<removeFavoriteSticker &>(obj)); + return true; + case removeFileFromDownloads::ID: + func(static_cast<removeFileFromDownloads &>(obj)); + return true; + case removeMessageReaction::ID: + func(static_cast<removeMessageReaction &>(obj)); + return true; + case removeNotification::ID: + func(static_cast<removeNotification &>(obj)); + return true; + case removeNotificationGroup::ID: + func(static_cast<removeNotificationGroup &>(obj)); + return true; + case removeProxy::ID: + func(static_cast<removeProxy &>(obj)); + return true; + case removeRecentHashtag::ID: + func(static_cast<removeRecentHashtag &>(obj)); + return true; + case removeRecentSticker::ID: + func(static_cast<removeRecentSticker &>(obj)); + return true; + case removeRecentlyFoundChat::ID: + func(static_cast<removeRecentlyFoundChat &>(obj)); + return true; + case removeSavedAnimation::ID: + func(static_cast<removeSavedAnimation &>(obj)); + return true; + case removeSavedNotificationSound::ID: + func(static_cast<removeSavedNotificationSound &>(obj)); + return true; + case removeStickerFromSet::ID: + func(static_cast<removeStickerFromSet &>(obj)); + return true; + case removeTopChat::ID: + func(static_cast<removeTopChat &>(obj)); + return true; + case reorderActiveUsernames::ID: + func(static_cast<reorderActiveUsernames &>(obj)); + return true; + case reorderChatFilters::ID: + func(static_cast<reorderChatFilters &>(obj)); + return true; + case reorderInstalledStickerSets::ID: + func(static_cast<reorderInstalledStickerSets &>(obj)); + return true; + case reorderSupergroupActiveUsernames::ID: + func(static_cast<reorderSupergroupActiveUsernames &>(obj)); + return true; + case replacePrimaryChatInviteLink::ID: + func(static_cast<replacePrimaryChatInviteLink &>(obj)); + return true; + case replaceVideoChatRtmpUrl::ID: + func(static_cast<replaceVideoChatRtmpUrl &>(obj)); + return true; + case reportChat::ID: + func(static_cast<reportChat &>(obj)); + return true; + case reportChatPhoto::ID: + func(static_cast<reportChatPhoto &>(obj)); + return true; + case reportMessageReactions::ID: + func(static_cast<reportMessageReactions &>(obj)); + return true; + case reportSupergroupSpam::ID: + func(static_cast<reportSupergroupSpam &>(obj)); + return true; + case requestAuthenticationPasswordRecovery::ID: + func(static_cast<requestAuthenticationPasswordRecovery &>(obj)); + return true; + case requestPasswordRecovery::ID: + func(static_cast<requestPasswordRecovery &>(obj)); + return true; + case requestQrCodeAuthentication::ID: + func(static_cast<requestQrCodeAuthentication &>(obj)); + return true; + case resendAuthenticationCode::ID: + func(static_cast<resendAuthenticationCode &>(obj)); + return true; + case resendChangePhoneNumberCode::ID: + func(static_cast<resendChangePhoneNumberCode &>(obj)); + return true; + case resendEmailAddressVerificationCode::ID: + func(static_cast<resendEmailAddressVerificationCode &>(obj)); + return true; + case resendLoginEmailAddressCode::ID: + func(static_cast<resendLoginEmailAddressCode &>(obj)); + return true; + case resendMessages::ID: + func(static_cast<resendMessages &>(obj)); + return true; + case resendPhoneNumberConfirmationCode::ID: + func(static_cast<resendPhoneNumberConfirmationCode &>(obj)); + return true; + case resendPhoneNumberVerificationCode::ID: + func(static_cast<resendPhoneNumberVerificationCode &>(obj)); + return true; + case resendRecoveryEmailAddressCode::ID: + func(static_cast<resendRecoveryEmailAddressCode &>(obj)); + return true; + case resetAllNotificationSettings::ID: + func(static_cast<resetAllNotificationSettings &>(obj)); + return true; + case resetBackgrounds::ID: + func(static_cast<resetBackgrounds &>(obj)); + return true; + case resetNetworkStatistics::ID: + func(static_cast<resetNetworkStatistics &>(obj)); + return true; + case resetPassword::ID: + func(static_cast<resetPassword &>(obj)); + return true; + case revokeChatInviteLink::ID: + func(static_cast<revokeChatInviteLink &>(obj)); + return true; + case revokeGroupCallInviteLink::ID: + func(static_cast<revokeGroupCallInviteLink &>(obj)); + return true; + case saveApplicationLogEvent::ID: + func(static_cast<saveApplicationLogEvent &>(obj)); + return true; + case searchBackground::ID: + func(static_cast<searchBackground &>(obj)); + return true; + case searchCallMessages::ID: + func(static_cast<searchCallMessages &>(obj)); + return true; + case searchChatMembers::ID: + func(static_cast<searchChatMembers &>(obj)); + return true; + case searchChatMessages::ID: + func(static_cast<searchChatMessages &>(obj)); + return true; + case searchChatRecentLocationMessages::ID: + func(static_cast<searchChatRecentLocationMessages &>(obj)); + return true; + case searchChats::ID: + func(static_cast<searchChats &>(obj)); + return true; + case searchChatsNearby::ID: + func(static_cast<searchChatsNearby &>(obj)); + return true; + case searchChatsOnServer::ID: + func(static_cast<searchChatsOnServer &>(obj)); + return true; + case searchContacts::ID: + func(static_cast<searchContacts &>(obj)); + return true; + case searchEmojis::ID: + func(static_cast<searchEmojis &>(obj)); + return true; + case searchFileDownloads::ID: + func(static_cast<searchFileDownloads &>(obj)); + return true; + case searchHashtags::ID: + func(static_cast<searchHashtags &>(obj)); + return true; + case searchInstalledStickerSets::ID: + func(static_cast<searchInstalledStickerSets &>(obj)); + return true; + case searchMessages::ID: + func(static_cast<searchMessages &>(obj)); + return true; + case searchOutgoingDocumentMessages::ID: + func(static_cast<searchOutgoingDocumentMessages &>(obj)); + return true; + case searchPublicChat::ID: + func(static_cast<searchPublicChat &>(obj)); + return true; + case searchPublicChats::ID: + func(static_cast<searchPublicChats &>(obj)); + return true; + case searchSecretMessages::ID: + func(static_cast<searchSecretMessages &>(obj)); + return true; + case searchStickerSet::ID: + func(static_cast<searchStickerSet &>(obj)); + return true; + case searchStickerSets::ID: + func(static_cast<searchStickerSets &>(obj)); + return true; + case searchStickers::ID: + func(static_cast<searchStickers &>(obj)); + return true; + case searchUserByPhoneNumber::ID: + func(static_cast<searchUserByPhoneNumber &>(obj)); + return true; + case sendBotStartMessage::ID: + func(static_cast<sendBotStartMessage &>(obj)); + return true; + case sendCallDebugInformation::ID: + func(static_cast<sendCallDebugInformation &>(obj)); + return true; + case sendCallLog::ID: + func(static_cast<sendCallLog &>(obj)); + return true; + case sendCallRating::ID: + func(static_cast<sendCallRating &>(obj)); + return true; + case sendCallSignalingData::ID: + func(static_cast<sendCallSignalingData &>(obj)); + return true; + case sendChatAction::ID: + func(static_cast<sendChatAction &>(obj)); + return true; + case sendChatScreenshotTakenNotification::ID: + func(static_cast<sendChatScreenshotTakenNotification &>(obj)); + return true; + case sendCustomRequest::ID: + func(static_cast<sendCustomRequest &>(obj)); + return true; + case sendEmailAddressVerificationCode::ID: + func(static_cast<sendEmailAddressVerificationCode &>(obj)); + return true; + case sendInlineQueryResultMessage::ID: + func(static_cast<sendInlineQueryResultMessage &>(obj)); + return true; + case sendMessage::ID: + func(static_cast<sendMessage &>(obj)); + return true; + case sendMessageAlbum::ID: + func(static_cast<sendMessageAlbum &>(obj)); + return true; + case sendPassportAuthorizationForm::ID: + func(static_cast<sendPassportAuthorizationForm &>(obj)); + return true; + case sendPaymentForm::ID: + func(static_cast<sendPaymentForm &>(obj)); + return true; + case sendPhoneNumberConfirmationCode::ID: + func(static_cast<sendPhoneNumberConfirmationCode &>(obj)); + return true; + case sendPhoneNumberVerificationCode::ID: + func(static_cast<sendPhoneNumberVerificationCode &>(obj)); + return true; + case sendWebAppData::ID: + func(static_cast<sendWebAppData &>(obj)); + return true; + case setAccountTtl::ID: + func(static_cast<setAccountTtl &>(obj)); + return true; + case setAlarm::ID: + func(static_cast<setAlarm &>(obj)); + return true; + case setAuthenticationEmailAddress::ID: + func(static_cast<setAuthenticationEmailAddress &>(obj)); + return true; + case setAuthenticationPhoneNumber::ID: + func(static_cast<setAuthenticationPhoneNumber &>(obj)); + return true; + case setAutoDownloadSettings::ID: + func(static_cast<setAutoDownloadSettings &>(obj)); + return true; + case setBackground::ID: + func(static_cast<setBackground &>(obj)); + return true; + case setBio::ID: + func(static_cast<setBio &>(obj)); + return true; + case setBotUpdatesStatus::ID: + func(static_cast<setBotUpdatesStatus &>(obj)); + return true; + case setChatAvailableReactions::ID: + func(static_cast<setChatAvailableReactions &>(obj)); + return true; + case setChatClientData::ID: + func(static_cast<setChatClientData &>(obj)); + return true; + case setChatDescription::ID: + func(static_cast<setChatDescription &>(obj)); + return true; + case setChatDiscussionGroup::ID: + func(static_cast<setChatDiscussionGroup &>(obj)); + return true; + case setChatDraftMessage::ID: + func(static_cast<setChatDraftMessage &>(obj)); + return true; + case setChatLocation::ID: + func(static_cast<setChatLocation &>(obj)); + return true; + case setChatMemberStatus::ID: + func(static_cast<setChatMemberStatus &>(obj)); + return true; + case setChatMessageSender::ID: + func(static_cast<setChatMessageSender &>(obj)); + return true; + case setChatMessageTtl::ID: + func(static_cast<setChatMessageTtl &>(obj)); + return true; + case setChatNotificationSettings::ID: + func(static_cast<setChatNotificationSettings &>(obj)); + return true; + case setChatPermissions::ID: + func(static_cast<setChatPermissions &>(obj)); + return true; + case setChatPhoto::ID: + func(static_cast<setChatPhoto &>(obj)); + return true; + case setChatSlowModeDelay::ID: + func(static_cast<setChatSlowModeDelay &>(obj)); + return true; + case setChatTheme::ID: + func(static_cast<setChatTheme &>(obj)); + return true; + case setChatTitle::ID: + func(static_cast<setChatTitle &>(obj)); + return true; + case setCommands::ID: + func(static_cast<setCommands &>(obj)); + return true; + case setCustomLanguagePack::ID: + func(static_cast<setCustomLanguagePack &>(obj)); + return true; + case setCustomLanguagePackString::ID: + func(static_cast<setCustomLanguagePackString &>(obj)); + return true; + case setDatabaseEncryptionKey::ID: + func(static_cast<setDatabaseEncryptionKey &>(obj)); + return true; + case setDefaultChannelAdministratorRights::ID: + func(static_cast<setDefaultChannelAdministratorRights &>(obj)); + return true; + case setDefaultGroupAdministratorRights::ID: + func(static_cast<setDefaultGroupAdministratorRights &>(obj)); + return true; + case setDefaultReactionType::ID: + func(static_cast<setDefaultReactionType &>(obj)); + return true; + case setEmojiStatus::ID: + func(static_cast<setEmojiStatus &>(obj)); + return true; + case setFileGenerationProgress::ID: + func(static_cast<setFileGenerationProgress &>(obj)); + return true; + case setGameScore::ID: + func(static_cast<setGameScore &>(obj)); + return true; + case setGroupCallParticipantIsSpeaking::ID: + func(static_cast<setGroupCallParticipantIsSpeaking &>(obj)); + return true; + case setGroupCallParticipantVolumeLevel::ID: + func(static_cast<setGroupCallParticipantVolumeLevel &>(obj)); + return true; + case setGroupCallTitle::ID: + func(static_cast<setGroupCallTitle &>(obj)); + return true; + case setInactiveSessionTtl::ID: + func(static_cast<setInactiveSessionTtl &>(obj)); + return true; + case setInlineGameScore::ID: + func(static_cast<setInlineGameScore &>(obj)); + return true; + case setLocation::ID: + func(static_cast<setLocation &>(obj)); + return true; + case setLogStream::ID: + func(static_cast<setLogStream &>(obj)); + return true; + case setLogTagVerbosityLevel::ID: + func(static_cast<setLogTagVerbosityLevel &>(obj)); + return true; + case setLogVerbosityLevel::ID: + func(static_cast<setLogVerbosityLevel &>(obj)); + return true; + case setLoginEmailAddress::ID: + func(static_cast<setLoginEmailAddress &>(obj)); + return true; + case setMenuButton::ID: + func(static_cast<setMenuButton &>(obj)); + return true; + case setName::ID: + func(static_cast<setName &>(obj)); + return true; + case setNetworkType::ID: + func(static_cast<setNetworkType &>(obj)); + return true; + case setOption::ID: + func(static_cast<setOption &>(obj)); + return true; + case setPassportElement::ID: + func(static_cast<setPassportElement &>(obj)); + return true; + case setPassportElementErrors::ID: + func(static_cast<setPassportElementErrors &>(obj)); + return true; + case setPassword::ID: + func(static_cast<setPassword &>(obj)); + return true; + case setPinnedChats::ID: + func(static_cast<setPinnedChats &>(obj)); + return true; + case setPollAnswer::ID: + func(static_cast<setPollAnswer &>(obj)); + return true; + case setProfilePhoto::ID: + func(static_cast<setProfilePhoto &>(obj)); + return true; + case setRecoveryEmailAddress::ID: + func(static_cast<setRecoveryEmailAddress &>(obj)); + return true; + case setScopeNotificationSettings::ID: + func(static_cast<setScopeNotificationSettings &>(obj)); + return true; + case setStickerPositionInSet::ID: + func(static_cast<setStickerPositionInSet &>(obj)); + return true; + case setStickerSetThumbnail::ID: + func(static_cast<setStickerSetThumbnail &>(obj)); + return true; + case setSupergroupStickerSet::ID: + func(static_cast<setSupergroupStickerSet &>(obj)); + return true; + case setSupergroupUsername::ID: + func(static_cast<setSupergroupUsername &>(obj)); + return true; + case setTdlibParameters::ID: + func(static_cast<setTdlibParameters &>(obj)); + return true; + case setUserPrivacySettingRules::ID: + func(static_cast<setUserPrivacySettingRules &>(obj)); + return true; + case setUserSupportInfo::ID: + func(static_cast<setUserSupportInfo &>(obj)); + return true; + case setUsername::ID: + func(static_cast<setUsername &>(obj)); + return true; + case setVideoChatDefaultParticipant::ID: + func(static_cast<setVideoChatDefaultParticipant &>(obj)); + return true; + case sharePhoneNumber::ID: + func(static_cast<sharePhoneNumber &>(obj)); + return true; + case startGroupCallRecording::ID: + func(static_cast<startGroupCallRecording &>(obj)); + return true; + case startGroupCallScreenSharing::ID: + func(static_cast<startGroupCallScreenSharing &>(obj)); + return true; + case startScheduledGroupCall::ID: + func(static_cast<startScheduledGroupCall &>(obj)); + return true; + case stopPoll::ID: + func(static_cast<stopPoll &>(obj)); + return true; + case synchronizeLanguagePack::ID: + func(static_cast<synchronizeLanguagePack &>(obj)); + return true; + case terminateAllOtherSessions::ID: + func(static_cast<terminateAllOtherSessions &>(obj)); + return true; + case terminateSession::ID: + func(static_cast<terminateSession &>(obj)); + return true; + case testCallBytes::ID: + func(static_cast<testCallBytes &>(obj)); + return true; + case testCallEmpty::ID: + func(static_cast<testCallEmpty &>(obj)); + return true; + case testCallString::ID: + func(static_cast<testCallString &>(obj)); + return true; + case testCallVectorInt::ID: + func(static_cast<testCallVectorInt &>(obj)); + return true; + case testCallVectorIntObject::ID: + func(static_cast<testCallVectorIntObject &>(obj)); + return true; + case testCallVectorString::ID: + func(static_cast<testCallVectorString &>(obj)); + return true; + case testCallVectorStringObject::ID: + func(static_cast<testCallVectorStringObject &>(obj)); + return true; + case testGetDifference::ID: + func(static_cast<testGetDifference &>(obj)); + return true; + case testNetwork::ID: + func(static_cast<testNetwork &>(obj)); + return true; + case testProxy::ID: + func(static_cast<testProxy &>(obj)); + return true; + case testReturnError::ID: + func(static_cast<testReturnError &>(obj)); + return true; + case testSquareInt::ID: + func(static_cast<testSquareInt &>(obj)); + return true; + case testUseUpdate::ID: + func(static_cast<testUseUpdate &>(obj)); + return true; + case toggleAllDownloadsArePaused::ID: + func(static_cast<toggleAllDownloadsArePaused &>(obj)); + return true; + case toggleBotIsAddedToAttachmentMenu::ID: + func(static_cast<toggleBotIsAddedToAttachmentMenu &>(obj)); + return true; + case toggleChatDefaultDisableNotification::ID: + func(static_cast<toggleChatDefaultDisableNotification &>(obj)); + return true; + case toggleChatHasProtectedContent::ID: + func(static_cast<toggleChatHasProtectedContent &>(obj)); + return true; + case toggleChatIsMarkedAsUnread::ID: + func(static_cast<toggleChatIsMarkedAsUnread &>(obj)); + return true; + case toggleChatIsPinned::ID: + func(static_cast<toggleChatIsPinned &>(obj)); + return true; + case toggleDownloadIsPaused::ID: + func(static_cast<toggleDownloadIsPaused &>(obj)); + return true; + case toggleForumTopicIsClosed::ID: + func(static_cast<toggleForumTopicIsClosed &>(obj)); + return true; + case toggleGroupCallEnabledStartNotification::ID: + func(static_cast<toggleGroupCallEnabledStartNotification &>(obj)); + return true; + case toggleGroupCallIsMyVideoEnabled::ID: + func(static_cast<toggleGroupCallIsMyVideoEnabled &>(obj)); + return true; + case toggleGroupCallIsMyVideoPaused::ID: + func(static_cast<toggleGroupCallIsMyVideoPaused &>(obj)); + return true; + case toggleGroupCallMuteNewParticipants::ID: + func(static_cast<toggleGroupCallMuteNewParticipants &>(obj)); + return true; + case toggleGroupCallParticipantIsHandRaised::ID: + func(static_cast<toggleGroupCallParticipantIsHandRaised &>(obj)); + return true; + case toggleGroupCallParticipantIsMuted::ID: + func(static_cast<toggleGroupCallParticipantIsMuted &>(obj)); + return true; + case toggleGroupCallScreenSharingIsPaused::ID: + func(static_cast<toggleGroupCallScreenSharingIsPaused &>(obj)); + return true; + case toggleMessageSenderIsBlocked::ID: + func(static_cast<toggleMessageSenderIsBlocked &>(obj)); + return true; + case toggleSessionCanAcceptCalls::ID: + func(static_cast<toggleSessionCanAcceptCalls &>(obj)); + return true; + case toggleSessionCanAcceptSecretChats::ID: + func(static_cast<toggleSessionCanAcceptSecretChats &>(obj)); + return true; + case toggleSupergroupIsAllHistoryAvailable::ID: + func(static_cast<toggleSupergroupIsAllHistoryAvailable &>(obj)); + return true; + case toggleSupergroupIsBroadcastGroup::ID: + func(static_cast<toggleSupergroupIsBroadcastGroup &>(obj)); + return true; + case toggleSupergroupIsForum::ID: + func(static_cast<toggleSupergroupIsForum &>(obj)); + return true; + case toggleSupergroupJoinByRequest::ID: + func(static_cast<toggleSupergroupJoinByRequest &>(obj)); + return true; + case toggleSupergroupJoinToSendMessages::ID: + func(static_cast<toggleSupergroupJoinToSendMessages &>(obj)); + return true; + case toggleSupergroupSignMessages::ID: + func(static_cast<toggleSupergroupSignMessages &>(obj)); + return true; + case toggleSupergroupUsernameIsActive::ID: + func(static_cast<toggleSupergroupUsernameIsActive &>(obj)); + return true; + case toggleUsernameIsActive::ID: + func(static_cast<toggleUsernameIsActive &>(obj)); + return true; + case transferChatOwnership::ID: + func(static_cast<transferChatOwnership &>(obj)); + return true; + case translateText::ID: + func(static_cast<translateText &>(obj)); + return true; + case unpinAllChatMessages::ID: + func(static_cast<unpinAllChatMessages &>(obj)); + return true; + case unpinAllMessageThreadMessages::ID: + func(static_cast<unpinAllMessageThreadMessages &>(obj)); + return true; + case unpinChatMessage::ID: + func(static_cast<unpinChatMessage &>(obj)); + return true; + case upgradeBasicGroupChatToSupergroupChat::ID: + func(static_cast<upgradeBasicGroupChatToSupergroupChat &>(obj)); + return true; + case uploadStickerFile::ID: + func(static_cast<uploadStickerFile &>(obj)); + return true; + case validateOrderInfo::ID: + func(static_cast<validateOrderInfo &>(obj)); + return true; + case viewMessages::ID: + func(static_cast<viewMessages &>(obj)); + return true; + case viewPremiumFeature::ID: + func(static_cast<viewPremiumFeature &>(obj)); + return true; + case viewTrendingStickerSets::ID: + func(static_cast<viewTrendingStickerSets &>(obj)); + return true; + case writeGeneratedFilePart::ID: + func(static_cast<writeGeneratedFilePart &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(AuthenticationCodeType &obj, const T &func) { + switch (obj.get_id()) { + case authenticationCodeTypeTelegramMessage::ID: + func(static_cast<authenticationCodeTypeTelegramMessage &>(obj)); + return true; + case authenticationCodeTypeSms::ID: + func(static_cast<authenticationCodeTypeSms &>(obj)); + return true; + case authenticationCodeTypeCall::ID: + func(static_cast<authenticationCodeTypeCall &>(obj)); + return true; + case authenticationCodeTypeFlashCall::ID: + func(static_cast<authenticationCodeTypeFlashCall &>(obj)); + return true; + case authenticationCodeTypeMissedCall::ID: + func(static_cast<authenticationCodeTypeMissedCall &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(AuthorizationState &obj, const T &func) { + switch (obj.get_id()) { + case authorizationStateWaitTdlibParameters::ID: + func(static_cast<authorizationStateWaitTdlibParameters &>(obj)); + return true; + case authorizationStateWaitPhoneNumber::ID: + func(static_cast<authorizationStateWaitPhoneNumber &>(obj)); + return true; + case authorizationStateWaitEmailAddress::ID: + func(static_cast<authorizationStateWaitEmailAddress &>(obj)); + return true; + case authorizationStateWaitEmailCode::ID: + func(static_cast<authorizationStateWaitEmailCode &>(obj)); + return true; + case authorizationStateWaitCode::ID: + func(static_cast<authorizationStateWaitCode &>(obj)); + return true; + case authorizationStateWaitOtherDeviceConfirmation::ID: + func(static_cast<authorizationStateWaitOtherDeviceConfirmation &>(obj)); + return true; + case authorizationStateWaitRegistration::ID: + func(static_cast<authorizationStateWaitRegistration &>(obj)); + return true; + case authorizationStateWaitPassword::ID: + func(static_cast<authorizationStateWaitPassword &>(obj)); + return true; + case authorizationStateReady::ID: + func(static_cast<authorizationStateReady &>(obj)); + return true; + case authorizationStateLoggingOut::ID: + func(static_cast<authorizationStateLoggingOut &>(obj)); + return true; + case authorizationStateClosing::ID: + func(static_cast<authorizationStateClosing &>(obj)); + return true; + case authorizationStateClosed::ID: + func(static_cast<authorizationStateClosed &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BackgroundFill &obj, const T &func) { + switch (obj.get_id()) { + case backgroundFillSolid::ID: + func(static_cast<backgroundFillSolid &>(obj)); + return true; + case backgroundFillGradient::ID: + func(static_cast<backgroundFillGradient &>(obj)); + return true; + case backgroundFillFreeformGradient::ID: + func(static_cast<backgroundFillFreeformGradient &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BackgroundType &obj, const T &func) { + switch (obj.get_id()) { + case backgroundTypeWallpaper::ID: + func(static_cast<backgroundTypeWallpaper &>(obj)); + return true; + case backgroundTypePattern::ID: + func(static_cast<backgroundTypePattern &>(obj)); + return true; + case backgroundTypeFill::ID: + func(static_cast<backgroundTypeFill &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BotCommandScope &obj, const T &func) { + switch (obj.get_id()) { + case botCommandScopeDefault::ID: + func(static_cast<botCommandScopeDefault &>(obj)); + return true; + case botCommandScopeAllPrivateChats::ID: + func(static_cast<botCommandScopeAllPrivateChats &>(obj)); + return true; + case botCommandScopeAllGroupChats::ID: + func(static_cast<botCommandScopeAllGroupChats &>(obj)); + return true; + case botCommandScopeAllChatAdministrators::ID: + func(static_cast<botCommandScopeAllChatAdministrators &>(obj)); + return true; + case botCommandScopeChat::ID: + func(static_cast<botCommandScopeChat &>(obj)); + return true; + case botCommandScopeChatAdministrators::ID: + func(static_cast<botCommandScopeChatAdministrators &>(obj)); + return true; + case botCommandScopeChatMember::ID: + func(static_cast<botCommandScopeChatMember &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CallDiscardReason &obj, const T &func) { + switch (obj.get_id()) { + case callDiscardReasonEmpty::ID: + func(static_cast<callDiscardReasonEmpty &>(obj)); + return true; + case callDiscardReasonMissed::ID: + func(static_cast<callDiscardReasonMissed &>(obj)); + return true; + case callDiscardReasonDeclined::ID: + func(static_cast<callDiscardReasonDeclined &>(obj)); + return true; + case callDiscardReasonDisconnected::ID: + func(static_cast<callDiscardReasonDisconnected &>(obj)); + return true; + case callDiscardReasonHungUp::ID: + func(static_cast<callDiscardReasonHungUp &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CallProblem &obj, const T &func) { + switch (obj.get_id()) { + case callProblemEcho::ID: + func(static_cast<callProblemEcho &>(obj)); + return true; + case callProblemNoise::ID: + func(static_cast<callProblemNoise &>(obj)); + return true; + case callProblemInterruptions::ID: + func(static_cast<callProblemInterruptions &>(obj)); + return true; + case callProblemDistortedSpeech::ID: + func(static_cast<callProblemDistortedSpeech &>(obj)); + return true; + case callProblemSilentLocal::ID: + func(static_cast<callProblemSilentLocal &>(obj)); + return true; + case callProblemSilentRemote::ID: + func(static_cast<callProblemSilentRemote &>(obj)); + return true; + case callProblemDropped::ID: + func(static_cast<callProblemDropped &>(obj)); + return true; + case callProblemDistortedVideo::ID: + func(static_cast<callProblemDistortedVideo &>(obj)); + return true; + case callProblemPixelatedVideo::ID: + func(static_cast<callProblemPixelatedVideo &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CallServerType &obj, const T &func) { + switch (obj.get_id()) { + case callServerTypeTelegramReflector::ID: + func(static_cast<callServerTypeTelegramReflector &>(obj)); + return true; + case callServerTypeWebrtc::ID: + func(static_cast<callServerTypeWebrtc &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CallState &obj, const T &func) { + switch (obj.get_id()) { + case callStatePending::ID: + func(static_cast<callStatePending &>(obj)); + return true; + case callStateExchangingKeys::ID: + func(static_cast<callStateExchangingKeys &>(obj)); + return true; + case callStateReady::ID: + func(static_cast<callStateReady &>(obj)); + return true; + case callStateHangingUp::ID: + func(static_cast<callStateHangingUp &>(obj)); + return true; + case callStateDiscarded::ID: + func(static_cast<callStateDiscarded &>(obj)); + return true; + case callStateError::ID: + func(static_cast<callStateError &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CallbackQueryPayload &obj, const T &func) { + switch (obj.get_id()) { + case callbackQueryPayloadData::ID: + func(static_cast<callbackQueryPayloadData &>(obj)); + return true; + case callbackQueryPayloadDataWithPassword::ID: + func(static_cast<callbackQueryPayloadDataWithPassword &>(obj)); + return true; + case callbackQueryPayloadGame::ID: + func(static_cast<callbackQueryPayloadGame &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CanTransferOwnershipResult &obj, const T &func) { + switch (obj.get_id()) { + case canTransferOwnershipResultOk::ID: + func(static_cast<canTransferOwnershipResultOk &>(obj)); + return true; + case canTransferOwnershipResultPasswordNeeded::ID: + func(static_cast<canTransferOwnershipResultPasswordNeeded &>(obj)); + return true; + case canTransferOwnershipResultPasswordTooFresh::ID: + func(static_cast<canTransferOwnershipResultPasswordTooFresh &>(obj)); + return true; + case canTransferOwnershipResultSessionTooFresh::ID: + func(static_cast<canTransferOwnershipResultSessionTooFresh &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatAction &obj, const T &func) { + switch (obj.get_id()) { + case chatActionTyping::ID: + func(static_cast<chatActionTyping &>(obj)); + return true; + case chatActionRecordingVideo::ID: + func(static_cast<chatActionRecordingVideo &>(obj)); + return true; + case chatActionUploadingVideo::ID: + func(static_cast<chatActionUploadingVideo &>(obj)); + return true; + case chatActionRecordingVoiceNote::ID: + func(static_cast<chatActionRecordingVoiceNote &>(obj)); + return true; + case chatActionUploadingVoiceNote::ID: + func(static_cast<chatActionUploadingVoiceNote &>(obj)); + return true; + case chatActionUploadingPhoto::ID: + func(static_cast<chatActionUploadingPhoto &>(obj)); + return true; + case chatActionUploadingDocument::ID: + func(static_cast<chatActionUploadingDocument &>(obj)); + return true; + case chatActionChoosingSticker::ID: + func(static_cast<chatActionChoosingSticker &>(obj)); + return true; + case chatActionChoosingLocation::ID: + func(static_cast<chatActionChoosingLocation &>(obj)); + return true; + case chatActionChoosingContact::ID: + func(static_cast<chatActionChoosingContact &>(obj)); + return true; + case chatActionStartPlayingGame::ID: + func(static_cast<chatActionStartPlayingGame &>(obj)); + return true; + case chatActionRecordingVideoNote::ID: + func(static_cast<chatActionRecordingVideoNote &>(obj)); + return true; + case chatActionUploadingVideoNote::ID: + func(static_cast<chatActionUploadingVideoNote &>(obj)); + return true; + case chatActionWatchingAnimations::ID: + func(static_cast<chatActionWatchingAnimations &>(obj)); + return true; + case chatActionCancel::ID: + func(static_cast<chatActionCancel &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatActionBar &obj, const T &func) { + switch (obj.get_id()) { + case chatActionBarReportSpam::ID: + func(static_cast<chatActionBarReportSpam &>(obj)); + return true; + case chatActionBarReportUnrelatedLocation::ID: + func(static_cast<chatActionBarReportUnrelatedLocation &>(obj)); + return true; + case chatActionBarInviteMembers::ID: + func(static_cast<chatActionBarInviteMembers &>(obj)); + return true; + case chatActionBarReportAddBlock::ID: + func(static_cast<chatActionBarReportAddBlock &>(obj)); + return true; + case chatActionBarAddContact::ID: + func(static_cast<chatActionBarAddContact &>(obj)); + return true; + case chatActionBarSharePhoneNumber::ID: + func(static_cast<chatActionBarSharePhoneNumber &>(obj)); + return true; + case chatActionBarJoinRequest::ID: + func(static_cast<chatActionBarJoinRequest &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatAvailableReactions &obj, const T &func) { + switch (obj.get_id()) { + case chatAvailableReactionsAll::ID: + func(static_cast<chatAvailableReactionsAll &>(obj)); + return true; + case chatAvailableReactionsSome::ID: + func(static_cast<chatAvailableReactionsSome &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatEventAction &obj, const T &func) { + switch (obj.get_id()) { + case chatEventMessageEdited::ID: + func(static_cast<chatEventMessageEdited &>(obj)); + return true; + case chatEventMessageDeleted::ID: + func(static_cast<chatEventMessageDeleted &>(obj)); + return true; + case chatEventMessagePinned::ID: + func(static_cast<chatEventMessagePinned &>(obj)); + return true; + case chatEventMessageUnpinned::ID: + func(static_cast<chatEventMessageUnpinned &>(obj)); + return true; + case chatEventPollStopped::ID: + func(static_cast<chatEventPollStopped &>(obj)); + return true; + case chatEventMemberJoined::ID: + func(static_cast<chatEventMemberJoined &>(obj)); + return true; + case chatEventMemberJoinedByInviteLink::ID: + func(static_cast<chatEventMemberJoinedByInviteLink &>(obj)); + return true; + case chatEventMemberJoinedByRequest::ID: + func(static_cast<chatEventMemberJoinedByRequest &>(obj)); + return true; + case chatEventMemberInvited::ID: + func(static_cast<chatEventMemberInvited &>(obj)); + return true; + case chatEventMemberLeft::ID: + func(static_cast<chatEventMemberLeft &>(obj)); + return true; + case chatEventMemberPromoted::ID: + func(static_cast<chatEventMemberPromoted &>(obj)); + return true; + case chatEventMemberRestricted::ID: + func(static_cast<chatEventMemberRestricted &>(obj)); + return true; + case chatEventAvailableReactionsChanged::ID: + func(static_cast<chatEventAvailableReactionsChanged &>(obj)); + return true; + case chatEventDescriptionChanged::ID: + func(static_cast<chatEventDescriptionChanged &>(obj)); + return true; + case chatEventLinkedChatChanged::ID: + func(static_cast<chatEventLinkedChatChanged &>(obj)); + return true; + case chatEventLocationChanged::ID: + func(static_cast<chatEventLocationChanged &>(obj)); + return true; + case chatEventMessageTtlChanged::ID: + func(static_cast<chatEventMessageTtlChanged &>(obj)); + return true; + case chatEventPermissionsChanged::ID: + func(static_cast<chatEventPermissionsChanged &>(obj)); + return true; + case chatEventPhotoChanged::ID: + func(static_cast<chatEventPhotoChanged &>(obj)); + return true; + case chatEventSlowModeDelayChanged::ID: + func(static_cast<chatEventSlowModeDelayChanged &>(obj)); + return true; + case chatEventStickerSetChanged::ID: + func(static_cast<chatEventStickerSetChanged &>(obj)); + return true; + case chatEventTitleChanged::ID: + func(static_cast<chatEventTitleChanged &>(obj)); + return true; + case chatEventUsernameChanged::ID: + func(static_cast<chatEventUsernameChanged &>(obj)); + return true; + case chatEventActiveUsernamesChanged::ID: + func(static_cast<chatEventActiveUsernamesChanged &>(obj)); + return true; + case chatEventHasProtectedContentToggled::ID: + func(static_cast<chatEventHasProtectedContentToggled &>(obj)); + return true; + case chatEventInvitesToggled::ID: + func(static_cast<chatEventInvitesToggled &>(obj)); + return true; + case chatEventIsAllHistoryAvailableToggled::ID: + func(static_cast<chatEventIsAllHistoryAvailableToggled &>(obj)); + return true; + case chatEventSignMessagesToggled::ID: + func(static_cast<chatEventSignMessagesToggled &>(obj)); + return true; + case chatEventInviteLinkEdited::ID: + func(static_cast<chatEventInviteLinkEdited &>(obj)); + return true; + case chatEventInviteLinkRevoked::ID: + func(static_cast<chatEventInviteLinkRevoked &>(obj)); + return true; + case chatEventInviteLinkDeleted::ID: + func(static_cast<chatEventInviteLinkDeleted &>(obj)); + return true; + case chatEventVideoChatCreated::ID: + func(static_cast<chatEventVideoChatCreated &>(obj)); + return true; + case chatEventVideoChatEnded::ID: + func(static_cast<chatEventVideoChatEnded &>(obj)); + return true; + case chatEventVideoChatMuteNewParticipantsToggled::ID: + func(static_cast<chatEventVideoChatMuteNewParticipantsToggled &>(obj)); + return true; + case chatEventVideoChatParticipantIsMutedToggled::ID: + func(static_cast<chatEventVideoChatParticipantIsMutedToggled &>(obj)); + return true; + case chatEventVideoChatParticipantVolumeLevelChanged::ID: + func(static_cast<chatEventVideoChatParticipantVolumeLevelChanged &>(obj)); + return true; + case chatEventIsForumToggled::ID: + func(static_cast<chatEventIsForumToggled &>(obj)); + return true; + case chatEventForumTopicCreated::ID: + func(static_cast<chatEventForumTopicCreated &>(obj)); + return true; + case chatEventForumTopicEdited::ID: + func(static_cast<chatEventForumTopicEdited &>(obj)); + return true; + case chatEventForumTopicToggleIsClosed::ID: + func(static_cast<chatEventForumTopicToggleIsClosed &>(obj)); + return true; + case chatEventForumTopicDeleted::ID: + func(static_cast<chatEventForumTopicDeleted &>(obj)); + return true; + case chatEventForumTopicPinned::ID: + func(static_cast<chatEventForumTopicPinned &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatList &obj, const T &func) { + switch (obj.get_id()) { + case chatListMain::ID: + func(static_cast<chatListMain &>(obj)); + return true; + case chatListArchive::ID: + func(static_cast<chatListArchive &>(obj)); + return true; + case chatListFilter::ID: + func(static_cast<chatListFilter &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatMemberStatus &obj, const T &func) { + switch (obj.get_id()) { + case chatMemberStatusCreator::ID: + func(static_cast<chatMemberStatusCreator &>(obj)); + return true; + case chatMemberStatusAdministrator::ID: + func(static_cast<chatMemberStatusAdministrator &>(obj)); + return true; + case chatMemberStatusMember::ID: + func(static_cast<chatMemberStatusMember &>(obj)); + return true; + case chatMemberStatusRestricted::ID: + func(static_cast<chatMemberStatusRestricted &>(obj)); + return true; + case chatMemberStatusLeft::ID: + func(static_cast<chatMemberStatusLeft &>(obj)); + return true; + case chatMemberStatusBanned::ID: + func(static_cast<chatMemberStatusBanned &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatMembersFilter &obj, const T &func) { + switch (obj.get_id()) { + case chatMembersFilterContacts::ID: + func(static_cast<chatMembersFilterContacts &>(obj)); + return true; + case chatMembersFilterAdministrators::ID: + func(static_cast<chatMembersFilterAdministrators &>(obj)); + return true; + case chatMembersFilterMembers::ID: + func(static_cast<chatMembersFilterMembers &>(obj)); + return true; + case chatMembersFilterMention::ID: + func(static_cast<chatMembersFilterMention &>(obj)); + return true; + case chatMembersFilterRestricted::ID: + func(static_cast<chatMembersFilterRestricted &>(obj)); + return true; + case chatMembersFilterBanned::ID: + func(static_cast<chatMembersFilterBanned &>(obj)); + return true; + case chatMembersFilterBots::ID: + func(static_cast<chatMembersFilterBots &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatReportReason &obj, const T &func) { + switch (obj.get_id()) { + case chatReportReasonSpam::ID: + func(static_cast<chatReportReasonSpam &>(obj)); + return true; + case chatReportReasonViolence::ID: + func(static_cast<chatReportReasonViolence &>(obj)); + return true; + case chatReportReasonPornography::ID: + func(static_cast<chatReportReasonPornography &>(obj)); + return true; + case chatReportReasonChildAbuse::ID: + func(static_cast<chatReportReasonChildAbuse &>(obj)); + return true; + case chatReportReasonCopyright::ID: + func(static_cast<chatReportReasonCopyright &>(obj)); + return true; + case chatReportReasonUnrelatedLocation::ID: + func(static_cast<chatReportReasonUnrelatedLocation &>(obj)); + return true; + case chatReportReasonFake::ID: + func(static_cast<chatReportReasonFake &>(obj)); + return true; + case chatReportReasonIllegalDrugs::ID: + func(static_cast<chatReportReasonIllegalDrugs &>(obj)); + return true; + case chatReportReasonPersonalDetails::ID: + func(static_cast<chatReportReasonPersonalDetails &>(obj)); + return true; + case chatReportReasonCustom::ID: + func(static_cast<chatReportReasonCustom &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatSource &obj, const T &func) { + switch (obj.get_id()) { + case chatSourceMtprotoProxy::ID: + func(static_cast<chatSourceMtprotoProxy &>(obj)); + return true; + case chatSourcePublicServiceAnnouncement::ID: + func(static_cast<chatSourcePublicServiceAnnouncement &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatStatistics &obj, const T &func) { + switch (obj.get_id()) { + case chatStatisticsSupergroup::ID: + func(static_cast<chatStatisticsSupergroup &>(obj)); + return true; + case chatStatisticsChannel::ID: + func(static_cast<chatStatisticsChannel &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatType &obj, const T &func) { + switch (obj.get_id()) { + case chatTypePrivate::ID: + func(static_cast<chatTypePrivate &>(obj)); + return true; + case chatTypeBasicGroup::ID: + func(static_cast<chatTypeBasicGroup &>(obj)); + return true; + case chatTypeSupergroup::ID: + func(static_cast<chatTypeSupergroup &>(obj)); + return true; + case chatTypeSecret::ID: + func(static_cast<chatTypeSecret &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CheckChatUsernameResult &obj, const T &func) { + switch (obj.get_id()) { + case checkChatUsernameResultOk::ID: + func(static_cast<checkChatUsernameResultOk &>(obj)); + return true; + case checkChatUsernameResultUsernameInvalid::ID: + func(static_cast<checkChatUsernameResultUsernameInvalid &>(obj)); + return true; + case checkChatUsernameResultUsernameOccupied::ID: + func(static_cast<checkChatUsernameResultUsernameOccupied &>(obj)); + return true; + case checkChatUsernameResultPublicChatsTooMuch::ID: + func(static_cast<checkChatUsernameResultPublicChatsTooMuch &>(obj)); + return true; + case checkChatUsernameResultPublicGroupsUnavailable::ID: + func(static_cast<checkChatUsernameResultPublicGroupsUnavailable &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(CheckStickerSetNameResult &obj, const T &func) { + switch (obj.get_id()) { + case checkStickerSetNameResultOk::ID: + func(static_cast<checkStickerSetNameResultOk &>(obj)); + return true; + case checkStickerSetNameResultNameInvalid::ID: + func(static_cast<checkStickerSetNameResultNameInvalid &>(obj)); + return true; + case checkStickerSetNameResultNameOccupied::ID: + func(static_cast<checkStickerSetNameResultNameOccupied &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ConnectionState &obj, const T &func) { + switch (obj.get_id()) { + case connectionStateWaitingForNetwork::ID: + func(static_cast<connectionStateWaitingForNetwork &>(obj)); + return true; + case connectionStateConnectingToProxy::ID: + func(static_cast<connectionStateConnectingToProxy &>(obj)); + return true; + case connectionStateConnecting::ID: + func(static_cast<connectionStateConnecting &>(obj)); + return true; + case connectionStateUpdating::ID: + func(static_cast<connectionStateUpdating &>(obj)); + return true; + case connectionStateReady::ID: + func(static_cast<connectionStateReady &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DeviceToken &obj, const T &func) { + switch (obj.get_id()) { + case deviceTokenFirebaseCloudMessaging::ID: + func(static_cast<deviceTokenFirebaseCloudMessaging &>(obj)); + return true; + case deviceTokenApplePush::ID: + func(static_cast<deviceTokenApplePush &>(obj)); + return true; + case deviceTokenApplePushVoIP::ID: + func(static_cast<deviceTokenApplePushVoIP &>(obj)); + return true; + case deviceTokenWindowsPush::ID: + func(static_cast<deviceTokenWindowsPush &>(obj)); + return true; + case deviceTokenMicrosoftPush::ID: + func(static_cast<deviceTokenMicrosoftPush &>(obj)); + return true; + case deviceTokenMicrosoftPushVoIP::ID: + func(static_cast<deviceTokenMicrosoftPushVoIP &>(obj)); + return true; + case deviceTokenWebPush::ID: + func(static_cast<deviceTokenWebPush &>(obj)); + return true; + case deviceTokenSimplePush::ID: + func(static_cast<deviceTokenSimplePush &>(obj)); + return true; + case deviceTokenUbuntuPush::ID: + func(static_cast<deviceTokenUbuntuPush &>(obj)); + return true; + case deviceTokenBlackBerryPush::ID: + func(static_cast<deviceTokenBlackBerryPush &>(obj)); + return true; + case deviceTokenTizenPush::ID: + func(static_cast<deviceTokenTizenPush &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DiceStickers &obj, const T &func) { + switch (obj.get_id()) { + case diceStickersRegular::ID: + func(static_cast<diceStickersRegular &>(obj)); + return true; + case diceStickersSlotMachine::ID: + func(static_cast<diceStickersSlotMachine &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EmailAddressAuthentication &obj, const T &func) { + switch (obj.get_id()) { + case emailAddressAuthenticationCode::ID: + func(static_cast<emailAddressAuthenticationCode &>(obj)); + return true; + case emailAddressAuthenticationAppleId::ID: + func(static_cast<emailAddressAuthenticationAppleId &>(obj)); + return true; + case emailAddressAuthenticationGoogleId::ID: + func(static_cast<emailAddressAuthenticationGoogleId &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(FileType &obj, const T &func) { + switch (obj.get_id()) { + case fileTypeNone::ID: + func(static_cast<fileTypeNone &>(obj)); + return true; + case fileTypeAnimation::ID: + func(static_cast<fileTypeAnimation &>(obj)); + return true; + case fileTypeAudio::ID: + func(static_cast<fileTypeAudio &>(obj)); + return true; + case fileTypeDocument::ID: + func(static_cast<fileTypeDocument &>(obj)); + return true; + case fileTypeNotificationSound::ID: + func(static_cast<fileTypeNotificationSound &>(obj)); + return true; + case fileTypePhoto::ID: + func(static_cast<fileTypePhoto &>(obj)); + return true; + case fileTypeProfilePhoto::ID: + func(static_cast<fileTypeProfilePhoto &>(obj)); + return true; + case fileTypeSecret::ID: + func(static_cast<fileTypeSecret &>(obj)); + return true; + case fileTypeSecretThumbnail::ID: + func(static_cast<fileTypeSecretThumbnail &>(obj)); + return true; + case fileTypeSecure::ID: + func(static_cast<fileTypeSecure &>(obj)); + return true; + case fileTypeSticker::ID: + func(static_cast<fileTypeSticker &>(obj)); + return true; + case fileTypeThumbnail::ID: + func(static_cast<fileTypeThumbnail &>(obj)); + return true; + case fileTypeUnknown::ID: + func(static_cast<fileTypeUnknown &>(obj)); + return true; + case fileTypeVideo::ID: + func(static_cast<fileTypeVideo &>(obj)); + return true; + case fileTypeVideoNote::ID: + func(static_cast<fileTypeVideoNote &>(obj)); + return true; + case fileTypeVoiceNote::ID: + func(static_cast<fileTypeVoiceNote &>(obj)); + return true; + case fileTypeWallpaper::ID: + func(static_cast<fileTypeWallpaper &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(GroupCallVideoQuality &obj, const T &func) { + switch (obj.get_id()) { + case groupCallVideoQualityThumbnail::ID: + func(static_cast<groupCallVideoQualityThumbnail &>(obj)); + return true; + case groupCallVideoQualityMedium::ID: + func(static_cast<groupCallVideoQualityMedium &>(obj)); + return true; + case groupCallVideoQualityFull::ID: + func(static_cast<groupCallVideoQualityFull &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InlineKeyboardButtonType &obj, const T &func) { + switch (obj.get_id()) { + case inlineKeyboardButtonTypeUrl::ID: + func(static_cast<inlineKeyboardButtonTypeUrl &>(obj)); + return true; + case inlineKeyboardButtonTypeLoginUrl::ID: + func(static_cast<inlineKeyboardButtonTypeLoginUrl &>(obj)); + return true; + case inlineKeyboardButtonTypeWebApp::ID: + func(static_cast<inlineKeyboardButtonTypeWebApp &>(obj)); + return true; + case inlineKeyboardButtonTypeCallback::ID: + func(static_cast<inlineKeyboardButtonTypeCallback &>(obj)); + return true; + case inlineKeyboardButtonTypeCallbackWithPassword::ID: + func(static_cast<inlineKeyboardButtonTypeCallbackWithPassword &>(obj)); + return true; + case inlineKeyboardButtonTypeCallbackGame::ID: + func(static_cast<inlineKeyboardButtonTypeCallbackGame &>(obj)); + return true; + case inlineKeyboardButtonTypeSwitchInline::ID: + func(static_cast<inlineKeyboardButtonTypeSwitchInline &>(obj)); + return true; + case inlineKeyboardButtonTypeBuy::ID: + func(static_cast<inlineKeyboardButtonTypeBuy &>(obj)); + return true; + case inlineKeyboardButtonTypeUser::ID: + func(static_cast<inlineKeyboardButtonTypeUser &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InlineQueryResult &obj, const T &func) { + switch (obj.get_id()) { + case inlineQueryResultArticle::ID: + func(static_cast<inlineQueryResultArticle &>(obj)); + return true; + case inlineQueryResultContact::ID: + func(static_cast<inlineQueryResultContact &>(obj)); + return true; + case inlineQueryResultLocation::ID: + func(static_cast<inlineQueryResultLocation &>(obj)); + return true; + case inlineQueryResultVenue::ID: + func(static_cast<inlineQueryResultVenue &>(obj)); + return true; + case inlineQueryResultGame::ID: + func(static_cast<inlineQueryResultGame &>(obj)); + return true; + case inlineQueryResultAnimation::ID: + func(static_cast<inlineQueryResultAnimation &>(obj)); + return true; + case inlineQueryResultAudio::ID: + func(static_cast<inlineQueryResultAudio &>(obj)); + return true; + case inlineQueryResultDocument::ID: + func(static_cast<inlineQueryResultDocument &>(obj)); + return true; + case inlineQueryResultPhoto::ID: + func(static_cast<inlineQueryResultPhoto &>(obj)); + return true; + case inlineQueryResultSticker::ID: + func(static_cast<inlineQueryResultSticker &>(obj)); + return true; + case inlineQueryResultVideo::ID: + func(static_cast<inlineQueryResultVideo &>(obj)); + return true; + case inlineQueryResultVoiceNote::ID: + func(static_cast<inlineQueryResultVoiceNote &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputBackground &obj, const T &func) { + switch (obj.get_id()) { + case inputBackgroundLocal::ID: + func(static_cast<inputBackgroundLocal &>(obj)); + return true; + case inputBackgroundRemote::ID: + func(static_cast<inputBackgroundRemote &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputChatPhoto &obj, const T &func) { + switch (obj.get_id()) { + case inputChatPhotoPrevious::ID: + func(static_cast<inputChatPhotoPrevious &>(obj)); + return true; + case inputChatPhotoStatic::ID: + func(static_cast<inputChatPhotoStatic &>(obj)); + return true; + case inputChatPhotoAnimation::ID: + func(static_cast<inputChatPhotoAnimation &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputCredentials &obj, const T &func) { + switch (obj.get_id()) { + case inputCredentialsSaved::ID: + func(static_cast<inputCredentialsSaved &>(obj)); + return true; + case inputCredentialsNew::ID: + func(static_cast<inputCredentialsNew &>(obj)); + return true; + case inputCredentialsApplePay::ID: + func(static_cast<inputCredentialsApplePay &>(obj)); + return true; + case inputCredentialsGooglePay::ID: + func(static_cast<inputCredentialsGooglePay &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputFile &obj, const T &func) { + switch (obj.get_id()) { + case inputFileId::ID: + func(static_cast<inputFileId &>(obj)); + return true; + case inputFileRemote::ID: + func(static_cast<inputFileRemote &>(obj)); + return true; + case inputFileLocal::ID: + func(static_cast<inputFileLocal &>(obj)); + return true; + case inputFileGenerated::ID: + func(static_cast<inputFileGenerated &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputInlineQueryResult &obj, const T &func) { + switch (obj.get_id()) { + case inputInlineQueryResultAnimation::ID: + func(static_cast<inputInlineQueryResultAnimation &>(obj)); + return true; + case inputInlineQueryResultArticle::ID: + func(static_cast<inputInlineQueryResultArticle &>(obj)); + return true; + case inputInlineQueryResultAudio::ID: + func(static_cast<inputInlineQueryResultAudio &>(obj)); + return true; + case inputInlineQueryResultContact::ID: + func(static_cast<inputInlineQueryResultContact &>(obj)); + return true; + case inputInlineQueryResultDocument::ID: + func(static_cast<inputInlineQueryResultDocument &>(obj)); + return true; + case inputInlineQueryResultGame::ID: + func(static_cast<inputInlineQueryResultGame &>(obj)); + return true; + case inputInlineQueryResultLocation::ID: + func(static_cast<inputInlineQueryResultLocation &>(obj)); + return true; + case inputInlineQueryResultPhoto::ID: + func(static_cast<inputInlineQueryResultPhoto &>(obj)); + return true; + case inputInlineQueryResultSticker::ID: + func(static_cast<inputInlineQueryResultSticker &>(obj)); + return true; + case inputInlineQueryResultVenue::ID: + func(static_cast<inputInlineQueryResultVenue &>(obj)); + return true; + case inputInlineQueryResultVideo::ID: + func(static_cast<inputInlineQueryResultVideo &>(obj)); + return true; + case inputInlineQueryResultVoiceNote::ID: + func(static_cast<inputInlineQueryResultVoiceNote &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputInvoice &obj, const T &func) { + switch (obj.get_id()) { + case inputInvoiceMessage::ID: + func(static_cast<inputInvoiceMessage &>(obj)); + return true; + case inputInvoiceName::ID: + func(static_cast<inputInvoiceName &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputMessageContent &obj, const T &func) { + switch (obj.get_id()) { + case inputMessageText::ID: + func(static_cast<inputMessageText &>(obj)); + return true; + case inputMessageAnimation::ID: + func(static_cast<inputMessageAnimation &>(obj)); + return true; + case inputMessageAudio::ID: + func(static_cast<inputMessageAudio &>(obj)); + return true; + case inputMessageDocument::ID: + func(static_cast<inputMessageDocument &>(obj)); + return true; + case inputMessagePhoto::ID: + func(static_cast<inputMessagePhoto &>(obj)); + return true; + case inputMessageSticker::ID: + func(static_cast<inputMessageSticker &>(obj)); + return true; + case inputMessageVideo::ID: + func(static_cast<inputMessageVideo &>(obj)); + return true; + case inputMessageVideoNote::ID: + func(static_cast<inputMessageVideoNote &>(obj)); + return true; + case inputMessageVoiceNote::ID: + func(static_cast<inputMessageVoiceNote &>(obj)); + return true; + case inputMessageLocation::ID: + func(static_cast<inputMessageLocation &>(obj)); + return true; + case inputMessageVenue::ID: + func(static_cast<inputMessageVenue &>(obj)); + return true; + case inputMessageContact::ID: + func(static_cast<inputMessageContact &>(obj)); + return true; + case inputMessageDice::ID: + func(static_cast<inputMessageDice &>(obj)); + return true; + case inputMessageGame::ID: + func(static_cast<inputMessageGame &>(obj)); + return true; + case inputMessageInvoice::ID: + func(static_cast<inputMessageInvoice &>(obj)); + return true; + case inputMessagePoll::ID: + func(static_cast<inputMessagePoll &>(obj)); + return true; + case inputMessageForwarded::ID: + func(static_cast<inputMessageForwarded &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputPassportElement &obj, const T &func) { + switch (obj.get_id()) { + case inputPassportElementPersonalDetails::ID: + func(static_cast<inputPassportElementPersonalDetails &>(obj)); + return true; + case inputPassportElementPassport::ID: + func(static_cast<inputPassportElementPassport &>(obj)); + return true; + case inputPassportElementDriverLicense::ID: + func(static_cast<inputPassportElementDriverLicense &>(obj)); + return true; + case inputPassportElementIdentityCard::ID: + func(static_cast<inputPassportElementIdentityCard &>(obj)); + return true; + case inputPassportElementInternalPassport::ID: + func(static_cast<inputPassportElementInternalPassport &>(obj)); + return true; + case inputPassportElementAddress::ID: + func(static_cast<inputPassportElementAddress &>(obj)); + return true; + case inputPassportElementUtilityBill::ID: + func(static_cast<inputPassportElementUtilityBill &>(obj)); + return true; + case inputPassportElementBankStatement::ID: + func(static_cast<inputPassportElementBankStatement &>(obj)); + return true; + case inputPassportElementRentalAgreement::ID: + func(static_cast<inputPassportElementRentalAgreement &>(obj)); + return true; + case inputPassportElementPassportRegistration::ID: + func(static_cast<inputPassportElementPassportRegistration &>(obj)); + return true; + case inputPassportElementTemporaryRegistration::ID: + func(static_cast<inputPassportElementTemporaryRegistration &>(obj)); + return true; + case inputPassportElementPhoneNumber::ID: + func(static_cast<inputPassportElementPhoneNumber &>(obj)); + return true; + case inputPassportElementEmailAddress::ID: + func(static_cast<inputPassportElementEmailAddress &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputPassportElementErrorSource &obj, const T &func) { + switch (obj.get_id()) { + case inputPassportElementErrorSourceUnspecified::ID: + func(static_cast<inputPassportElementErrorSourceUnspecified &>(obj)); + return true; + case inputPassportElementErrorSourceDataField::ID: + func(static_cast<inputPassportElementErrorSourceDataField &>(obj)); + return true; + case inputPassportElementErrorSourceFrontSide::ID: + func(static_cast<inputPassportElementErrorSourceFrontSide &>(obj)); + return true; + case inputPassportElementErrorSourceReverseSide::ID: + func(static_cast<inputPassportElementErrorSourceReverseSide &>(obj)); + return true; + case inputPassportElementErrorSourceSelfie::ID: + func(static_cast<inputPassportElementErrorSourceSelfie &>(obj)); + return true; + case inputPassportElementErrorSourceTranslationFile::ID: + func(static_cast<inputPassportElementErrorSourceTranslationFile &>(obj)); + return true; + case inputPassportElementErrorSourceTranslationFiles::ID: + func(static_cast<inputPassportElementErrorSourceTranslationFiles &>(obj)); + return true; + case inputPassportElementErrorSourceFile::ID: + func(static_cast<inputPassportElementErrorSourceFile &>(obj)); + return true; + case inputPassportElementErrorSourceFiles::ID: + func(static_cast<inputPassportElementErrorSourceFiles &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InternalLinkType &obj, const T &func) { + switch (obj.get_id()) { + case internalLinkTypeActiveSessions::ID: + func(static_cast<internalLinkTypeActiveSessions &>(obj)); + return true; + case internalLinkTypeAttachmentMenuBot::ID: + func(static_cast<internalLinkTypeAttachmentMenuBot &>(obj)); + return true; + case internalLinkTypeAuthenticationCode::ID: + func(static_cast<internalLinkTypeAuthenticationCode &>(obj)); + return true; + case internalLinkTypeBackground::ID: + func(static_cast<internalLinkTypeBackground &>(obj)); + return true; + case internalLinkTypeBotStart::ID: + func(static_cast<internalLinkTypeBotStart &>(obj)); + return true; + case internalLinkTypeBotStartInGroup::ID: + func(static_cast<internalLinkTypeBotStartInGroup &>(obj)); + return true; + case internalLinkTypeBotAddToChannel::ID: + func(static_cast<internalLinkTypeBotAddToChannel &>(obj)); + return true; + case internalLinkTypeChangePhoneNumber::ID: + func(static_cast<internalLinkTypeChangePhoneNumber &>(obj)); + return true; + case internalLinkTypeChatInvite::ID: + func(static_cast<internalLinkTypeChatInvite &>(obj)); + return true; + case internalLinkTypeFilterSettings::ID: + func(static_cast<internalLinkTypeFilterSettings &>(obj)); + return true; + case internalLinkTypeGame::ID: + func(static_cast<internalLinkTypeGame &>(obj)); + return true; + case internalLinkTypeInstantView::ID: + func(static_cast<internalLinkTypeInstantView &>(obj)); + return true; + case internalLinkTypeInvoice::ID: + func(static_cast<internalLinkTypeInvoice &>(obj)); + return true; + case internalLinkTypeLanguagePack::ID: + func(static_cast<internalLinkTypeLanguagePack &>(obj)); + return true; + case internalLinkTypeLanguageSettings::ID: + func(static_cast<internalLinkTypeLanguageSettings &>(obj)); + return true; + case internalLinkTypeMessage::ID: + func(static_cast<internalLinkTypeMessage &>(obj)); + return true; + case internalLinkTypeMessageDraft::ID: + func(static_cast<internalLinkTypeMessageDraft &>(obj)); + return true; + case internalLinkTypePassportDataRequest::ID: + func(static_cast<internalLinkTypePassportDataRequest &>(obj)); + return true; + case internalLinkTypePhoneNumberConfirmation::ID: + func(static_cast<internalLinkTypePhoneNumberConfirmation &>(obj)); + return true; + case internalLinkTypePremiumFeatures::ID: + func(static_cast<internalLinkTypePremiumFeatures &>(obj)); + return true; + case internalLinkTypePrivacyAndSecuritySettings::ID: + func(static_cast<internalLinkTypePrivacyAndSecuritySettings &>(obj)); + return true; + case internalLinkTypeProxy::ID: + func(static_cast<internalLinkTypeProxy &>(obj)); + return true; + case internalLinkTypePublicChat::ID: + func(static_cast<internalLinkTypePublicChat &>(obj)); + return true; + case internalLinkTypeQrCodeAuthentication::ID: + func(static_cast<internalLinkTypeQrCodeAuthentication &>(obj)); + return true; + case internalLinkTypeRestorePurchases::ID: + func(static_cast<internalLinkTypeRestorePurchases &>(obj)); + return true; + case internalLinkTypeSettings::ID: + func(static_cast<internalLinkTypeSettings &>(obj)); + return true; + case internalLinkTypeStickerSet::ID: + func(static_cast<internalLinkTypeStickerSet &>(obj)); + return true; + case internalLinkTypeTheme::ID: + func(static_cast<internalLinkTypeTheme &>(obj)); + return true; + case internalLinkTypeThemeSettings::ID: + func(static_cast<internalLinkTypeThemeSettings &>(obj)); + return true; + case internalLinkTypeUnknownDeepLink::ID: + func(static_cast<internalLinkTypeUnknownDeepLink &>(obj)); + return true; + case internalLinkTypeUnsupportedProxy::ID: + func(static_cast<internalLinkTypeUnsupportedProxy &>(obj)); + return true; + case internalLinkTypeUserPhoneNumber::ID: + func(static_cast<internalLinkTypeUserPhoneNumber &>(obj)); + return true; + case internalLinkTypeVideoChat::ID: + func(static_cast<internalLinkTypeVideoChat &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(JsonValue &obj, const T &func) { + switch (obj.get_id()) { + case jsonValueNull::ID: + func(static_cast<jsonValueNull &>(obj)); + return true; + case jsonValueBoolean::ID: + func(static_cast<jsonValueBoolean &>(obj)); + return true; + case jsonValueNumber::ID: + func(static_cast<jsonValueNumber &>(obj)); + return true; + case jsonValueString::ID: + func(static_cast<jsonValueString &>(obj)); + return true; + case jsonValueArray::ID: + func(static_cast<jsonValueArray &>(obj)); + return true; + case jsonValueObject::ID: + func(static_cast<jsonValueObject &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(KeyboardButtonType &obj, const T &func) { + switch (obj.get_id()) { + case keyboardButtonTypeText::ID: + func(static_cast<keyboardButtonTypeText &>(obj)); + return true; + case keyboardButtonTypeRequestPhoneNumber::ID: + func(static_cast<keyboardButtonTypeRequestPhoneNumber &>(obj)); + return true; + case keyboardButtonTypeRequestLocation::ID: + func(static_cast<keyboardButtonTypeRequestLocation &>(obj)); + return true; + case keyboardButtonTypeRequestPoll::ID: + func(static_cast<keyboardButtonTypeRequestPoll &>(obj)); + return true; + case keyboardButtonTypeWebApp::ID: + func(static_cast<keyboardButtonTypeWebApp &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(LanguagePackStringValue &obj, const T &func) { + switch (obj.get_id()) { + case languagePackStringValueOrdinary::ID: + func(static_cast<languagePackStringValueOrdinary &>(obj)); + return true; + case languagePackStringValuePluralized::ID: + func(static_cast<languagePackStringValuePluralized &>(obj)); + return true; + case languagePackStringValueDeleted::ID: + func(static_cast<languagePackStringValueDeleted &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(LogStream &obj, const T &func) { + switch (obj.get_id()) { + case logStreamDefault::ID: + func(static_cast<logStreamDefault &>(obj)); + return true; + case logStreamFile::ID: + func(static_cast<logStreamFile &>(obj)); + return true; + case logStreamEmpty::ID: + func(static_cast<logStreamEmpty &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(LoginUrlInfo &obj, const T &func) { + switch (obj.get_id()) { + case loginUrlInfoOpen::ID: + func(static_cast<loginUrlInfoOpen &>(obj)); + return true; + case loginUrlInfoRequestConfirmation::ID: + func(static_cast<loginUrlInfoRequestConfirmation &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MaskPoint &obj, const T &func) { + switch (obj.get_id()) { + case maskPointForehead::ID: + func(static_cast<maskPointForehead &>(obj)); + return true; + case maskPointEyes::ID: + func(static_cast<maskPointEyes &>(obj)); + return true; + case maskPointMouth::ID: + func(static_cast<maskPointMouth &>(obj)); + return true; + case maskPointChin::ID: + func(static_cast<maskPointChin &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageContent &obj, const T &func) { + switch (obj.get_id()) { + case messageText::ID: + func(static_cast<messageText &>(obj)); + return true; + case messageAnimation::ID: + func(static_cast<messageAnimation &>(obj)); + return true; + case messageAudio::ID: + func(static_cast<messageAudio &>(obj)); + return true; + case messageDocument::ID: + func(static_cast<messageDocument &>(obj)); + return true; + case messagePhoto::ID: + func(static_cast<messagePhoto &>(obj)); + return true; + case messageExpiredPhoto::ID: + func(static_cast<messageExpiredPhoto &>(obj)); + return true; + case messageSticker::ID: + func(static_cast<messageSticker &>(obj)); + return true; + case messageVideo::ID: + func(static_cast<messageVideo &>(obj)); + return true; + case messageExpiredVideo::ID: + func(static_cast<messageExpiredVideo &>(obj)); + return true; + case messageVideoNote::ID: + func(static_cast<messageVideoNote &>(obj)); + return true; + case messageVoiceNote::ID: + func(static_cast<messageVoiceNote &>(obj)); + return true; + case messageLocation::ID: + func(static_cast<messageLocation &>(obj)); + return true; + case messageVenue::ID: + func(static_cast<messageVenue &>(obj)); + return true; + case messageContact::ID: + func(static_cast<messageContact &>(obj)); + return true; + case messageAnimatedEmoji::ID: + func(static_cast<messageAnimatedEmoji &>(obj)); + return true; + case messageDice::ID: + func(static_cast<messageDice &>(obj)); + return true; + case messageGame::ID: + func(static_cast<messageGame &>(obj)); + return true; + case messagePoll::ID: + func(static_cast<messagePoll &>(obj)); + return true; + case messageInvoice::ID: + func(static_cast<messageInvoice &>(obj)); + return true; + case messageCall::ID: + func(static_cast<messageCall &>(obj)); + return true; + case messageVideoChatScheduled::ID: + func(static_cast<messageVideoChatScheduled &>(obj)); + return true; + case messageVideoChatStarted::ID: + func(static_cast<messageVideoChatStarted &>(obj)); + return true; + case messageVideoChatEnded::ID: + func(static_cast<messageVideoChatEnded &>(obj)); + return true; + case messageInviteVideoChatParticipants::ID: + func(static_cast<messageInviteVideoChatParticipants &>(obj)); + return true; + case messageBasicGroupChatCreate::ID: + func(static_cast<messageBasicGroupChatCreate &>(obj)); + return true; + case messageSupergroupChatCreate::ID: + func(static_cast<messageSupergroupChatCreate &>(obj)); + return true; + case messageChatChangeTitle::ID: + func(static_cast<messageChatChangeTitle &>(obj)); + return true; + case messageChatChangePhoto::ID: + func(static_cast<messageChatChangePhoto &>(obj)); + return true; + case messageChatDeletePhoto::ID: + func(static_cast<messageChatDeletePhoto &>(obj)); + return true; + case messageChatAddMembers::ID: + func(static_cast<messageChatAddMembers &>(obj)); + return true; + case messageChatJoinByLink::ID: + func(static_cast<messageChatJoinByLink &>(obj)); + return true; + case messageChatJoinByRequest::ID: + func(static_cast<messageChatJoinByRequest &>(obj)); + return true; + case messageChatDeleteMember::ID: + func(static_cast<messageChatDeleteMember &>(obj)); + return true; + case messageChatUpgradeTo::ID: + func(static_cast<messageChatUpgradeTo &>(obj)); + return true; + case messageChatUpgradeFrom::ID: + func(static_cast<messageChatUpgradeFrom &>(obj)); + return true; + case messagePinMessage::ID: + func(static_cast<messagePinMessage &>(obj)); + return true; + case messageScreenshotTaken::ID: + func(static_cast<messageScreenshotTaken &>(obj)); + return true; + case messageChatSetTheme::ID: + func(static_cast<messageChatSetTheme &>(obj)); + return true; + case messageChatSetTtl::ID: + func(static_cast<messageChatSetTtl &>(obj)); + return true; + case messageForumTopicCreated::ID: + func(static_cast<messageForumTopicCreated &>(obj)); + return true; + case messageForumTopicEdited::ID: + func(static_cast<messageForumTopicEdited &>(obj)); + return true; + case messageForumTopicIsClosedToggled::ID: + func(static_cast<messageForumTopicIsClosedToggled &>(obj)); + return true; + case messageCustomServiceAction::ID: + func(static_cast<messageCustomServiceAction &>(obj)); + return true; + case messageGameScore::ID: + func(static_cast<messageGameScore &>(obj)); + return true; + case messagePaymentSuccessful::ID: + func(static_cast<messagePaymentSuccessful &>(obj)); + return true; + case messagePaymentSuccessfulBot::ID: + func(static_cast<messagePaymentSuccessfulBot &>(obj)); + return true; + case messageGiftedPremium::ID: + func(static_cast<messageGiftedPremium &>(obj)); + return true; + case messageContactRegistered::ID: + func(static_cast<messageContactRegistered &>(obj)); + return true; + case messageWebsiteConnected::ID: + func(static_cast<messageWebsiteConnected &>(obj)); + return true; + case messageWebAppDataSent::ID: + func(static_cast<messageWebAppDataSent &>(obj)); + return true; + case messageWebAppDataReceived::ID: + func(static_cast<messageWebAppDataReceived &>(obj)); + return true; + case messagePassportDataSent::ID: + func(static_cast<messagePassportDataSent &>(obj)); + return true; + case messagePassportDataReceived::ID: + func(static_cast<messagePassportDataReceived &>(obj)); + return true; + case messageProximityAlertTriggered::ID: + func(static_cast<messageProximityAlertTriggered &>(obj)); + return true; + case messageUnsupported::ID: + func(static_cast<messageUnsupported &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageExtendedMedia &obj, const T &func) { + switch (obj.get_id()) { + case messageExtendedMediaPreview::ID: + func(static_cast<messageExtendedMediaPreview &>(obj)); + return true; + case messageExtendedMediaPhoto::ID: + func(static_cast<messageExtendedMediaPhoto &>(obj)); + return true; + case messageExtendedMediaVideo::ID: + func(static_cast<messageExtendedMediaVideo &>(obj)); + return true; + case messageExtendedMediaUnsupported::ID: + func(static_cast<messageExtendedMediaUnsupported &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageFileType &obj, const T &func) { + switch (obj.get_id()) { + case messageFileTypePrivate::ID: + func(static_cast<messageFileTypePrivate &>(obj)); + return true; + case messageFileTypeGroup::ID: + func(static_cast<messageFileTypeGroup &>(obj)); + return true; + case messageFileTypeUnknown::ID: + func(static_cast<messageFileTypeUnknown &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageForwardOrigin &obj, const T &func) { + switch (obj.get_id()) { + case messageForwardOriginUser::ID: + func(static_cast<messageForwardOriginUser &>(obj)); + return true; + case messageForwardOriginChat::ID: + func(static_cast<messageForwardOriginChat &>(obj)); + return true; + case messageForwardOriginHiddenUser::ID: + func(static_cast<messageForwardOriginHiddenUser &>(obj)); + return true; + case messageForwardOriginChannel::ID: + func(static_cast<messageForwardOriginChannel &>(obj)); + return true; + case messageForwardOriginMessageImport::ID: + func(static_cast<messageForwardOriginMessageImport &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageSchedulingState &obj, const T &func) { + switch (obj.get_id()) { + case messageSchedulingStateSendAtDate::ID: + func(static_cast<messageSchedulingStateSendAtDate &>(obj)); + return true; + case messageSchedulingStateSendWhenOnline::ID: + func(static_cast<messageSchedulingStateSendWhenOnline &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageSender &obj, const T &func) { + switch (obj.get_id()) { + case messageSenderUser::ID: + func(static_cast<messageSenderUser &>(obj)); + return true; + case messageSenderChat::ID: + func(static_cast<messageSenderChat &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageSendingState &obj, const T &func) { + switch (obj.get_id()) { + case messageSendingStatePending::ID: + func(static_cast<messageSendingStatePending &>(obj)); + return true; + case messageSendingStateFailed::ID: + func(static_cast<messageSendingStateFailed &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(NetworkStatisticsEntry &obj, const T &func) { + switch (obj.get_id()) { + case networkStatisticsEntryFile::ID: + func(static_cast<networkStatisticsEntryFile &>(obj)); + return true; + case networkStatisticsEntryCall::ID: + func(static_cast<networkStatisticsEntryCall &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(NetworkType &obj, const T &func) { + switch (obj.get_id()) { + case networkTypeNone::ID: + func(static_cast<networkTypeNone &>(obj)); + return true; + case networkTypeMobile::ID: + func(static_cast<networkTypeMobile &>(obj)); + return true; + case networkTypeMobileRoaming::ID: + func(static_cast<networkTypeMobileRoaming &>(obj)); + return true; + case networkTypeWiFi::ID: + func(static_cast<networkTypeWiFi &>(obj)); + return true; + case networkTypeOther::ID: + func(static_cast<networkTypeOther &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(NotificationGroupType &obj, const T &func) { + switch (obj.get_id()) { + case notificationGroupTypeMessages::ID: + func(static_cast<notificationGroupTypeMessages &>(obj)); + return true; + case notificationGroupTypeMentions::ID: + func(static_cast<notificationGroupTypeMentions &>(obj)); + return true; + case notificationGroupTypeSecretChat::ID: + func(static_cast<notificationGroupTypeSecretChat &>(obj)); + return true; + case notificationGroupTypeCalls::ID: + func(static_cast<notificationGroupTypeCalls &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(NotificationSettingsScope &obj, const T &func) { + switch (obj.get_id()) { + case notificationSettingsScopePrivateChats::ID: + func(static_cast<notificationSettingsScopePrivateChats &>(obj)); + return true; + case notificationSettingsScopeGroupChats::ID: + func(static_cast<notificationSettingsScopeGroupChats &>(obj)); + return true; + case notificationSettingsScopeChannelChats::ID: + func(static_cast<notificationSettingsScopeChannelChats &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(NotificationType &obj, const T &func) { + switch (obj.get_id()) { + case notificationTypeNewMessage::ID: + func(static_cast<notificationTypeNewMessage &>(obj)); + return true; + case notificationTypeNewSecretChat::ID: + func(static_cast<notificationTypeNewSecretChat &>(obj)); + return true; + case notificationTypeNewCall::ID: + func(static_cast<notificationTypeNewCall &>(obj)); + return true; + case notificationTypeNewPushMessage::ID: + func(static_cast<notificationTypeNewPushMessage &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(OptionValue &obj, const T &func) { + switch (obj.get_id()) { + case optionValueBoolean::ID: + func(static_cast<optionValueBoolean &>(obj)); + return true; + case optionValueEmpty::ID: + func(static_cast<optionValueEmpty &>(obj)); + return true; + case optionValueInteger::ID: + func(static_cast<optionValueInteger &>(obj)); + return true; + case optionValueString::ID: + func(static_cast<optionValueString &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PageBlock &obj, const T &func) { + switch (obj.get_id()) { + case pageBlockTitle::ID: + func(static_cast<pageBlockTitle &>(obj)); + return true; + case pageBlockSubtitle::ID: + func(static_cast<pageBlockSubtitle &>(obj)); + return true; + case pageBlockAuthorDate::ID: + func(static_cast<pageBlockAuthorDate &>(obj)); + return true; + case pageBlockHeader::ID: + func(static_cast<pageBlockHeader &>(obj)); + return true; + case pageBlockSubheader::ID: + func(static_cast<pageBlockSubheader &>(obj)); + return true; + case pageBlockKicker::ID: + func(static_cast<pageBlockKicker &>(obj)); + return true; + case pageBlockParagraph::ID: + func(static_cast<pageBlockParagraph &>(obj)); + return true; + case pageBlockPreformatted::ID: + func(static_cast<pageBlockPreformatted &>(obj)); + return true; + case pageBlockFooter::ID: + func(static_cast<pageBlockFooter &>(obj)); + return true; + case pageBlockDivider::ID: + func(static_cast<pageBlockDivider &>(obj)); + return true; + case pageBlockAnchor::ID: + func(static_cast<pageBlockAnchor &>(obj)); + return true; + case pageBlockList::ID: + func(static_cast<pageBlockList &>(obj)); + return true; + case pageBlockBlockQuote::ID: + func(static_cast<pageBlockBlockQuote &>(obj)); + return true; + case pageBlockPullQuote::ID: + func(static_cast<pageBlockPullQuote &>(obj)); + return true; + case pageBlockAnimation::ID: + func(static_cast<pageBlockAnimation &>(obj)); + return true; + case pageBlockAudio::ID: + func(static_cast<pageBlockAudio &>(obj)); + return true; + case pageBlockPhoto::ID: + func(static_cast<pageBlockPhoto &>(obj)); + return true; + case pageBlockVideo::ID: + func(static_cast<pageBlockVideo &>(obj)); + return true; + case pageBlockVoiceNote::ID: + func(static_cast<pageBlockVoiceNote &>(obj)); + return true; + case pageBlockCover::ID: + func(static_cast<pageBlockCover &>(obj)); + return true; + case pageBlockEmbedded::ID: + func(static_cast<pageBlockEmbedded &>(obj)); + return true; + case pageBlockEmbeddedPost::ID: + func(static_cast<pageBlockEmbeddedPost &>(obj)); + return true; + case pageBlockCollage::ID: + func(static_cast<pageBlockCollage &>(obj)); + return true; + case pageBlockSlideshow::ID: + func(static_cast<pageBlockSlideshow &>(obj)); + return true; + case pageBlockChatLink::ID: + func(static_cast<pageBlockChatLink &>(obj)); + return true; + case pageBlockTable::ID: + func(static_cast<pageBlockTable &>(obj)); + return true; + case pageBlockDetails::ID: + func(static_cast<pageBlockDetails &>(obj)); + return true; + case pageBlockRelatedArticles::ID: + func(static_cast<pageBlockRelatedArticles &>(obj)); + return true; + case pageBlockMap::ID: + func(static_cast<pageBlockMap &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PageBlockHorizontalAlignment &obj, const T &func) { + switch (obj.get_id()) { + case pageBlockHorizontalAlignmentLeft::ID: + func(static_cast<pageBlockHorizontalAlignmentLeft &>(obj)); + return true; + case pageBlockHorizontalAlignmentCenter::ID: + func(static_cast<pageBlockHorizontalAlignmentCenter &>(obj)); + return true; + case pageBlockHorizontalAlignmentRight::ID: + func(static_cast<pageBlockHorizontalAlignmentRight &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PageBlockVerticalAlignment &obj, const T &func) { + switch (obj.get_id()) { + case pageBlockVerticalAlignmentTop::ID: + func(static_cast<pageBlockVerticalAlignmentTop &>(obj)); + return true; + case pageBlockVerticalAlignmentMiddle::ID: + func(static_cast<pageBlockVerticalAlignmentMiddle &>(obj)); + return true; + case pageBlockVerticalAlignmentBottom::ID: + func(static_cast<pageBlockVerticalAlignmentBottom &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PassportElement &obj, const T &func) { + switch (obj.get_id()) { + case passportElementPersonalDetails::ID: + func(static_cast<passportElementPersonalDetails &>(obj)); + return true; + case passportElementPassport::ID: + func(static_cast<passportElementPassport &>(obj)); + return true; + case passportElementDriverLicense::ID: + func(static_cast<passportElementDriverLicense &>(obj)); + return true; + case passportElementIdentityCard::ID: + func(static_cast<passportElementIdentityCard &>(obj)); + return true; + case passportElementInternalPassport::ID: + func(static_cast<passportElementInternalPassport &>(obj)); + return true; + case passportElementAddress::ID: + func(static_cast<passportElementAddress &>(obj)); + return true; + case passportElementUtilityBill::ID: + func(static_cast<passportElementUtilityBill &>(obj)); + return true; + case passportElementBankStatement::ID: + func(static_cast<passportElementBankStatement &>(obj)); + return true; + case passportElementRentalAgreement::ID: + func(static_cast<passportElementRentalAgreement &>(obj)); + return true; + case passportElementPassportRegistration::ID: + func(static_cast<passportElementPassportRegistration &>(obj)); + return true; + case passportElementTemporaryRegistration::ID: + func(static_cast<passportElementTemporaryRegistration &>(obj)); + return true; + case passportElementPhoneNumber::ID: + func(static_cast<passportElementPhoneNumber &>(obj)); + return true; + case passportElementEmailAddress::ID: + func(static_cast<passportElementEmailAddress &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PassportElementErrorSource &obj, const T &func) { + switch (obj.get_id()) { + case passportElementErrorSourceUnspecified::ID: + func(static_cast<passportElementErrorSourceUnspecified &>(obj)); + return true; + case passportElementErrorSourceDataField::ID: + func(static_cast<passportElementErrorSourceDataField &>(obj)); + return true; + case passportElementErrorSourceFrontSide::ID: + func(static_cast<passportElementErrorSourceFrontSide &>(obj)); + return true; + case passportElementErrorSourceReverseSide::ID: + func(static_cast<passportElementErrorSourceReverseSide &>(obj)); + return true; + case passportElementErrorSourceSelfie::ID: + func(static_cast<passportElementErrorSourceSelfie &>(obj)); + return true; + case passportElementErrorSourceTranslationFile::ID: + func(static_cast<passportElementErrorSourceTranslationFile &>(obj)); + return true; + case passportElementErrorSourceTranslationFiles::ID: + func(static_cast<passportElementErrorSourceTranslationFiles &>(obj)); + return true; + case passportElementErrorSourceFile::ID: + func(static_cast<passportElementErrorSourceFile &>(obj)); + return true; + case passportElementErrorSourceFiles::ID: + func(static_cast<passportElementErrorSourceFiles &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PassportElementType &obj, const T &func) { + switch (obj.get_id()) { + case passportElementTypePersonalDetails::ID: + func(static_cast<passportElementTypePersonalDetails &>(obj)); + return true; + case passportElementTypePassport::ID: + func(static_cast<passportElementTypePassport &>(obj)); + return true; + case passportElementTypeDriverLicense::ID: + func(static_cast<passportElementTypeDriverLicense &>(obj)); + return true; + case passportElementTypeIdentityCard::ID: + func(static_cast<passportElementTypeIdentityCard &>(obj)); + return true; + case passportElementTypeInternalPassport::ID: + func(static_cast<passportElementTypeInternalPassport &>(obj)); + return true; + case passportElementTypeAddress::ID: + func(static_cast<passportElementTypeAddress &>(obj)); + return true; + case passportElementTypeUtilityBill::ID: + func(static_cast<passportElementTypeUtilityBill &>(obj)); + return true; + case passportElementTypeBankStatement::ID: + func(static_cast<passportElementTypeBankStatement &>(obj)); + return true; + case passportElementTypeRentalAgreement::ID: + func(static_cast<passportElementTypeRentalAgreement &>(obj)); + return true; + case passportElementTypePassportRegistration::ID: + func(static_cast<passportElementTypePassportRegistration &>(obj)); + return true; + case passportElementTypeTemporaryRegistration::ID: + func(static_cast<passportElementTypeTemporaryRegistration &>(obj)); + return true; + case passportElementTypePhoneNumber::ID: + func(static_cast<passportElementTypePhoneNumber &>(obj)); + return true; + case passportElementTypeEmailAddress::ID: + func(static_cast<passportElementTypeEmailAddress &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PaymentProvider &obj, const T &func) { + switch (obj.get_id()) { + case paymentProviderSmartGlocal::ID: + func(static_cast<paymentProviderSmartGlocal &>(obj)); + return true; + case paymentProviderStripe::ID: + func(static_cast<paymentProviderStripe &>(obj)); + return true; + case paymentProviderOther::ID: + func(static_cast<paymentProviderOther &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PollType &obj, const T &func) { + switch (obj.get_id()) { + case pollTypeRegular::ID: + func(static_cast<pollTypeRegular &>(obj)); + return true; + case pollTypeQuiz::ID: + func(static_cast<pollTypeQuiz &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PremiumFeature &obj, const T &func) { + switch (obj.get_id()) { + case premiumFeatureIncreasedLimits::ID: + func(static_cast<premiumFeatureIncreasedLimits &>(obj)); + return true; + case premiumFeatureIncreasedUploadFileSize::ID: + func(static_cast<premiumFeatureIncreasedUploadFileSize &>(obj)); + return true; + case premiumFeatureImprovedDownloadSpeed::ID: + func(static_cast<premiumFeatureImprovedDownloadSpeed &>(obj)); + return true; + case premiumFeatureVoiceRecognition::ID: + func(static_cast<premiumFeatureVoiceRecognition &>(obj)); + return true; + case premiumFeatureDisabledAds::ID: + func(static_cast<premiumFeatureDisabledAds &>(obj)); + return true; + case premiumFeatureUniqueReactions::ID: + func(static_cast<premiumFeatureUniqueReactions &>(obj)); + return true; + case premiumFeatureUniqueStickers::ID: + func(static_cast<premiumFeatureUniqueStickers &>(obj)); + return true; + case premiumFeatureCustomEmoji::ID: + func(static_cast<premiumFeatureCustomEmoji &>(obj)); + return true; + case premiumFeatureAdvancedChatManagement::ID: + func(static_cast<premiumFeatureAdvancedChatManagement &>(obj)); + return true; + case premiumFeatureProfileBadge::ID: + func(static_cast<premiumFeatureProfileBadge &>(obj)); + return true; + case premiumFeatureEmojiStatus::ID: + func(static_cast<premiumFeatureEmojiStatus &>(obj)); + return true; + case premiumFeatureAnimatedProfilePhoto::ID: + func(static_cast<premiumFeatureAnimatedProfilePhoto &>(obj)); + return true; + case premiumFeatureForumTopicIcon::ID: + func(static_cast<premiumFeatureForumTopicIcon &>(obj)); + return true; + case premiumFeatureAppIcons::ID: + func(static_cast<premiumFeatureAppIcons &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PremiumLimitType &obj, const T &func) { + switch (obj.get_id()) { + case premiumLimitTypeSupergroupCount::ID: + func(static_cast<premiumLimitTypeSupergroupCount &>(obj)); + return true; + case premiumLimitTypePinnedChatCount::ID: + func(static_cast<premiumLimitTypePinnedChatCount &>(obj)); + return true; + case premiumLimitTypeCreatedPublicChatCount::ID: + func(static_cast<premiumLimitTypeCreatedPublicChatCount &>(obj)); + return true; + case premiumLimitTypeSavedAnimationCount::ID: + func(static_cast<premiumLimitTypeSavedAnimationCount &>(obj)); + return true; + case premiumLimitTypeFavoriteStickerCount::ID: + func(static_cast<premiumLimitTypeFavoriteStickerCount &>(obj)); + return true; + case premiumLimitTypeChatFilterCount::ID: + func(static_cast<premiumLimitTypeChatFilterCount &>(obj)); + return true; + case premiumLimitTypeChatFilterChosenChatCount::ID: + func(static_cast<premiumLimitTypeChatFilterChosenChatCount &>(obj)); + return true; + case premiumLimitTypePinnedArchivedChatCount::ID: + func(static_cast<premiumLimitTypePinnedArchivedChatCount &>(obj)); + return true; + case premiumLimitTypeCaptionLength::ID: + func(static_cast<premiumLimitTypeCaptionLength &>(obj)); + return true; + case premiumLimitTypeBioLength::ID: + func(static_cast<premiumLimitTypeBioLength &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PremiumSource &obj, const T &func) { + switch (obj.get_id()) { + case premiumSourceLimitExceeded::ID: + func(static_cast<premiumSourceLimitExceeded &>(obj)); + return true; + case premiumSourceFeature::ID: + func(static_cast<premiumSourceFeature &>(obj)); + return true; + case premiumSourceLink::ID: + func(static_cast<premiumSourceLink &>(obj)); + return true; + case premiumSourceSettings::ID: + func(static_cast<premiumSourceSettings &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ProxyType &obj, const T &func) { + switch (obj.get_id()) { + case proxyTypeSocks5::ID: + func(static_cast<proxyTypeSocks5 &>(obj)); + return true; + case proxyTypeHttp::ID: + func(static_cast<proxyTypeHttp &>(obj)); + return true; + case proxyTypeMtproto::ID: + func(static_cast<proxyTypeMtproto &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PublicChatType &obj, const T &func) { + switch (obj.get_id()) { + case publicChatTypeHasUsername::ID: + func(static_cast<publicChatTypeHasUsername &>(obj)); + return true; + case publicChatTypeIsLocationBased::ID: + func(static_cast<publicChatTypeIsLocationBased &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PushMessageContent &obj, const T &func) { + switch (obj.get_id()) { + case pushMessageContentHidden::ID: + func(static_cast<pushMessageContentHidden &>(obj)); + return true; + case pushMessageContentAnimation::ID: + func(static_cast<pushMessageContentAnimation &>(obj)); + return true; + case pushMessageContentAudio::ID: + func(static_cast<pushMessageContentAudio &>(obj)); + return true; + case pushMessageContentContact::ID: + func(static_cast<pushMessageContentContact &>(obj)); + return true; + case pushMessageContentContactRegistered::ID: + func(static_cast<pushMessageContentContactRegistered &>(obj)); + return true; + case pushMessageContentDocument::ID: + func(static_cast<pushMessageContentDocument &>(obj)); + return true; + case pushMessageContentGame::ID: + func(static_cast<pushMessageContentGame &>(obj)); + return true; + case pushMessageContentGameScore::ID: + func(static_cast<pushMessageContentGameScore &>(obj)); + return true; + case pushMessageContentInvoice::ID: + func(static_cast<pushMessageContentInvoice &>(obj)); + return true; + case pushMessageContentLocation::ID: + func(static_cast<pushMessageContentLocation &>(obj)); + return true; + case pushMessageContentPhoto::ID: + func(static_cast<pushMessageContentPhoto &>(obj)); + return true; + case pushMessageContentPoll::ID: + func(static_cast<pushMessageContentPoll &>(obj)); + return true; + case pushMessageContentScreenshotTaken::ID: + func(static_cast<pushMessageContentScreenshotTaken &>(obj)); + return true; + case pushMessageContentSticker::ID: + func(static_cast<pushMessageContentSticker &>(obj)); + return true; + case pushMessageContentText::ID: + func(static_cast<pushMessageContentText &>(obj)); + return true; + case pushMessageContentVideo::ID: + func(static_cast<pushMessageContentVideo &>(obj)); + return true; + case pushMessageContentVideoNote::ID: + func(static_cast<pushMessageContentVideoNote &>(obj)); + return true; + case pushMessageContentVoiceNote::ID: + func(static_cast<pushMessageContentVoiceNote &>(obj)); + return true; + case pushMessageContentBasicGroupChatCreate::ID: + func(static_cast<pushMessageContentBasicGroupChatCreate &>(obj)); + return true; + case pushMessageContentChatAddMembers::ID: + func(static_cast<pushMessageContentChatAddMembers &>(obj)); + return true; + case pushMessageContentChatChangePhoto::ID: + func(static_cast<pushMessageContentChatChangePhoto &>(obj)); + return true; + case pushMessageContentChatChangeTitle::ID: + func(static_cast<pushMessageContentChatChangeTitle &>(obj)); + return true; + case pushMessageContentChatSetTheme::ID: + func(static_cast<pushMessageContentChatSetTheme &>(obj)); + return true; + case pushMessageContentChatDeleteMember::ID: + func(static_cast<pushMessageContentChatDeleteMember &>(obj)); + return true; + case pushMessageContentChatJoinByLink::ID: + func(static_cast<pushMessageContentChatJoinByLink &>(obj)); + return true; + case pushMessageContentChatJoinByRequest::ID: + func(static_cast<pushMessageContentChatJoinByRequest &>(obj)); + return true; + case pushMessageContentRecurringPayment::ID: + func(static_cast<pushMessageContentRecurringPayment &>(obj)); + return true; + case pushMessageContentMessageForwards::ID: + func(static_cast<pushMessageContentMessageForwards &>(obj)); + return true; + case pushMessageContentMediaAlbum::ID: + func(static_cast<pushMessageContentMediaAlbum &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ReactionType &obj, const T &func) { + switch (obj.get_id()) { + case reactionTypeEmoji::ID: + func(static_cast<reactionTypeEmoji &>(obj)); + return true; + case reactionTypeCustomEmoji::ID: + func(static_cast<reactionTypeCustomEmoji &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ReplyMarkup &obj, const T &func) { + switch (obj.get_id()) { + case replyMarkupRemoveKeyboard::ID: + func(static_cast<replyMarkupRemoveKeyboard &>(obj)); + return true; + case replyMarkupForceReply::ID: + func(static_cast<replyMarkupForceReply &>(obj)); + return true; + case replyMarkupShowKeyboard::ID: + func(static_cast<replyMarkupShowKeyboard &>(obj)); + return true; + case replyMarkupInlineKeyboard::ID: + func(static_cast<replyMarkupInlineKeyboard &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ResetPasswordResult &obj, const T &func) { + switch (obj.get_id()) { + case resetPasswordResultOk::ID: + func(static_cast<resetPasswordResultOk &>(obj)); + return true; + case resetPasswordResultPending::ID: + func(static_cast<resetPasswordResultPending &>(obj)); + return true; + case resetPasswordResultDeclined::ID: + func(static_cast<resetPasswordResultDeclined &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(RichText &obj, const T &func) { + switch (obj.get_id()) { + case richTextPlain::ID: + func(static_cast<richTextPlain &>(obj)); + return true; + case richTextBold::ID: + func(static_cast<richTextBold &>(obj)); + return true; + case richTextItalic::ID: + func(static_cast<richTextItalic &>(obj)); + return true; + case richTextUnderline::ID: + func(static_cast<richTextUnderline &>(obj)); + return true; + case richTextStrikethrough::ID: + func(static_cast<richTextStrikethrough &>(obj)); + return true; + case richTextFixed::ID: + func(static_cast<richTextFixed &>(obj)); + return true; + case richTextUrl::ID: + func(static_cast<richTextUrl &>(obj)); + return true; + case richTextEmailAddress::ID: + func(static_cast<richTextEmailAddress &>(obj)); + return true; + case richTextSubscript::ID: + func(static_cast<richTextSubscript &>(obj)); + return true; + case richTextSuperscript::ID: + func(static_cast<richTextSuperscript &>(obj)); + return true; + case richTextMarked::ID: + func(static_cast<richTextMarked &>(obj)); + return true; + case richTextPhoneNumber::ID: + func(static_cast<richTextPhoneNumber &>(obj)); + return true; + case richTextIcon::ID: + func(static_cast<richTextIcon &>(obj)); + return true; + case richTextReference::ID: + func(static_cast<richTextReference &>(obj)); + return true; + case richTextAnchor::ID: + func(static_cast<richTextAnchor &>(obj)); + return true; + case richTextAnchorLink::ID: + func(static_cast<richTextAnchorLink &>(obj)); + return true; + case richTexts::ID: + func(static_cast<richTexts &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SearchMessagesFilter &obj, const T &func) { + switch (obj.get_id()) { + case searchMessagesFilterEmpty::ID: + func(static_cast<searchMessagesFilterEmpty &>(obj)); + return true; + case searchMessagesFilterAnimation::ID: + func(static_cast<searchMessagesFilterAnimation &>(obj)); + return true; + case searchMessagesFilterAudio::ID: + func(static_cast<searchMessagesFilterAudio &>(obj)); + return true; + case searchMessagesFilterDocument::ID: + func(static_cast<searchMessagesFilterDocument &>(obj)); + return true; + case searchMessagesFilterPhoto::ID: + func(static_cast<searchMessagesFilterPhoto &>(obj)); + return true; + case searchMessagesFilterVideo::ID: + func(static_cast<searchMessagesFilterVideo &>(obj)); + return true; + case searchMessagesFilterVoiceNote::ID: + func(static_cast<searchMessagesFilterVoiceNote &>(obj)); + return true; + case searchMessagesFilterPhotoAndVideo::ID: + func(static_cast<searchMessagesFilterPhotoAndVideo &>(obj)); + return true; + case searchMessagesFilterUrl::ID: + func(static_cast<searchMessagesFilterUrl &>(obj)); + return true; + case searchMessagesFilterChatPhoto::ID: + func(static_cast<searchMessagesFilterChatPhoto &>(obj)); + return true; + case searchMessagesFilterVideoNote::ID: + func(static_cast<searchMessagesFilterVideoNote &>(obj)); + return true; + case searchMessagesFilterVoiceAndVideoNote::ID: + func(static_cast<searchMessagesFilterVoiceAndVideoNote &>(obj)); + return true; + case searchMessagesFilterMention::ID: + func(static_cast<searchMessagesFilterMention &>(obj)); + return true; + case searchMessagesFilterUnreadMention::ID: + func(static_cast<searchMessagesFilterUnreadMention &>(obj)); + return true; + case searchMessagesFilterUnreadReaction::ID: + func(static_cast<searchMessagesFilterUnreadReaction &>(obj)); + return true; + case searchMessagesFilterFailedToSend::ID: + func(static_cast<searchMessagesFilterFailedToSend &>(obj)); + return true; + case searchMessagesFilterPinned::ID: + func(static_cast<searchMessagesFilterPinned &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SecretChatState &obj, const T &func) { + switch (obj.get_id()) { + case secretChatStatePending::ID: + func(static_cast<secretChatStatePending &>(obj)); + return true; + case secretChatStateReady::ID: + func(static_cast<secretChatStateReady &>(obj)); + return true; + case secretChatStateClosed::ID: + func(static_cast<secretChatStateClosed &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SessionType &obj, const T &func) { + switch (obj.get_id()) { + case sessionTypeAndroid::ID: + func(static_cast<sessionTypeAndroid &>(obj)); + return true; + case sessionTypeApple::ID: + func(static_cast<sessionTypeApple &>(obj)); + return true; + case sessionTypeBrave::ID: + func(static_cast<sessionTypeBrave &>(obj)); + return true; + case sessionTypeChrome::ID: + func(static_cast<sessionTypeChrome &>(obj)); + return true; + case sessionTypeEdge::ID: + func(static_cast<sessionTypeEdge &>(obj)); + return true; + case sessionTypeFirefox::ID: + func(static_cast<sessionTypeFirefox &>(obj)); + return true; + case sessionTypeIpad::ID: + func(static_cast<sessionTypeIpad &>(obj)); + return true; + case sessionTypeIphone::ID: + func(static_cast<sessionTypeIphone &>(obj)); + return true; + case sessionTypeLinux::ID: + func(static_cast<sessionTypeLinux &>(obj)); + return true; + case sessionTypeMac::ID: + func(static_cast<sessionTypeMac &>(obj)); + return true; + case sessionTypeOpera::ID: + func(static_cast<sessionTypeOpera &>(obj)); + return true; + case sessionTypeSafari::ID: + func(static_cast<sessionTypeSafari &>(obj)); + return true; + case sessionTypeUbuntu::ID: + func(static_cast<sessionTypeUbuntu &>(obj)); + return true; + case sessionTypeUnknown::ID: + func(static_cast<sessionTypeUnknown &>(obj)); + return true; + case sessionTypeVivaldi::ID: + func(static_cast<sessionTypeVivaldi &>(obj)); + return true; + case sessionTypeWindows::ID: + func(static_cast<sessionTypeWindows &>(obj)); + return true; + case sessionTypeXbox::ID: + func(static_cast<sessionTypeXbox &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SpeechRecognitionResult &obj, const T &func) { + switch (obj.get_id()) { + case speechRecognitionResultPending::ID: + func(static_cast<speechRecognitionResultPending &>(obj)); + return true; + case speechRecognitionResultText::ID: + func(static_cast<speechRecognitionResultText &>(obj)); + return true; + case speechRecognitionResultError::ID: + func(static_cast<speechRecognitionResultError &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(StatisticalGraph &obj, const T &func) { + switch (obj.get_id()) { + case statisticalGraphData::ID: + func(static_cast<statisticalGraphData &>(obj)); + return true; + case statisticalGraphAsync::ID: + func(static_cast<statisticalGraphAsync &>(obj)); + return true; + case statisticalGraphError::ID: + func(static_cast<statisticalGraphError &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(StickerFormat &obj, const T &func) { + switch (obj.get_id()) { + case stickerFormatWebp::ID: + func(static_cast<stickerFormatWebp &>(obj)); + return true; + case stickerFormatTgs::ID: + func(static_cast<stickerFormatTgs &>(obj)); + return true; + case stickerFormatWebm::ID: + func(static_cast<stickerFormatWebm &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(StickerType &obj, const T &func) { + switch (obj.get_id()) { + case stickerTypeRegular::ID: + func(static_cast<stickerTypeRegular &>(obj)); + return true; + case stickerTypeMask::ID: + func(static_cast<stickerTypeMask &>(obj)); + return true; + case stickerTypeCustomEmoji::ID: + func(static_cast<stickerTypeCustomEmoji &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(StorePaymentPurpose &obj, const T &func) { + switch (obj.get_id()) { + case storePaymentPurposePremiumSubscription::ID: + func(static_cast<storePaymentPurposePremiumSubscription &>(obj)); + return true; + case storePaymentPurposeGiftedPremium::ID: + func(static_cast<storePaymentPurposeGiftedPremium &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SuggestedAction &obj, const T &func) { + switch (obj.get_id()) { + case suggestedActionEnableArchiveAndMuteNewChats::ID: + func(static_cast<suggestedActionEnableArchiveAndMuteNewChats &>(obj)); + return true; + case suggestedActionCheckPassword::ID: + func(static_cast<suggestedActionCheckPassword &>(obj)); + return true; + case suggestedActionCheckPhoneNumber::ID: + func(static_cast<suggestedActionCheckPhoneNumber &>(obj)); + return true; + case suggestedActionViewChecksHint::ID: + func(static_cast<suggestedActionViewChecksHint &>(obj)); + return true; + case suggestedActionConvertToBroadcastGroup::ID: + func(static_cast<suggestedActionConvertToBroadcastGroup &>(obj)); + return true; + case suggestedActionSetPassword::ID: + func(static_cast<suggestedActionSetPassword &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SupergroupMembersFilter &obj, const T &func) { + switch (obj.get_id()) { + case supergroupMembersFilterRecent::ID: + func(static_cast<supergroupMembersFilterRecent &>(obj)); + return true; + case supergroupMembersFilterContacts::ID: + func(static_cast<supergroupMembersFilterContacts &>(obj)); + return true; + case supergroupMembersFilterAdministrators::ID: + func(static_cast<supergroupMembersFilterAdministrators &>(obj)); + return true; + case supergroupMembersFilterSearch::ID: + func(static_cast<supergroupMembersFilterSearch &>(obj)); + return true; + case supergroupMembersFilterRestricted::ID: + func(static_cast<supergroupMembersFilterRestricted &>(obj)); + return true; + case supergroupMembersFilterBanned::ID: + func(static_cast<supergroupMembersFilterBanned &>(obj)); + return true; + case supergroupMembersFilterMention::ID: + func(static_cast<supergroupMembersFilterMention &>(obj)); + return true; + case supergroupMembersFilterBots::ID: + func(static_cast<supergroupMembersFilterBots &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(TMeUrlType &obj, const T &func) { + switch (obj.get_id()) { + case tMeUrlTypeUser::ID: + func(static_cast<tMeUrlTypeUser &>(obj)); + return true; + case tMeUrlTypeSupergroup::ID: + func(static_cast<tMeUrlTypeSupergroup &>(obj)); + return true; + case tMeUrlTypeChatInvite::ID: + func(static_cast<tMeUrlTypeChatInvite &>(obj)); + return true; + case tMeUrlTypeStickerSet::ID: + func(static_cast<tMeUrlTypeStickerSet &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(TargetChat &obj, const T &func) { + switch (obj.get_id()) { + case targetChatCurrent::ID: + func(static_cast<targetChatCurrent &>(obj)); + return true; + case targetChatChosen::ID: + func(static_cast<targetChatChosen &>(obj)); + return true; + case targetChatInternalLink::ID: + func(static_cast<targetChatInternalLink &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(TextEntityType &obj, const T &func) { + switch (obj.get_id()) { + case textEntityTypeMention::ID: + func(static_cast<textEntityTypeMention &>(obj)); + return true; + case textEntityTypeHashtag::ID: + func(static_cast<textEntityTypeHashtag &>(obj)); + return true; + case textEntityTypeCashtag::ID: + func(static_cast<textEntityTypeCashtag &>(obj)); + return true; + case textEntityTypeBotCommand::ID: + func(static_cast<textEntityTypeBotCommand &>(obj)); + return true; + case textEntityTypeUrl::ID: + func(static_cast<textEntityTypeUrl &>(obj)); + return true; + case textEntityTypeEmailAddress::ID: + func(static_cast<textEntityTypeEmailAddress &>(obj)); + return true; + case textEntityTypePhoneNumber::ID: + func(static_cast<textEntityTypePhoneNumber &>(obj)); + return true; + case textEntityTypeBankCardNumber::ID: + func(static_cast<textEntityTypeBankCardNumber &>(obj)); + return true; + case textEntityTypeBold::ID: + func(static_cast<textEntityTypeBold &>(obj)); + return true; + case textEntityTypeItalic::ID: + func(static_cast<textEntityTypeItalic &>(obj)); + return true; + case textEntityTypeUnderline::ID: + func(static_cast<textEntityTypeUnderline &>(obj)); + return true; + case textEntityTypeStrikethrough::ID: + func(static_cast<textEntityTypeStrikethrough &>(obj)); + return true; + case textEntityTypeSpoiler::ID: + func(static_cast<textEntityTypeSpoiler &>(obj)); + return true; + case textEntityTypeCode::ID: + func(static_cast<textEntityTypeCode &>(obj)); + return true; + case textEntityTypePre::ID: + func(static_cast<textEntityTypePre &>(obj)); + return true; + case textEntityTypePreCode::ID: + func(static_cast<textEntityTypePreCode &>(obj)); + return true; + case textEntityTypeTextUrl::ID: + func(static_cast<textEntityTypeTextUrl &>(obj)); + return true; + case textEntityTypeMentionName::ID: + func(static_cast<textEntityTypeMentionName &>(obj)); + return true; + case textEntityTypeCustomEmoji::ID: + func(static_cast<textEntityTypeCustomEmoji &>(obj)); + return true; + case textEntityTypeMediaTimestamp::ID: + func(static_cast<textEntityTypeMediaTimestamp &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(TextParseMode &obj, const T &func) { + switch (obj.get_id()) { + case textParseModeMarkdown::ID: + func(static_cast<textParseModeMarkdown &>(obj)); + return true; + case textParseModeHTML::ID: + func(static_cast<textParseModeHTML &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ThumbnailFormat &obj, const T &func) { + switch (obj.get_id()) { + case thumbnailFormatJpeg::ID: + func(static_cast<thumbnailFormatJpeg &>(obj)); + return true; + case thumbnailFormatGif::ID: + func(static_cast<thumbnailFormatGif &>(obj)); + return true; + case thumbnailFormatMpeg4::ID: + func(static_cast<thumbnailFormatMpeg4 &>(obj)); + return true; + case thumbnailFormatPng::ID: + func(static_cast<thumbnailFormatPng &>(obj)); + return true; + case thumbnailFormatTgs::ID: + func(static_cast<thumbnailFormatTgs &>(obj)); + return true; + case thumbnailFormatWebm::ID: + func(static_cast<thumbnailFormatWebm &>(obj)); + return true; + case thumbnailFormatWebp::ID: + func(static_cast<thumbnailFormatWebp &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(TopChatCategory &obj, const T &func) { + switch (obj.get_id()) { + case topChatCategoryUsers::ID: + func(static_cast<topChatCategoryUsers &>(obj)); + return true; + case topChatCategoryBots::ID: + func(static_cast<topChatCategoryBots &>(obj)); + return true; + case topChatCategoryGroups::ID: + func(static_cast<topChatCategoryGroups &>(obj)); + return true; + case topChatCategoryChannels::ID: + func(static_cast<topChatCategoryChannels &>(obj)); + return true; + case topChatCategoryInlineBots::ID: + func(static_cast<topChatCategoryInlineBots &>(obj)); + return true; + case topChatCategoryCalls::ID: + func(static_cast<topChatCategoryCalls &>(obj)); + return true; + case topChatCategoryForwardChats::ID: + func(static_cast<topChatCategoryForwardChats &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Update &obj, const T &func) { + switch (obj.get_id()) { + case updateAuthorizationState::ID: + func(static_cast<updateAuthorizationState &>(obj)); + return true; + case updateNewMessage::ID: + func(static_cast<updateNewMessage &>(obj)); + return true; + case updateMessageSendAcknowledged::ID: + func(static_cast<updateMessageSendAcknowledged &>(obj)); + return true; + case updateMessageSendSucceeded::ID: + func(static_cast<updateMessageSendSucceeded &>(obj)); + return true; + case updateMessageSendFailed::ID: + func(static_cast<updateMessageSendFailed &>(obj)); + return true; + case updateMessageContent::ID: + func(static_cast<updateMessageContent &>(obj)); + return true; + case updateMessageEdited::ID: + func(static_cast<updateMessageEdited &>(obj)); + return true; + case updateMessageIsPinned::ID: + func(static_cast<updateMessageIsPinned &>(obj)); + return true; + case updateMessageInteractionInfo::ID: + func(static_cast<updateMessageInteractionInfo &>(obj)); + return true; + case updateMessageContentOpened::ID: + func(static_cast<updateMessageContentOpened &>(obj)); + return true; + case updateMessageMentionRead::ID: + func(static_cast<updateMessageMentionRead &>(obj)); + return true; + case updateMessageUnreadReactions::ID: + func(static_cast<updateMessageUnreadReactions &>(obj)); + return true; + case updateMessageLiveLocationViewed::ID: + func(static_cast<updateMessageLiveLocationViewed &>(obj)); + return true; + case updateNewChat::ID: + func(static_cast<updateNewChat &>(obj)); + return true; + case updateChatTitle::ID: + func(static_cast<updateChatTitle &>(obj)); + return true; + case updateChatPhoto::ID: + func(static_cast<updateChatPhoto &>(obj)); + return true; + case updateChatPermissions::ID: + func(static_cast<updateChatPermissions &>(obj)); + return true; + case updateChatLastMessage::ID: + func(static_cast<updateChatLastMessage &>(obj)); + return true; + case updateChatPosition::ID: + func(static_cast<updateChatPosition &>(obj)); + return true; + case updateChatReadInbox::ID: + func(static_cast<updateChatReadInbox &>(obj)); + return true; + case updateChatReadOutbox::ID: + func(static_cast<updateChatReadOutbox &>(obj)); + return true; + case updateChatActionBar::ID: + func(static_cast<updateChatActionBar &>(obj)); + return true; + case updateChatAvailableReactions::ID: + func(static_cast<updateChatAvailableReactions &>(obj)); + return true; + case updateChatDraftMessage::ID: + func(static_cast<updateChatDraftMessage &>(obj)); + return true; + case updateChatMessageSender::ID: + func(static_cast<updateChatMessageSender &>(obj)); + return true; + case updateChatMessageTtl::ID: + func(static_cast<updateChatMessageTtl &>(obj)); + return true; + case updateChatNotificationSettings::ID: + func(static_cast<updateChatNotificationSettings &>(obj)); + return true; + case updateChatPendingJoinRequests::ID: + func(static_cast<updateChatPendingJoinRequests &>(obj)); + return true; + case updateChatReplyMarkup::ID: + func(static_cast<updateChatReplyMarkup &>(obj)); + return true; + case updateChatTheme::ID: + func(static_cast<updateChatTheme &>(obj)); + return true; + case updateChatUnreadMentionCount::ID: + func(static_cast<updateChatUnreadMentionCount &>(obj)); + return true; + case updateChatUnreadReactionCount::ID: + func(static_cast<updateChatUnreadReactionCount &>(obj)); + return true; + case updateChatVideoChat::ID: + func(static_cast<updateChatVideoChat &>(obj)); + return true; + case updateChatDefaultDisableNotification::ID: + func(static_cast<updateChatDefaultDisableNotification &>(obj)); + return true; + case updateChatHasProtectedContent::ID: + func(static_cast<updateChatHasProtectedContent &>(obj)); + return true; + case updateChatHasScheduledMessages::ID: + func(static_cast<updateChatHasScheduledMessages &>(obj)); + return true; + case updateChatIsBlocked::ID: + func(static_cast<updateChatIsBlocked &>(obj)); + return true; + case updateChatIsMarkedAsUnread::ID: + func(static_cast<updateChatIsMarkedAsUnread &>(obj)); + return true; + case updateChatFilters::ID: + func(static_cast<updateChatFilters &>(obj)); + return true; + case updateChatOnlineMemberCount::ID: + func(static_cast<updateChatOnlineMemberCount &>(obj)); + return true; + case updateForumTopicInfo::ID: + func(static_cast<updateForumTopicInfo &>(obj)); + return true; + case updateScopeNotificationSettings::ID: + func(static_cast<updateScopeNotificationSettings &>(obj)); + return true; + case updateNotification::ID: + func(static_cast<updateNotification &>(obj)); + return true; + case updateNotificationGroup::ID: + func(static_cast<updateNotificationGroup &>(obj)); + return true; + case updateActiveNotifications::ID: + func(static_cast<updateActiveNotifications &>(obj)); + return true; + case updateHavePendingNotifications::ID: + func(static_cast<updateHavePendingNotifications &>(obj)); + return true; + case updateDeleteMessages::ID: + func(static_cast<updateDeleteMessages &>(obj)); + return true; + case updateChatAction::ID: + func(static_cast<updateChatAction &>(obj)); + return true; + case updateUserStatus::ID: + func(static_cast<updateUserStatus &>(obj)); + return true; + case updateUser::ID: + func(static_cast<updateUser &>(obj)); + return true; + case updateBasicGroup::ID: + func(static_cast<updateBasicGroup &>(obj)); + return true; + case updateSupergroup::ID: + func(static_cast<updateSupergroup &>(obj)); + return true; + case updateSecretChat::ID: + func(static_cast<updateSecretChat &>(obj)); + return true; + case updateUserFullInfo::ID: + func(static_cast<updateUserFullInfo &>(obj)); + return true; + case updateBasicGroupFullInfo::ID: + func(static_cast<updateBasicGroupFullInfo &>(obj)); + return true; + case updateSupergroupFullInfo::ID: + func(static_cast<updateSupergroupFullInfo &>(obj)); + return true; + case updateServiceNotification::ID: + func(static_cast<updateServiceNotification &>(obj)); + return true; + case updateFile::ID: + func(static_cast<updateFile &>(obj)); + return true; + case updateFileGenerationStart::ID: + func(static_cast<updateFileGenerationStart &>(obj)); + return true; + case updateFileGenerationStop::ID: + func(static_cast<updateFileGenerationStop &>(obj)); + return true; + case updateFileDownloads::ID: + func(static_cast<updateFileDownloads &>(obj)); + return true; + case updateFileAddedToDownloads::ID: + func(static_cast<updateFileAddedToDownloads &>(obj)); + return true; + case updateFileDownload::ID: + func(static_cast<updateFileDownload &>(obj)); + return true; + case updateFileRemovedFromDownloads::ID: + func(static_cast<updateFileRemovedFromDownloads &>(obj)); + return true; + case updateCall::ID: + func(static_cast<updateCall &>(obj)); + return true; + case updateGroupCall::ID: + func(static_cast<updateGroupCall &>(obj)); + return true; + case updateGroupCallParticipant::ID: + func(static_cast<updateGroupCallParticipant &>(obj)); + return true; + case updateNewCallSignalingData::ID: + func(static_cast<updateNewCallSignalingData &>(obj)); + return true; + case updateUserPrivacySettingRules::ID: + func(static_cast<updateUserPrivacySettingRules &>(obj)); + return true; + case updateUnreadMessageCount::ID: + func(static_cast<updateUnreadMessageCount &>(obj)); + return true; + case updateUnreadChatCount::ID: + func(static_cast<updateUnreadChatCount &>(obj)); + return true; + case updateOption::ID: + func(static_cast<updateOption &>(obj)); + return true; + case updateStickerSet::ID: + func(static_cast<updateStickerSet &>(obj)); + return true; + case updateInstalledStickerSets::ID: + func(static_cast<updateInstalledStickerSets &>(obj)); + return true; + case updateTrendingStickerSets::ID: + func(static_cast<updateTrendingStickerSets &>(obj)); + return true; + case updateRecentStickers::ID: + func(static_cast<updateRecentStickers &>(obj)); + return true; + case updateFavoriteStickers::ID: + func(static_cast<updateFavoriteStickers &>(obj)); + return true; + case updateSavedAnimations::ID: + func(static_cast<updateSavedAnimations &>(obj)); + return true; + case updateSavedNotificationSounds::ID: + func(static_cast<updateSavedNotificationSounds &>(obj)); + return true; + case updateSelectedBackground::ID: + func(static_cast<updateSelectedBackground &>(obj)); + return true; + case updateChatThemes::ID: + func(static_cast<updateChatThemes &>(obj)); + return true; + case updateLanguagePackStrings::ID: + func(static_cast<updateLanguagePackStrings &>(obj)); + return true; + case updateConnectionState::ID: + func(static_cast<updateConnectionState &>(obj)); + return true; + case updateTermsOfService::ID: + func(static_cast<updateTermsOfService &>(obj)); + return true; + case updateUsersNearby::ID: + func(static_cast<updateUsersNearby &>(obj)); + return true; + case updateAttachmentMenuBots::ID: + func(static_cast<updateAttachmentMenuBots &>(obj)); + return true; + case updateWebAppMessageSent::ID: + func(static_cast<updateWebAppMessageSent &>(obj)); + return true; + case updateActiveEmojiReactions::ID: + func(static_cast<updateActiveEmojiReactions &>(obj)); + return true; + case updateDefaultReactionType::ID: + func(static_cast<updateDefaultReactionType &>(obj)); + return true; + case updateDiceEmojis::ID: + func(static_cast<updateDiceEmojis &>(obj)); + return true; + case updateAnimatedEmojiMessageClicked::ID: + func(static_cast<updateAnimatedEmojiMessageClicked &>(obj)); + return true; + case updateAnimationSearchParameters::ID: + func(static_cast<updateAnimationSearchParameters &>(obj)); + return true; + case updateSuggestedActions::ID: + func(static_cast<updateSuggestedActions &>(obj)); + return true; + case updateNewInlineQuery::ID: + func(static_cast<updateNewInlineQuery &>(obj)); + return true; + case updateNewChosenInlineResult::ID: + func(static_cast<updateNewChosenInlineResult &>(obj)); + return true; + case updateNewCallbackQuery::ID: + func(static_cast<updateNewCallbackQuery &>(obj)); + return true; + case updateNewInlineCallbackQuery::ID: + func(static_cast<updateNewInlineCallbackQuery &>(obj)); + return true; + case updateNewShippingQuery::ID: + func(static_cast<updateNewShippingQuery &>(obj)); + return true; + case updateNewPreCheckoutQuery::ID: + func(static_cast<updateNewPreCheckoutQuery &>(obj)); + return true; + case updateNewCustomEvent::ID: + func(static_cast<updateNewCustomEvent &>(obj)); + return true; + case updateNewCustomQuery::ID: + func(static_cast<updateNewCustomQuery &>(obj)); + return true; + case updatePoll::ID: + func(static_cast<updatePoll &>(obj)); + return true; + case updatePollAnswer::ID: + func(static_cast<updatePollAnswer &>(obj)); + return true; + case updateChatMember::ID: + func(static_cast<updateChatMember &>(obj)); + return true; + case updateNewChatJoinRequest::ID: + func(static_cast<updateNewChatJoinRequest &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(UserPrivacySetting &obj, const T &func) { + switch (obj.get_id()) { + case userPrivacySettingShowStatus::ID: + func(static_cast<userPrivacySettingShowStatus &>(obj)); + return true; + case userPrivacySettingShowProfilePhoto::ID: + func(static_cast<userPrivacySettingShowProfilePhoto &>(obj)); + return true; + case userPrivacySettingShowLinkInForwardedMessages::ID: + func(static_cast<userPrivacySettingShowLinkInForwardedMessages &>(obj)); + return true; + case userPrivacySettingShowPhoneNumber::ID: + func(static_cast<userPrivacySettingShowPhoneNumber &>(obj)); + return true; + case userPrivacySettingAllowChatInvites::ID: + func(static_cast<userPrivacySettingAllowChatInvites &>(obj)); + return true; + case userPrivacySettingAllowCalls::ID: + func(static_cast<userPrivacySettingAllowCalls &>(obj)); + return true; + case userPrivacySettingAllowPeerToPeerCalls::ID: + func(static_cast<userPrivacySettingAllowPeerToPeerCalls &>(obj)); + return true; + case userPrivacySettingAllowFindingByPhoneNumber::ID: + func(static_cast<userPrivacySettingAllowFindingByPhoneNumber &>(obj)); + return true; + case userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages::ID: + func(static_cast<userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(UserPrivacySettingRule &obj, const T &func) { + switch (obj.get_id()) { + case userPrivacySettingRuleAllowAll::ID: + func(static_cast<userPrivacySettingRuleAllowAll &>(obj)); + return true; + case userPrivacySettingRuleAllowContacts::ID: + func(static_cast<userPrivacySettingRuleAllowContacts &>(obj)); + return true; + case userPrivacySettingRuleAllowUsers::ID: + func(static_cast<userPrivacySettingRuleAllowUsers &>(obj)); + return true; + case userPrivacySettingRuleAllowChatMembers::ID: + func(static_cast<userPrivacySettingRuleAllowChatMembers &>(obj)); + return true; + case userPrivacySettingRuleRestrictAll::ID: + func(static_cast<userPrivacySettingRuleRestrictAll &>(obj)); + return true; + case userPrivacySettingRuleRestrictContacts::ID: + func(static_cast<userPrivacySettingRuleRestrictContacts &>(obj)); + return true; + case userPrivacySettingRuleRestrictUsers::ID: + func(static_cast<userPrivacySettingRuleRestrictUsers &>(obj)); + return true; + case userPrivacySettingRuleRestrictChatMembers::ID: + func(static_cast<userPrivacySettingRuleRestrictChatMembers &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(UserStatus &obj, const T &func) { + switch (obj.get_id()) { + case userStatusEmpty::ID: + func(static_cast<userStatusEmpty &>(obj)); + return true; + case userStatusOnline::ID: + func(static_cast<userStatusOnline &>(obj)); + return true; + case userStatusOffline::ID: + func(static_cast<userStatusOffline &>(obj)); + return true; + case userStatusRecently::ID: + func(static_cast<userStatusRecently &>(obj)); + return true; + case userStatusLastWeek::ID: + func(static_cast<userStatusLastWeek &>(obj)); + return true; + case userStatusLastMonth::ID: + func(static_cast<userStatusLastMonth &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(UserType &obj, const T &func) { + switch (obj.get_id()) { + case userTypeRegular::ID: + func(static_cast<userTypeRegular &>(obj)); + return true; + case userTypeDeleted::ID: + func(static_cast<userTypeDeleted &>(obj)); + return true; + case userTypeBot::ID: + func(static_cast<userTypeBot &>(obj)); + return true; + case userTypeUnknown::ID: + func(static_cast<userTypeUnknown &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(VectorPathCommand &obj, const T &func) { + switch (obj.get_id()) { + case vectorPathCommandLine::ID: + func(static_cast<vectorPathCommandLine &>(obj)); + return true; + case vectorPathCommandCubicBezierCurve::ID: + func(static_cast<vectorPathCommandCubicBezierCurve &>(obj)); + return true; + default: + return false; + } +} + +} // namespace td_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.cpp new file mode 100644 index 0000000000..f20c545374 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.cpp @@ -0,0 +1,15711 @@ +#include "td/telegram/td_api_json.h" + +#include "td/telegram/td_api.h" +#include "td/telegram/td_api.hpp" + +#include "td/tl/tl_json.h" + +#include "td/utils/base64.h" +#include "td/utils/common.h" +#include "td/utils/FlatHashMap.h" +#include "td/utils/Slice.h" + +#include <functional> + +namespace td { +namespace td_api { + +void to_json(JsonValueScope &jv, const tl_object_ptr<Object> &value) { + td::to_json(jv, std::move(value)); +} + +Status from_json(tl_object_ptr<Function> &to, td::JsonValue from) { + return td::from_json(to, std::move(from)); +} + +template <class T> +auto lazy_to_json(JsonValueScope &jv, const T &t) -> decltype(td_api::to_json(jv, t)) { + return td_api::to_json(jv, t); +} + +template <class T> +void lazy_to_json(std::reference_wrapper<JsonValueScope>, const T &t) { + UNREACHABLE(); +} + +void to_json(JsonValueScope &jv, const Object &object) { + downcast_call(const_cast<Object &>(object), [&jv](const auto &object) { lazy_to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const Function &object) { + downcast_call(const_cast<Function &>(object), [&jv](const auto &object) { lazy_to_json(jv, object); }); +} + +Result<int32> tl_constructor_from_string(td_api::BackgroundFill *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"backgroundFillSolid", 1010678813}, + {"backgroundFillGradient", -1839206017}, + {"backgroundFillFreeformGradient", -1145469255} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::BackgroundType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"backgroundTypeWallpaper", 1972128891}, + {"backgroundTypePattern", 1290213117}, + {"backgroundTypeFill", 993008684} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::BotCommandScope *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"botCommandScopeDefault", 795652779}, + {"botCommandScopeAllPrivateChats", -344889543}, + {"botCommandScopeAllGroupChats", -981088162}, + {"botCommandScopeAllChatAdministrators", 1998329169}, + {"botCommandScopeChat", -430234971}, + {"botCommandScopeChatAdministrators", 1119682126}, + {"botCommandScopeChatMember", -211380494} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::CallProblem *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"callProblemEcho", 801116548}, + {"callProblemNoise", 1053065359}, + {"callProblemInterruptions", 1119493218}, + {"callProblemDistortedSpeech", 379960581}, + {"callProblemSilentLocal", 253652790}, + {"callProblemSilentRemote", 573634714}, + {"callProblemDropped", -1207311487}, + {"callProblemDistortedVideo", 385245706}, + {"callProblemPixelatedVideo", 2115315411} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::CallbackQueryPayload *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"callbackQueryPayloadData", -1977729946}, + {"callbackQueryPayloadDataWithPassword", 1340266738}, + {"callbackQueryPayloadGame", 1303571512} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ChatAction *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"chatActionTyping", 380122167}, + {"chatActionRecordingVideo", 216553362}, + {"chatActionUploadingVideo", 1234185270}, + {"chatActionRecordingVoiceNote", -808850058}, + {"chatActionUploadingVoiceNote", -613643666}, + {"chatActionUploadingPhoto", 654240583}, + {"chatActionUploadingDocument", 167884362}, + {"chatActionChoosingSticker", 372753697}, + {"chatActionChoosingLocation", -2017893596}, + {"chatActionChoosingContact", -1222507496}, + {"chatActionStartPlayingGame", -865884164}, + {"chatActionRecordingVideoNote", 16523393}, + {"chatActionUploadingVideoNote", 1172364918}, + {"chatActionWatchingAnimations", 2052990641}, + {"chatActionCancel", 1160523958} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ChatAvailableReactions *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"chatAvailableReactionsAll", -537887666}, + {"chatAvailableReactionsSome", -640810821} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ChatList *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"chatListMain", -400991316}, + {"chatListArchive", 362770115}, + {"chatListFilter", -2022707655} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ChatMemberStatus *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"chatMemberStatusCreator", -160019714}, + {"chatMemberStatusAdministrator", -70024163}, + {"chatMemberStatusMember", 844723285}, + {"chatMemberStatusRestricted", 1661432998}, + {"chatMemberStatusLeft", -5815259}, + {"chatMemberStatusBanned", -1653518666} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ChatMembersFilter *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"chatMembersFilterContacts", 1774485671}, + {"chatMembersFilterAdministrators", -1266893796}, + {"chatMembersFilterMembers", 670504342}, + {"chatMembersFilterMention", 856419831}, + {"chatMembersFilterRestricted", 1256282813}, + {"chatMembersFilterBanned", -1863102648}, + {"chatMembersFilterBots", -1422567288} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ChatReportReason *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"chatReportReasonSpam", -510848863}, + {"chatReportReasonViolence", -1330235395}, + {"chatReportReasonPornography", 722614385}, + {"chatReportReasonChildAbuse", -1070686531}, + {"chatReportReasonCopyright", 986898080}, + {"chatReportReasonUnrelatedLocation", 2632403}, + {"chatReportReasonFake", -1713230446}, + {"chatReportReasonIllegalDrugs", -844539307}, + {"chatReportReasonPersonalDetails", 1121159029}, + {"chatReportReasonCustom", 1288925974} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::DeviceToken *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"deviceTokenFirebaseCloudMessaging", -797881849}, + {"deviceTokenApplePush", 387541955}, + {"deviceTokenApplePushVoIP", 804275689}, + {"deviceTokenWindowsPush", -1410514289}, + {"deviceTokenMicrosoftPush", 1224269900}, + {"deviceTokenMicrosoftPushVoIP", -785603759}, + {"deviceTokenWebPush", -1694507273}, + {"deviceTokenSimplePush", 49584736}, + {"deviceTokenUbuntuPush", 1782320422}, + {"deviceTokenBlackBerryPush", 1559167234}, + {"deviceTokenTizenPush", -1359947213} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::EmailAddressAuthentication *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"emailAddressAuthenticationCode", -993257022}, + {"emailAddressAuthenticationAppleId", 633948265}, + {"emailAddressAuthenticationGoogleId", -19142846} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::FileType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"fileTypeNone", 2003009189}, + {"fileTypeAnimation", -290816582}, + {"fileTypeAudio", -709112160}, + {"fileTypeDocument", -564722929}, + {"fileTypeNotificationSound", -1020289271}, + {"fileTypePhoto", -1718914651}, + {"fileTypeProfilePhoto", 1795089315}, + {"fileTypeSecret", -1871899401}, + {"fileTypeSecretThumbnail", -1401326026}, + {"fileTypeSecure", -1419133146}, + {"fileTypeSticker", 475233385}, + {"fileTypeThumbnail", -12443298}, + {"fileTypeUnknown", -2011566768}, + {"fileTypeVideo", 1430816539}, + {"fileTypeVideoNote", -518412385}, + {"fileTypeVoiceNote", -588681661}, + {"fileTypeWallpaper", 1854930076} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::GroupCallVideoQuality *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"groupCallVideoQualityThumbnail", -379186304}, + {"groupCallVideoQualityMedium", 394968234}, + {"groupCallVideoQualityFull", -2125916617} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InlineKeyboardButtonType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inlineKeyboardButtonTypeUrl", 1130741420}, + {"inlineKeyboardButtonTypeLoginUrl", -1203413081}, + {"inlineKeyboardButtonTypeWebApp", -1767471672}, + {"inlineKeyboardButtonTypeCallback", -1127515139}, + {"inlineKeyboardButtonTypeCallbackWithPassword", 908018248}, + {"inlineKeyboardButtonTypeCallbackGame", -383429528}, + {"inlineKeyboardButtonTypeSwitchInline", -2035563307}, + {"inlineKeyboardButtonTypeBuy", 1360739440}, + {"inlineKeyboardButtonTypeUser", 1836574114} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputBackground *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputBackgroundLocal", -1747094364}, + {"inputBackgroundRemote", -274976231} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputChatPhoto *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputChatPhotoPrevious", 23128529}, + {"inputChatPhotoStatic", 1979179699}, + {"inputChatPhotoAnimation", 90846242} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputCredentials *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputCredentialsSaved", -2034385364}, + {"inputCredentialsNew", -829689558}, + {"inputCredentialsApplePay", -1246570799}, + {"inputCredentialsGooglePay", 844384100} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputFile *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputFileId", 1788906253}, + {"inputFileRemote", -107574466}, + {"inputFileLocal", 2056030919}, + {"inputFileGenerated", -1333385216} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputInlineQueryResult *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputInlineQueryResultAnimation", -1489808874}, + {"inputInlineQueryResultArticle", 1973670156}, + {"inputInlineQueryResultAudio", 1260139988}, + {"inputInlineQueryResultContact", 1846064594}, + {"inputInlineQueryResultDocument", 578801869}, + {"inputInlineQueryResultGame", 966074327}, + {"inputInlineQueryResultLocation", -1887650218}, + {"inputInlineQueryResultPhoto", -1123338721}, + {"inputInlineQueryResultSticker", 274007129}, + {"inputInlineQueryResultVenue", 541704509}, + {"inputInlineQueryResultVideo", 1724073191}, + {"inputInlineQueryResultVoiceNote", -1790072503} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputInvoice *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputInvoiceMessage", 1490872848}, + {"inputInvoiceName", -1312155917} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputMessageContent *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputMessageText", 247050392}, + {"inputMessageAnimation", 1208433535}, + {"inputMessageAudio", -626786126}, + {"inputMessageDocument", 1633383097}, + {"inputMessagePhoto", 1648801584}, + {"inputMessageSticker", 1072805625}, + {"inputMessageVideo", -2108486755}, + {"inputMessageVideoNote", 279108859}, + {"inputMessageVoiceNote", 2136519657}, + {"inputMessageLocation", 648735088}, + {"inputMessageVenue", 1447926269}, + {"inputMessageContact", -982446849}, + {"inputMessageDice", 841574313}, + {"inputMessageGame", 1252944610}, + {"inputMessageInvoice", 885857632}, + {"inputMessagePoll", 2054629900}, + {"inputMessageForwarded", 1696232440} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputPassportElement *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputPassportElementPersonalDetails", 164791359}, + {"inputPassportElementPassport", -497011356}, + {"inputPassportElementDriverLicense", 304813264}, + {"inputPassportElementIdentityCard", -9963390}, + {"inputPassportElementInternalPassport", 715360043}, + {"inputPassportElementAddress", 461630480}, + {"inputPassportElementUtilityBill", 1389203841}, + {"inputPassportElementBankStatement", -26585208}, + {"inputPassportElementRentalAgreement", 1736154155}, + {"inputPassportElementPassportRegistration", 1314562128}, + {"inputPassportElementTemporaryRegistration", -1913238047}, + {"inputPassportElementPhoneNumber", 1319357497}, + {"inputPassportElementEmailAddress", -248605659} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::InputPassportElementErrorSource *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"inputPassportElementErrorSourceUnspecified", 267230319}, + {"inputPassportElementErrorSourceDataField", -426795002}, + {"inputPassportElementErrorSourceFrontSide", 588023741}, + {"inputPassportElementErrorSourceReverseSide", 413072891}, + {"inputPassportElementErrorSourceSelfie", -773575528}, + {"inputPassportElementErrorSourceTranslationFile", 505842299}, + {"inputPassportElementErrorSourceTranslationFiles", -527254048}, + {"inputPassportElementErrorSourceFile", -298492469}, + {"inputPassportElementErrorSourceFiles", -2008541640} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::JsonValue *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"jsonValueNull", -92872499}, + {"jsonValueBoolean", -2142186576}, + {"jsonValueNumber", -1010822033}, + {"jsonValueString", 1597947313}, + {"jsonValueArray", -183913546}, + {"jsonValueObject", 520252026} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::KeyboardButtonType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"keyboardButtonTypeText", -1773037256}, + {"keyboardButtonTypeRequestPhoneNumber", -1529235527}, + {"keyboardButtonTypeRequestLocation", -125661955}, + {"keyboardButtonTypeRequestPoll", 1902435512}, + {"keyboardButtonTypeWebApp", 1892220770} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::LanguagePackStringValue *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"languagePackStringValueOrdinary", -249256352}, + {"languagePackStringValuePluralized", 1906840261}, + {"languagePackStringValueDeleted", 1834792698} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::LogStream *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"logStreamDefault", 1390581436}, + {"logStreamFile", 1532136933}, + {"logStreamEmpty", -499912244} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::MaskPoint *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"maskPointForehead", 1027512005}, + {"maskPointEyes", 1748310861}, + {"maskPointMouth", 411773406}, + {"maskPointChin", 534995335} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::MessageSchedulingState *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"messageSchedulingStateSendAtDate", -1485570073}, + {"messageSchedulingStateSendWhenOnline", 2092947464} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::MessageSender *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"messageSenderUser", -336109341}, + {"messageSenderChat", -239660751} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::NetworkStatisticsEntry *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"networkStatisticsEntryFile", 188452706}, + {"networkStatisticsEntryCall", 737000365} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::NetworkType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"networkTypeNone", -1971691759}, + {"networkTypeMobile", 819228239}, + {"networkTypeMobileRoaming", -1435199760}, + {"networkTypeWiFi", -633872070}, + {"networkTypeOther", 1942128539} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::NotificationSettingsScope *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"notificationSettingsScopePrivateChats", 937446759}, + {"notificationSettingsScopeGroupChats", 1212142067}, + {"notificationSettingsScopeChannelChats", 548013448} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::OptionValue *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"optionValueBoolean", 63135518}, + {"optionValueEmpty", 918955155}, + {"optionValueInteger", -186858780}, + {"optionValueString", 756248212} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::PassportElementType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"passportElementTypePersonalDetails", -1032136365}, + {"passportElementTypePassport", -436360376}, + {"passportElementTypeDriverLicense", 1827298379}, + {"passportElementTypeIdentityCard", -502356132}, + {"passportElementTypeInternalPassport", -793781959}, + {"passportElementTypeAddress", 496327874}, + {"passportElementTypeUtilityBill", 627084906}, + {"passportElementTypeBankStatement", 574095667}, + {"passportElementTypeRentalAgreement", -2060583280}, + {"passportElementTypePassportRegistration", -159478209}, + {"passportElementTypeTemporaryRegistration", 1092498527}, + {"passportElementTypePhoneNumber", -995361172}, + {"passportElementTypeEmailAddress", -79321405} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::PollType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"pollTypeRegular", 641265698}, + {"pollTypeQuiz", 657013913} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::PremiumFeature *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"premiumFeatureIncreasedLimits", 1785455031}, + {"premiumFeatureIncreasedUploadFileSize", 1825367155}, + {"premiumFeatureImprovedDownloadSpeed", -267695554}, + {"premiumFeatureVoiceRecognition", 1288216542}, + {"premiumFeatureDisabledAds", -2008587702}, + {"premiumFeatureUniqueReactions", 766750743}, + {"premiumFeatureUniqueStickers", -2101773312}, + {"premiumFeatureCustomEmoji", 1332599628}, + {"premiumFeatureAdvancedChatManagement", 796347674}, + {"premiumFeatureProfileBadge", 233648322}, + {"premiumFeatureEmojiStatus", -36516639}, + {"premiumFeatureAnimatedProfilePhoto", -100741914}, + {"premiumFeatureForumTopicIcon", -823172286}, + {"premiumFeatureAppIcons", 1585050761} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::PremiumLimitType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"premiumLimitTypeSupergroupCount", -247467131}, + {"premiumLimitTypePinnedChatCount", -998947871}, + {"premiumLimitTypeCreatedPublicChatCount", 446086841}, + {"premiumLimitTypeSavedAnimationCount", -19759735}, + {"premiumLimitTypeFavoriteStickerCount", 639754787}, + {"premiumLimitTypeChatFilterCount", -644517214}, + {"premiumLimitTypeChatFilterChosenChatCount", 2057969759}, + {"premiumLimitTypePinnedArchivedChatCount", 1485515276}, + {"premiumLimitTypeCaptionLength", 293984314}, + {"premiumLimitTypeBioLength", -1146976765} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::PremiumSource *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"premiumSourceLimitExceeded", -2052159742}, + {"premiumSourceFeature", 445813541}, + {"premiumSourceLink", 2135071132}, + {"premiumSourceSettings", -285702859} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ProxyType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"proxyTypeSocks5", -890027341}, + {"proxyTypeHttp", -1547188361}, + {"proxyTypeMtproto", -1964826627} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::PublicChatType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"publicChatTypeHasUsername", 350789758}, + {"publicChatTypeIsLocationBased", 1183735952} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ReactionType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"reactionTypeEmoji", -1942084920}, + {"reactionTypeCustomEmoji", -989117709} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::ReplyMarkup *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"replyMarkupRemoveKeyboard", -691252879}, + {"replyMarkupForceReply", 1101461919}, + {"replyMarkupShowKeyboard", -64985802}, + {"replyMarkupInlineKeyboard", -619317658} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::SearchMessagesFilter *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"searchMessagesFilterEmpty", -869395657}, + {"searchMessagesFilterAnimation", -155713339}, + {"searchMessagesFilterAudio", 867505275}, + {"searchMessagesFilterDocument", 1526331215}, + {"searchMessagesFilterPhoto", 925932293}, + {"searchMessagesFilterVideo", 115538222}, + {"searchMessagesFilterVoiceNote", 1841439357}, + {"searchMessagesFilterPhotoAndVideo", 1352130963}, + {"searchMessagesFilterUrl", -1828724341}, + {"searchMessagesFilterChatPhoto", -1247751329}, + {"searchMessagesFilterVideoNote", 564323321}, + {"searchMessagesFilterVoiceAndVideoNote", 664174819}, + {"searchMessagesFilterMention", 2001258652}, + {"searchMessagesFilterUnreadMention", -95769149}, + {"searchMessagesFilterUnreadReaction", -1379651328}, + {"searchMessagesFilterFailedToSend", -596322564}, + {"searchMessagesFilterPinned", 371805512} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::StickerFormat *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"stickerFormatWebp", -2123043040}, + {"stickerFormatTgs", 1614588662}, + {"stickerFormatWebm", -2070162097} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::StickerType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"stickerTypeRegular", 56345973}, + {"stickerTypeMask", -1765394796}, + {"stickerTypeCustomEmoji", -120752249} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::StorePaymentPurpose *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"storePaymentPurposePremiumSubscription", -1497906096}, + {"storePaymentPurposeGiftedPremium", 1916846289} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::SuggestedAction *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"suggestedActionEnableArchiveAndMuteNewChats", 2017586255}, + {"suggestedActionCheckPassword", 1910534839}, + {"suggestedActionCheckPhoneNumber", 648771563}, + {"suggestedActionViewChecksHint", 891303239}, + {"suggestedActionConvertToBroadcastGroup", -965071304}, + {"suggestedActionSetPassword", 1863613848} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::SupergroupMembersFilter *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"supergroupMembersFilterRecent", 1178199509}, + {"supergroupMembersFilterContacts", -1282910856}, + {"supergroupMembersFilterAdministrators", -2097380265}, + {"supergroupMembersFilterSearch", -1696358469}, + {"supergroupMembersFilterRestricted", -1107800034}, + {"supergroupMembersFilterBanned", -1210621683}, + {"supergroupMembersFilterMention", 947915036}, + {"supergroupMembersFilterBots", 492138918} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::TextEntityType *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"textEntityTypeMention", 934535013}, + {"textEntityTypeHashtag", -1023958307}, + {"textEntityTypeCashtag", 1222915915}, + {"textEntityTypeBotCommand", -1150997581}, + {"textEntityTypeUrl", -1312762756}, + {"textEntityTypeEmailAddress", 1425545249}, + {"textEntityTypePhoneNumber", -1160140246}, + {"textEntityTypeBankCardNumber", 105986320}, + {"textEntityTypeBold", -1128210000}, + {"textEntityTypeItalic", -118253987}, + {"textEntityTypeUnderline", 792317842}, + {"textEntityTypeStrikethrough", 961529082}, + {"textEntityTypeSpoiler", 544019899}, + {"textEntityTypeCode", -974534326}, + {"textEntityTypePre", 1648958606}, + {"textEntityTypePreCode", -945325397}, + {"textEntityTypeTextUrl", 445719651}, + {"textEntityTypeMentionName", -1570974289}, + {"textEntityTypeCustomEmoji", 1724820677}, + {"textEntityTypeMediaTimestamp", -1841898992} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::TextParseMode *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"textParseModeMarkdown", 360073407}, + {"textParseModeHTML", 1660208627} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::TopChatCategory *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"topChatCategoryUsers", 1026706816}, + {"topChatCategoryBots", -1577129195}, + {"topChatCategoryGroups", 1530056846}, + {"topChatCategoryChannels", -500825885}, + {"topChatCategoryInlineBots", 377023356}, + {"topChatCategoryCalls", 356208861}, + {"topChatCategoryForwardChats", 1695922133} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::UserPrivacySetting *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"userPrivacySettingShowStatus", 1862829310}, + {"userPrivacySettingShowProfilePhoto", 1408485877}, + {"userPrivacySettingShowLinkInForwardedMessages", 592688870}, + {"userPrivacySettingShowPhoneNumber", -791567831}, + {"userPrivacySettingAllowChatInvites", 1271668007}, + {"userPrivacySettingAllowCalls", -906967291}, + {"userPrivacySettingAllowPeerToPeerCalls", 352500032}, + {"userPrivacySettingAllowFindingByPhoneNumber", -1846645423}, + {"userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages", 338112060} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::UserPrivacySettingRule *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"userPrivacySettingRuleAllowAll", -1967186881}, + {"userPrivacySettingRuleAllowContacts", -1892733680}, + {"userPrivacySettingRuleAllowUsers", 1110988334}, + {"userPrivacySettingRuleAllowChatMembers", -2048749863}, + {"userPrivacySettingRuleRestrictAll", -1406495408}, + {"userPrivacySettingRuleRestrictContacts", 1008389378}, + {"userPrivacySettingRuleRestrictUsers", 622796522}, + {"userPrivacySettingRuleRestrictChatMembers", 392530897} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::Object *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"accountTtl", 1324495492}, + {"address", -2043654342}, + {"autoDownloadSettings", -813805749}, + {"backgroundFillSolid", 1010678813}, + {"backgroundFillGradient", -1839206017}, + {"backgroundFillFreeformGradient", -1145469255}, + {"backgroundTypeWallpaper", 1972128891}, + {"backgroundTypePattern", 1290213117}, + {"backgroundTypeFill", 993008684}, + {"botCommand", -1032140601}, + {"botCommandScopeDefault", 795652779}, + {"botCommandScopeAllPrivateChats", -344889543}, + {"botCommandScopeAllGroupChats", -981088162}, + {"botCommandScopeAllChatAdministrators", 1998329169}, + {"botCommandScopeChat", -430234971}, + {"botCommandScopeChatAdministrators", 1119682126}, + {"botCommandScopeChatMember", -211380494}, + {"botMenuButton", -944407322}, + {"callProblemEcho", 801116548}, + {"callProblemNoise", 1053065359}, + {"callProblemInterruptions", 1119493218}, + {"callProblemDistortedSpeech", 379960581}, + {"callProblemSilentLocal", 253652790}, + {"callProblemSilentRemote", 573634714}, + {"callProblemDropped", -1207311487}, + {"callProblemDistortedVideo", 385245706}, + {"callProblemPixelatedVideo", 2115315411}, + {"callProtocol", -1075562897}, + {"callbackQueryPayloadData", -1977729946}, + {"callbackQueryPayloadDataWithPassword", 1340266738}, + {"callbackQueryPayloadGame", 1303571512}, + {"chatActionTyping", 380122167}, + {"chatActionRecordingVideo", 216553362}, + {"chatActionUploadingVideo", 1234185270}, + {"chatActionRecordingVoiceNote", -808850058}, + {"chatActionUploadingVoiceNote", -613643666}, + {"chatActionUploadingPhoto", 654240583}, + {"chatActionUploadingDocument", 167884362}, + {"chatActionChoosingSticker", 372753697}, + {"chatActionChoosingLocation", -2017893596}, + {"chatActionChoosingContact", -1222507496}, + {"chatActionStartPlayingGame", -865884164}, + {"chatActionRecordingVideoNote", 16523393}, + {"chatActionUploadingVideoNote", 1172364918}, + {"chatActionWatchingAnimations", 2052990641}, + {"chatActionCancel", 1160523958}, + {"chatAdministratorRights", -1384650041}, + {"chatAvailableReactionsAll", -537887666}, + {"chatAvailableReactionsSome", -640810821}, + {"chatEventLogFilters", 1648261677}, + {"chatFilter", -664815123}, + {"chatInviteLinkMember", -1409060582}, + {"chatJoinRequest", 59341416}, + {"chatListMain", -400991316}, + {"chatListArchive", 362770115}, + {"chatListFilter", -2022707655}, + {"chatLocation", -1566863583}, + {"chatMemberStatusCreator", -160019714}, + {"chatMemberStatusAdministrator", -70024163}, + {"chatMemberStatusMember", 844723285}, + {"chatMemberStatusRestricted", 1661432998}, + {"chatMemberStatusLeft", -5815259}, + {"chatMemberStatusBanned", -1653518666}, + {"chatMembersFilterContacts", 1774485671}, + {"chatMembersFilterAdministrators", -1266893796}, + {"chatMembersFilterMembers", 670504342}, + {"chatMembersFilterMention", 856419831}, + {"chatMembersFilterRestricted", 1256282813}, + {"chatMembersFilterBanned", -1863102648}, + {"chatMembersFilterBots", -1422567288}, + {"chatNotificationSettings", 944322400}, + {"chatPermissions", -835592567}, + {"chatReportReasonSpam", -510848863}, + {"chatReportReasonViolence", -1330235395}, + {"chatReportReasonPornography", 722614385}, + {"chatReportReasonChildAbuse", -1070686531}, + {"chatReportReasonCopyright", 986898080}, + {"chatReportReasonUnrelatedLocation", 2632403}, + {"chatReportReasonFake", -1713230446}, + {"chatReportReasonIllegalDrugs", -844539307}, + {"chatReportReasonPersonalDetails", 1121159029}, + {"chatReportReasonCustom", 1288925974}, + {"contact", -1993844876}, + {"date", -277956960}, + {"deviceTokenFirebaseCloudMessaging", -797881849}, + {"deviceTokenApplePush", 387541955}, + {"deviceTokenApplePushVoIP", 804275689}, + {"deviceTokenWindowsPush", -1410514289}, + {"deviceTokenMicrosoftPush", 1224269900}, + {"deviceTokenMicrosoftPushVoIP", -785603759}, + {"deviceTokenWebPush", -1694507273}, + {"deviceTokenSimplePush", 49584736}, + {"deviceTokenUbuntuPush", 1782320422}, + {"deviceTokenBlackBerryPush", 1559167234}, + {"deviceTokenTizenPush", -1359947213}, + {"draftMessage", 1373050112}, + {"emailAddressAuthenticationCode", -993257022}, + {"emailAddressAuthenticationAppleId", 633948265}, + {"emailAddressAuthenticationGoogleId", -19142846}, + {"emojiStatus", 1092133478}, + {"error", -1679978726}, + {"fileTypeNone", 2003009189}, + {"fileTypeAnimation", -290816582}, + {"fileTypeAudio", -709112160}, + {"fileTypeDocument", -564722929}, + {"fileTypeNotificationSound", -1020289271}, + {"fileTypePhoto", -1718914651}, + {"fileTypeProfilePhoto", 1795089315}, + {"fileTypeSecret", -1871899401}, + {"fileTypeSecretThumbnail", -1401326026}, + {"fileTypeSecure", -1419133146}, + {"fileTypeSticker", 475233385}, + {"fileTypeThumbnail", -12443298}, + {"fileTypeUnknown", -2011566768}, + {"fileTypeVideo", 1430816539}, + {"fileTypeVideoNote", -518412385}, + {"fileTypeVoiceNote", -588681661}, + {"fileTypeWallpaper", 1854930076}, + {"formattedText", -252624564}, + {"forumTopicIcon", -818765421}, + {"groupCallVideoQualityThumbnail", -379186304}, + {"groupCallVideoQualityMedium", 394968234}, + {"groupCallVideoQualityFull", -2125916617}, + {"inlineKeyboardButton", -372105704}, + {"inlineKeyboardButtonTypeUrl", 1130741420}, + {"inlineKeyboardButtonTypeLoginUrl", -1203413081}, + {"inlineKeyboardButtonTypeWebApp", -1767471672}, + {"inlineKeyboardButtonTypeCallback", -1127515139}, + {"inlineKeyboardButtonTypeCallbackWithPassword", 908018248}, + {"inlineKeyboardButtonTypeCallbackGame", -383429528}, + {"inlineKeyboardButtonTypeSwitchInline", -2035563307}, + {"inlineKeyboardButtonTypeBuy", 1360739440}, + {"inlineKeyboardButtonTypeUser", 1836574114}, + {"inputBackgroundLocal", -1747094364}, + {"inputBackgroundRemote", -274976231}, + {"inputChatPhotoPrevious", 23128529}, + {"inputChatPhotoStatic", 1979179699}, + {"inputChatPhotoAnimation", 90846242}, + {"inputCredentialsSaved", -2034385364}, + {"inputCredentialsNew", -829689558}, + {"inputCredentialsApplePay", -1246570799}, + {"inputCredentialsGooglePay", 844384100}, + {"inputFileId", 1788906253}, + {"inputFileRemote", -107574466}, + {"inputFileLocal", 2056030919}, + {"inputFileGenerated", -1333385216}, + {"inputIdentityDocument", -381776063}, + {"inputInlineQueryResultAnimation", -1489808874}, + {"inputInlineQueryResultArticle", 1973670156}, + {"inputInlineQueryResultAudio", 1260139988}, + {"inputInlineQueryResultContact", 1846064594}, + {"inputInlineQueryResultDocument", 578801869}, + {"inputInlineQueryResultGame", 966074327}, + {"inputInlineQueryResultLocation", -1887650218}, + {"inputInlineQueryResultPhoto", -1123338721}, + {"inputInlineQueryResultSticker", 274007129}, + {"inputInlineQueryResultVenue", 541704509}, + {"inputInlineQueryResultVideo", 1724073191}, + {"inputInlineQueryResultVoiceNote", -1790072503}, + {"inputInvoiceMessage", 1490872848}, + {"inputInvoiceName", -1312155917}, + {"inputMessageText", 247050392}, + {"inputMessageAnimation", 1208433535}, + {"inputMessageAudio", -626786126}, + {"inputMessageDocument", 1633383097}, + {"inputMessagePhoto", 1648801584}, + {"inputMessageSticker", 1072805625}, + {"inputMessageVideo", -2108486755}, + {"inputMessageVideoNote", 279108859}, + {"inputMessageVoiceNote", 2136519657}, + {"inputMessageLocation", 648735088}, + {"inputMessageVenue", 1447926269}, + {"inputMessageContact", -982446849}, + {"inputMessageDice", 841574313}, + {"inputMessageGame", 1252944610}, + {"inputMessageInvoice", 885857632}, + {"inputMessagePoll", 2054629900}, + {"inputMessageForwarded", 1696232440}, + {"inputPassportElementPersonalDetails", 164791359}, + {"inputPassportElementPassport", -497011356}, + {"inputPassportElementDriverLicense", 304813264}, + {"inputPassportElementIdentityCard", -9963390}, + {"inputPassportElementInternalPassport", 715360043}, + {"inputPassportElementAddress", 461630480}, + {"inputPassportElementUtilityBill", 1389203841}, + {"inputPassportElementBankStatement", -26585208}, + {"inputPassportElementRentalAgreement", 1736154155}, + {"inputPassportElementPassportRegistration", 1314562128}, + {"inputPassportElementTemporaryRegistration", -1913238047}, + {"inputPassportElementPhoneNumber", 1319357497}, + {"inputPassportElementEmailAddress", -248605659}, + {"inputPassportElementError", 285756898}, + {"inputPassportElementErrorSourceUnspecified", 267230319}, + {"inputPassportElementErrorSourceDataField", -426795002}, + {"inputPassportElementErrorSourceFrontSide", 588023741}, + {"inputPassportElementErrorSourceReverseSide", 413072891}, + {"inputPassportElementErrorSourceSelfie", -773575528}, + {"inputPassportElementErrorSourceTranslationFile", 505842299}, + {"inputPassportElementErrorSourceTranslationFiles", -527254048}, + {"inputPassportElementErrorSourceFile", -298492469}, + {"inputPassportElementErrorSourceFiles", -2008541640}, + {"inputPersonalDocument", 1676966826}, + {"inputSticker", -1692915280}, + {"inputThumbnail", 1582387236}, + {"invoice", 1977205639}, + {"jsonObjectMember", -1803309418}, + {"jsonValueNull", -92872499}, + {"jsonValueBoolean", -2142186576}, + {"jsonValueNumber", -1010822033}, + {"jsonValueString", 1597947313}, + {"jsonValueArray", -183913546}, + {"jsonValueObject", 520252026}, + {"keyboardButton", -2069836172}, + {"keyboardButtonTypeText", -1773037256}, + {"keyboardButtonTypeRequestPhoneNumber", -1529235527}, + {"keyboardButtonTypeRequestLocation", -125661955}, + {"keyboardButtonTypeRequestPoll", 1902435512}, + {"keyboardButtonTypeWebApp", 1892220770}, + {"labeledPricePart", 552789798}, + {"languagePackInfo", 542199642}, + {"languagePackString", 1307632736}, + {"languagePackStringValueOrdinary", -249256352}, + {"languagePackStringValuePluralized", 1906840261}, + {"languagePackStringValueDeleted", 1834792698}, + {"location", -443392141}, + {"logStreamDefault", 1390581436}, + {"logStreamFile", 1532136933}, + {"logStreamEmpty", -499912244}, + {"maskPointForehead", 1027512005}, + {"maskPointEyes", 1748310861}, + {"maskPointMouth", 411773406}, + {"maskPointChin", 534995335}, + {"maskPosition", -2097433026}, + {"messageCopyOptions", 1208442937}, + {"messageSchedulingStateSendAtDate", -1485570073}, + {"messageSchedulingStateSendWhenOnline", 2092947464}, + {"messageSendOptions", -783267022}, + {"messageSenderUser", -336109341}, + {"messageSenderChat", -239660751}, + {"networkStatisticsEntryFile", 188452706}, + {"networkStatisticsEntryCall", 737000365}, + {"networkTypeNone", -1971691759}, + {"networkTypeMobile", 819228239}, + {"networkTypeMobileRoaming", -1435199760}, + {"networkTypeWiFi", -633872070}, + {"networkTypeOther", 1942128539}, + {"notificationSettingsScopePrivateChats", 937446759}, + {"notificationSettingsScopeGroupChats", 1212142067}, + {"notificationSettingsScopeChannelChats", 548013448}, + {"optionValueBoolean", 63135518}, + {"optionValueEmpty", 918955155}, + {"optionValueInteger", -186858780}, + {"optionValueString", 756248212}, + {"orderInfo", 783997294}, + {"passportElementTypePersonalDetails", -1032136365}, + {"passportElementTypePassport", -436360376}, + {"passportElementTypeDriverLicense", 1827298379}, + {"passportElementTypeIdentityCard", -502356132}, + {"passportElementTypeInternalPassport", -793781959}, + {"passportElementTypeAddress", 496327874}, + {"passportElementTypeUtilityBill", 627084906}, + {"passportElementTypeBankStatement", 574095667}, + {"passportElementTypeRentalAgreement", -2060583280}, + {"passportElementTypePassportRegistration", -159478209}, + {"passportElementTypeTemporaryRegistration", 1092498527}, + {"passportElementTypePhoneNumber", -995361172}, + {"passportElementTypeEmailAddress", -79321405}, + {"personalDetails", -1061656137}, + {"phoneNumberAuthenticationSettings", -421219756}, + {"pollTypeRegular", 641265698}, + {"pollTypeQuiz", 657013913}, + {"premiumFeatureIncreasedLimits", 1785455031}, + {"premiumFeatureIncreasedUploadFileSize", 1825367155}, + {"premiumFeatureImprovedDownloadSpeed", -267695554}, + {"premiumFeatureVoiceRecognition", 1288216542}, + {"premiumFeatureDisabledAds", -2008587702}, + {"premiumFeatureUniqueReactions", 766750743}, + {"premiumFeatureUniqueStickers", -2101773312}, + {"premiumFeatureCustomEmoji", 1332599628}, + {"premiumFeatureAdvancedChatManagement", 796347674}, + {"premiumFeatureProfileBadge", 233648322}, + {"premiumFeatureEmojiStatus", -36516639}, + {"premiumFeatureAnimatedProfilePhoto", -100741914}, + {"premiumFeatureForumTopicIcon", -823172286}, + {"premiumFeatureAppIcons", 1585050761}, + {"premiumLimitTypeSupergroupCount", -247467131}, + {"premiumLimitTypePinnedChatCount", -998947871}, + {"premiumLimitTypeCreatedPublicChatCount", 446086841}, + {"premiumLimitTypeSavedAnimationCount", -19759735}, + {"premiumLimitTypeFavoriteStickerCount", 639754787}, + {"premiumLimitTypeChatFilterCount", -644517214}, + {"premiumLimitTypeChatFilterChosenChatCount", 2057969759}, + {"premiumLimitTypePinnedArchivedChatCount", 1485515276}, + {"premiumLimitTypeCaptionLength", 293984314}, + {"premiumLimitTypeBioLength", -1146976765}, + {"premiumSourceLimitExceeded", -2052159742}, + {"premiumSourceFeature", 445813541}, + {"premiumSourceLink", 2135071132}, + {"premiumSourceSettings", -285702859}, + {"proxyTypeSocks5", -890027341}, + {"proxyTypeHttp", -1547188361}, + {"proxyTypeMtproto", -1964826627}, + {"publicChatTypeHasUsername", 350789758}, + {"publicChatTypeIsLocationBased", 1183735952}, + {"reactionTypeEmoji", -1942084920}, + {"reactionTypeCustomEmoji", -989117709}, + {"replyMarkupRemoveKeyboard", -691252879}, + {"replyMarkupForceReply", 1101461919}, + {"replyMarkupShowKeyboard", -64985802}, + {"replyMarkupInlineKeyboard", -619317658}, + {"scopeNotificationSettings", -1383458661}, + {"searchMessagesFilterEmpty", -869395657}, + {"searchMessagesFilterAnimation", -155713339}, + {"searchMessagesFilterAudio", 867505275}, + {"searchMessagesFilterDocument", 1526331215}, + {"searchMessagesFilterPhoto", 925932293}, + {"searchMessagesFilterVideo", 115538222}, + {"searchMessagesFilterVoiceNote", 1841439357}, + {"searchMessagesFilterPhotoAndVideo", 1352130963}, + {"searchMessagesFilterUrl", -1828724341}, + {"searchMessagesFilterChatPhoto", -1247751329}, + {"searchMessagesFilterVideoNote", 564323321}, + {"searchMessagesFilterVoiceAndVideoNote", 664174819}, + {"searchMessagesFilterMention", 2001258652}, + {"searchMessagesFilterUnreadMention", -95769149}, + {"searchMessagesFilterUnreadReaction", -1379651328}, + {"searchMessagesFilterFailedToSend", -596322564}, + {"searchMessagesFilterPinned", 371805512}, + {"shippingOption", 1425690001}, + {"stickerFormatWebp", -2123043040}, + {"stickerFormatTgs", 1614588662}, + {"stickerFormatWebm", -2070162097}, + {"stickerTypeRegular", 56345973}, + {"stickerTypeMask", -1765394796}, + {"stickerTypeCustomEmoji", -120752249}, + {"storePaymentPurposePremiumSubscription", -1497906096}, + {"storePaymentPurposeGiftedPremium", 1916846289}, + {"suggestedActionEnableArchiveAndMuteNewChats", 2017586255}, + {"suggestedActionCheckPassword", 1910534839}, + {"suggestedActionCheckPhoneNumber", 648771563}, + {"suggestedActionViewChecksHint", 891303239}, + {"suggestedActionConvertToBroadcastGroup", -965071304}, + {"suggestedActionSetPassword", 1863613848}, + {"supergroupMembersFilterRecent", 1178199509}, + {"supergroupMembersFilterContacts", -1282910856}, + {"supergroupMembersFilterAdministrators", -2097380265}, + {"supergroupMembersFilterSearch", -1696358469}, + {"supergroupMembersFilterRestricted", -1107800034}, + {"supergroupMembersFilterBanned", -1210621683}, + {"supergroupMembersFilterMention", 947915036}, + {"supergroupMembersFilterBots", 492138918}, + {"testInt", -574804983}, + {"testString", -27891572}, + {"textEntity", -1951688280}, + {"textEntityTypeMention", 934535013}, + {"textEntityTypeHashtag", -1023958307}, + {"textEntityTypeCashtag", 1222915915}, + {"textEntityTypeBotCommand", -1150997581}, + {"textEntityTypeUrl", -1312762756}, + {"textEntityTypeEmailAddress", 1425545249}, + {"textEntityTypePhoneNumber", -1160140246}, + {"textEntityTypeBankCardNumber", 105986320}, + {"textEntityTypeBold", -1128210000}, + {"textEntityTypeItalic", -118253987}, + {"textEntityTypeUnderline", 792317842}, + {"textEntityTypeStrikethrough", 961529082}, + {"textEntityTypeSpoiler", 544019899}, + {"textEntityTypeCode", -974534326}, + {"textEntityTypePre", 1648958606}, + {"textEntityTypePreCode", -945325397}, + {"textEntityTypeTextUrl", 445719651}, + {"textEntityTypeMentionName", -1570974289}, + {"textEntityTypeCustomEmoji", 1724820677}, + {"textEntityTypeMediaTimestamp", -1841898992}, + {"textParseModeMarkdown", 360073407}, + {"textParseModeHTML", 1660208627}, + {"themeParameters", -644809106}, + {"topChatCategoryUsers", 1026706816}, + {"topChatCategoryBots", -1577129195}, + {"topChatCategoryGroups", 1530056846}, + {"topChatCategoryChannels", -500825885}, + {"topChatCategoryInlineBots", 377023356}, + {"topChatCategoryCalls", 356208861}, + {"topChatCategoryForwardChats", 1695922133}, + {"userPrivacySettingShowStatus", 1862829310}, + {"userPrivacySettingShowProfilePhoto", 1408485877}, + {"userPrivacySettingShowLinkInForwardedMessages", 592688870}, + {"userPrivacySettingShowPhoneNumber", -791567831}, + {"userPrivacySettingAllowChatInvites", 1271668007}, + {"userPrivacySettingAllowCalls", -906967291}, + {"userPrivacySettingAllowPeerToPeerCalls", 352500032}, + {"userPrivacySettingAllowFindingByPhoneNumber", -1846645423}, + {"userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages", 338112060}, + {"userPrivacySettingRuleAllowAll", -1967186881}, + {"userPrivacySettingRuleAllowContacts", -1892733680}, + {"userPrivacySettingRuleAllowUsers", 1110988334}, + {"userPrivacySettingRuleAllowChatMembers", -2048749863}, + {"userPrivacySettingRuleRestrictAll", -1406495408}, + {"userPrivacySettingRuleRestrictContacts", 1008389378}, + {"userPrivacySettingRuleRestrictUsers", 622796522}, + {"userPrivacySettingRuleRestrictChatMembers", 392530897}, + {"userPrivacySettingRules", 322477541}, + {"venue", 1070406393} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Result<int32> tl_constructor_from_string(td_api::Function *object, const std::string &str) { + static const FlatHashMap<Slice, int32, SliceHash> m = { + {"acceptCall", -646618416}, + {"acceptTermsOfService", 2130576356}, + {"addChatMember", 499426810}, + {"addChatMembers", -519951226}, + {"addChatToList", -80523595}, + {"addContact", 1869640000}, + {"addCustomServerLanguagePack", 4492771}, + {"addFavoriteSticker", 324504799}, + {"addFileToDownloads", 867533751}, + {"addLocalMessage", -1998878725}, + {"addLogMessage", 1597427692}, + {"addMessageReaction", 1419269613}, + {"addNetworkStatistics", 1264825305}, + {"addProxy", 331529432}, + {"addRecentSticker", -1478109026}, + {"addRecentlyFoundChat", -1746396787}, + {"addSavedAnimation", -1538525088}, + {"addSavedNotificationSound", 1043956975}, + {"addStickerToSet", -1340783267}, + {"answerCallbackQuery", -1153028490}, + {"answerCustomQuery", -1293603521}, + {"answerInlineQuery", 485879477}, + {"answerPreCheckoutQuery", -1486789653}, + {"answerShippingQuery", -434601324}, + {"answerWebAppQuery", -1598776079}, + {"assignAppStoreTransaction", -2030892112}, + {"assignGooglePlayTransaction", -1992704860}, + {"banChatMember", -888111748}, + {"blockMessageSenderFromReplies", -1214384757}, + {"canPurchasePremium", -371319616}, + {"canTransferOwnership", 634602508}, + {"cancelDownloadFile", -1954524450}, + {"cancelPasswordReset", 940733538}, + {"cancelPreliminaryUploadFile", 823412414}, + {"changeImportedContacts", 1968207955}, + {"changePhoneNumber", -124666973}, + {"changeStickerSet", 449357293}, + {"checkAuthenticationBotToken", 639321206}, + {"checkAuthenticationCode", -302103382}, + {"checkAuthenticationEmailCode", -582827361}, + {"checkAuthenticationPassword", -2025698400}, + {"checkAuthenticationPasswordRecoveryCode", -603309083}, + {"checkChangePhoneNumberCode", -1720278429}, + {"checkChatInviteLink", -496940997}, + {"checkChatUsername", -119119344}, + {"checkCreatedPublicChatsLimit", -445546591}, + {"checkEmailAddressVerificationCode", -426386685}, + {"checkLoginEmailAddressCode", -1454244766}, + {"checkPasswordRecoveryCode", -200794600}, + {"checkPhoneNumberConfirmationCode", -1348060966}, + {"checkPhoneNumberVerificationCode", 1497462718}, + {"checkRecoveryEmailAddressCode", -1997039589}, + {"checkStickerSetName", -1789392642}, + {"cleanFileName", 967964667}, + {"clearAllDraftMessages", -46369573}, + {"clearImportedContacts", 869503298}, + {"clearRecentEmojiStatuses", -428749986}, + {"clearRecentReactions", 1298253650}, + {"clearRecentStickers", -321242684}, + {"clearRecentlyFoundChats", -285582542}, + {"clickAnimatedEmojiMessage", 196179554}, + {"clickPremiumSubscriptionButton", -369319162}, + {"close", -1187782273}, + {"closeChat", 39749353}, + {"closeSecretChat", -471006133}, + {"closeWebApp", 1755391174}, + {"confirmQrCodeAuthentication", -376199379}, + {"createBasicGroupChat", 1972024548}, + {"createCall", -1104663024}, + {"createChatFilter", 49065126}, + {"createChatInviteLink", 287744833}, + {"createForumTopic", -1040570140}, + {"createInvoiceLink", 216787233}, + {"createNewBasicGroupChat", -2104438789}, + {"createNewSecretChat", -620682651}, + {"createNewStickerSet", 1424129402}, + {"createNewSupergroupChat", -830232895}, + {"createPrivateChat", -947758327}, + {"createSecretChat", 1930285615}, + {"createSupergroupChat", 1187475691}, + {"createTemporaryPassword", -1626509434}, + {"createVideoChat", 2124715405}, + {"deleteAccount", 1395816134}, + {"deleteAllCallMessages", -1466445325}, + {"deleteAllRevokedChatInviteLinks", 1112020698}, + {"deleteChat", -171253666}, + {"deleteChatFilter", -523220877}, + {"deleteChatHistory", -1472081761}, + {"deleteChatMessagesByDate", -1639653185}, + {"deleteChatMessagesBySender", -1164235161}, + {"deleteChatReplyMarkup", 100637531}, + {"deleteCommands", 1002732586}, + {"deleteFile", 1807653676}, + {"deleteForumTopic", 1864916152}, + {"deleteLanguagePack", -2108761026}, + {"deleteMessages", 1130090173}, + {"deletePassportElement", -1719555468}, + {"deleteProfilePhoto", 1319794625}, + {"deleteRevokedChatInviteLink", -1859711873}, + {"deleteSavedCredentials", 826300114}, + {"deleteSavedOrderInfo", 1629058164}, + {"destroy", 685331274}, + {"disableAllSupergroupUsernames", 843511216}, + {"disableProxy", -2100095102}, + {"discardCall", -1784044162}, + {"disconnectAllWebsites", -1082985981}, + {"disconnectWebsite", -778767395}, + {"downloadFile", 1059402292}, + {"editChatFilter", -1674793086}, + {"editChatInviteLink", 1320303996}, + {"editCustomLanguagePackInfo", 1320751257}, + {"editForumTopic", -222142032}, + {"editInlineMessageCaption", -760985929}, + {"editInlineMessageLiveLocation", -156902912}, + {"editInlineMessageMedia", 23553921}, + {"editInlineMessageReplyMarkup", -67565858}, + {"editInlineMessageText", -855457307}, + {"editMessageCaption", 1154677038}, + {"editMessageLiveLocation", -14047982}, + {"editMessageMedia", -1152678125}, + {"editMessageReplyMarkup", 332127881}, + {"editMessageSchedulingState", -1372976192}, + {"editMessageText", 196272567}, + {"editProxy", -1605883821}, + {"enableProxy", 1494450838}, + {"endGroupCall", 573131959}, + {"endGroupCallRecording", -75799927}, + {"endGroupCallScreenSharing", -2047599540}, + {"finishFileGeneration", -1055060835}, + {"forwardMessages", -1054441908}, + {"getAccountTtl", -443905161}, + {"getActiveLiveLocationMessages", -1425459567}, + {"getActiveSessions", 1119710526}, + {"getAllPassportElements", -2038945045}, + {"getAnimatedEmoji", 1065635702}, + {"getApplicationConfig", -1823144318}, + {"getApplicationDownloadLink", 112013252}, + {"getArchivedStickerSets", 1001931341}, + {"getAttachedStickerSets", 1302172429}, + {"getAttachmentMenuBot", 1034248699}, + {"getAuthorizationState", 1949154877}, + {"getAutoDownloadSettingsPresets", -1721088201}, + {"getBackgroundUrl", 733769682}, + {"getBackgrounds", 249072633}, + {"getBankCardInfo", -1310515792}, + {"getBasicGroup", -1635174828}, + {"getBasicGroupFullInfo", -1822039253}, + {"getBlockedMessageSenders", 1947079776}, + {"getCallbackQueryAnswer", 116357727}, + {"getCallbackQueryMessage", -1121939086}, + {"getChat", 1866601536}, + {"getChatAdministrators", 1544468155}, + {"getChatAvailableMessageSenders", 1158670635}, + {"getChatEventLog", -1281344669}, + {"getChatFilter", 1826317803}, + {"getChatFilterDefaultIconName", -1339828680}, + {"getChatHistory", -799960451}, + {"getChatInviteLink", -479575555}, + {"getChatInviteLinkCounts", 890299025}, + {"getChatInviteLinkMembers", -977921638}, + {"getChatInviteLinks", 883252396}, + {"getChatJoinRequests", -388428126}, + {"getChatListsToAddChat", 654956193}, + {"getChatMember", -792636814}, + {"getChatMessageByDate", 1062564150}, + {"getChatMessageCalendar", -326164204}, + {"getChatMessageCount", 205435308}, + {"getChatMessagePosition", -559474920}, + {"getChatNotificationSettingsExceptions", 201199121}, + {"getChatPinnedMessage", 359865008}, + {"getChatScheduledMessages", -549638149}, + {"getChatSparseMessagePositions", -462227580}, + {"getChatSponsoredMessages", 1353203864}, + {"getChatStatistics", 327057816}, + {"getChats", -972768574}, + {"getCommands", 1488621559}, + {"getConnectedWebsites", -170536110}, + {"getContacts", -1417722768}, + {"getCountries", -51902050}, + {"getCountryCode", 1540593906}, + {"getCreatedPublicChats", 710354415}, + {"getCurrentState", -1191417719}, + {"getCustomEmojiReactionAnimations", 1232375250}, + {"getCustomEmojiStickers", -2127427955}, + {"getDatabaseStatistics", -1942760263}, + {"getDeepLinkInfo", 680673150}, + {"getDefaultEmojiStatuses", 618946243}, + {"getEmojiReaction", -449572388}, + {"getEmojiSuggestionsUrl", -1404101841}, + {"getExternalLink", 1586688235}, + {"getExternalLinkInfo", 1175288383}, + {"getFavoriteStickers", -338964672}, + {"getFile", 1553923406}, + {"getFileDownloadedPrefixSize", 855948589}, + {"getFileExtension", -106055372}, + {"getFileMimeType", -2073879671}, + {"getForumTopicDefaultIcons", 1479898332}, + {"getGameHighScores", 15746459}, + {"getGroupCall", 1468491406}, + {"getGroupCallInviteLink", 719407396}, + {"getGroupCallStreamSegment", -2077959515}, + {"getGroupCallStreams", -1619226268}, + {"getGroupsInCommon", 381539178}, + {"getImportedContactCount", -656336346}, + {"getInactiveSupergroupChats", -657720907}, + {"getInlineGameHighScores", -533107798}, + {"getInlineQueryResults", 2044524652}, + {"getInstalledStickerSets", 1630467830}, + {"getInternalLinkType", -1948428535}, + {"getJsonString", 663458849}, + {"getJsonValue", -1829086715}, + {"getLanguagePackInfo", 2077809320}, + {"getLanguagePackString", 150789747}, + {"getLanguagePackStrings", 1246259088}, + {"getLocalizationTargetInfo", 1849499526}, + {"getLogStream", 1167608667}, + {"getLogTagVerbosityLevel", 951004547}, + {"getLogTags", -254449190}, + {"getLogVerbosityLevel", 594057956}, + {"getLoginUrl", 791844305}, + {"getLoginUrlInfo", -859202125}, + {"getMapThumbnailFile", -152660070}, + {"getMarkdownText", 164524584}, + {"getMe", -191516033}, + {"getMenuButton", -437324736}, + {"getMessage", -1821196160}, + {"getMessageAddedReactions", 2110172754}, + {"getMessageAvailableReactions", 1994098354}, + {"getMessageEmbeddingCode", 1654967561}, + {"getMessageFileType", -490270764}, + {"getMessageImportConfirmationText", 390627752}, + {"getMessageLink", -984158342}, + {"getMessageLinkInfo", -700533672}, + {"getMessageLocally", -603575444}, + {"getMessagePublicForwards", 1611049289}, + {"getMessageStatistics", 1270194648}, + {"getMessageThread", 2062695998}, + {"getMessageThreadHistory", -1808411608}, + {"getMessageViewers", -1879496099}, + {"getMessages", 425299338}, + {"getNetworkStatistics", -986228706}, + {"getOption", -1572495746}, + {"getPassportAuthorizationForm", 1636107398}, + {"getPassportAuthorizationFormAvailableElements", 1738134754}, + {"getPassportElement", -1882398342}, + {"getPasswordState", -174752904}, + {"getPaymentForm", -1924172076}, + {"getPaymentReceipt", 1013758294}, + {"getPhoneNumberInfo", -1608344583}, + {"getPhoneNumberInfoSync", 547061048}, + {"getPollVoters", 2075288734}, + {"getPreferredCountryLanguage", -933049386}, + {"getPremiumFeatures", -1260640695}, + {"getPremiumLimit", 1075313898}, + {"getPremiumState", 663632610}, + {"getPremiumStickerExamples", 1399442328}, + {"getPremiumStickers", -280950192}, + {"getProxies", -95026381}, + {"getProxyLink", -1054495112}, + {"getPushReceiverId", -286505294}, + {"getRecentEmojiStatuses", -1371914967}, + {"getRecentInlineBots", 1437823548}, + {"getRecentStickers", -579622241}, + {"getRecentlyOpenedChats", -1924156893}, + {"getRecentlyVisitedTMeUrls", 806754961}, + {"getRecommendedChatFilters", -779390746}, + {"getRecoveryEmailAddress", -1594770947}, + {"getRemoteFile", 2137204530}, + {"getRepliedMessage", -641918531}, + {"getSavedAnimations", 7051032}, + {"getSavedNotificationSound", 459569431}, + {"getSavedNotificationSounds", -1070305368}, + {"getSavedOrderInfo", -1152016675}, + {"getScopeNotificationSettings", -995613361}, + {"getSecretChat", 40599169}, + {"getStatisticalGraph", 1100975515}, + {"getStickerEmojis", -1895508665}, + {"getStickerSet", 1052318659}, + {"getStickers", 1158058819}, + {"getStorageStatistics", -853193929}, + {"getStorageStatisticsFast", 61368066}, + {"getSuggestedFileName", -2049399674}, + {"getSuggestedStickerSetName", -1340995520}, + {"getSuitableDiscussionChats", 49044982}, + {"getSupergroup", 989663458}, + {"getSupergroupFullInfo", 1099776056}, + {"getSupergroupMembers", -570940984}, + {"getSupportUser", -1733497700}, + {"getTemporaryPasswordState", -12670830}, + {"getTextEntities", -341490693}, + {"getThemeParametersJsonString", -1850145288}, + {"getThemedEmojiStatuses", 1791346882}, + {"getTopChats", -388410847}, + {"getTrendingStickerSets", -531085986}, + {"getUser", 1117363211}, + {"getUserFullInfo", -776823720}, + {"getUserPrivacySettingRules", -2077223311}, + {"getUserProfilePhotos", -908132798}, + {"getUserSupportInfo", 1957008133}, + {"getVideoChatAvailableParticipants", -1000496379}, + {"getVideoChatRtmpUrl", 1210784543}, + {"getWebAppUrl", 1690578110}, + {"getWebPageInstantView", -1962649975}, + {"getWebPagePreview", 573441580}, + {"hideSuggestedAction", -1561384065}, + {"importContacts", -215132767}, + {"importMessages", -1864116784}, + {"inviteGroupCallParticipants", 1867097679}, + {"joinChat", 326769313}, + {"joinChatByInviteLink", -1049973882}, + {"joinGroupCall", -1043773467}, + {"leaveChat", -1825080735}, + {"leaveGroupCall", 980152233}, + {"loadChats", -1885635205}, + {"loadGroupCallParticipants", 938720974}, + {"logOut", -1581923301}, + {"openChat", -323371509}, + {"openMessageContent", -739088005}, + {"openWebApp", -763742925}, + {"optimizeStorage", 853186759}, + {"parseMarkdown", 756366063}, + {"parseTextEntities", -1709194593}, + {"pinChatMessage", 2034719663}, + {"pingProxy", -979681103}, + {"preliminaryUploadFile", 1894239129}, + {"processChatJoinRequest", 1004876963}, + {"processChatJoinRequests", 1048722894}, + {"processPushNotification", 786679952}, + {"rateSpeechRecognition", -287521867}, + {"readAllChatMentions", 1357558453}, + {"readAllChatReactions", 1421973357}, + {"readAllMessageThreadMentions", 1323136341}, + {"readAllMessageThreadReactions", -792975554}, + {"readFilePart", 906798861}, + {"recognizeSpeech", 1741947577}, + {"recoverAuthenticationPassword", -131001053}, + {"recoverPassword", -1524262541}, + {"registerDevice", 366088823}, + {"registerUser", -109994467}, + {"removeAllFilesFromDownloads", -1186433402}, + {"removeBackground", -1484545642}, + {"removeChatActionBar", -1650968070}, + {"removeContacts", 1943858054}, + {"removeFavoriteSticker", 1152945264}, + {"removeFileFromDownloads", 1460060142}, + {"removeMessageReaction", -1756934789}, + {"removeNotification", 862630734}, + {"removeNotificationGroup", 1713005454}, + {"removeProxy", 1369219847}, + {"removeRecentHashtag", -1013735260}, + {"removeRecentSticker", 1246577677}, + {"removeRecentlyFoundChat", 717340444}, + {"removeSavedAnimation", -495605479}, + {"removeSavedNotificationSound", -480032946}, + {"removeStickerFromSet", 1642196644}, + {"removeTopChat", -1907876267}, + {"reorderActiveUsernames", -455399375}, + {"reorderChatFilters", -1805801313}, + {"reorderInstalledStickerSets", 1074928158}, + {"reorderSupergroupActiveUsernames", -1962466095}, + {"replacePrimaryChatInviteLink", 1067350941}, + {"replaceVideoChatRtmpUrl", 558862304}, + {"reportChat", -964543587}, + {"reportChatPhoto", 734652708}, + {"reportMessageReactions", 919111719}, + {"reportSupergroupSpam", -94825000}, + {"requestAuthenticationPasswordRecovery", 1393896118}, + {"requestPasswordRecovery", -13777582}, + {"requestQrCodeAuthentication", 1363496527}, + {"resendAuthenticationCode", -814377191}, + {"resendChangePhoneNumberCode", -786772060}, + {"resendEmailAddressVerificationCode", -1872416732}, + {"resendLoginEmailAddressCode", 292966933}, + {"resendMessages", -940655817}, + {"resendPhoneNumberConfirmationCode", 2069068522}, + {"resendPhoneNumberVerificationCode", 1367629820}, + {"resendRecoveryEmailAddressCode", 433483548}, + {"resetAllNotificationSettings", -174020359}, + {"resetBackgrounds", 204852088}, + {"resetNetworkStatistics", 1646452102}, + {"resetPassword", -593589091}, + {"revokeChatInviteLink", -776514135}, + {"revokeGroupCallInviteLink", 501589140}, + {"saveApplicationLogEvent", -811154930}, + {"searchBackground", -2130996959}, + {"searchCallMessages", -1077230820}, + {"searchChatMembers", -445823291}, + {"searchChatMessages", -162154976}, + {"searchChatRecentLocationMessages", 950238950}, + {"searchChats", -1879787060}, + {"searchChatsNearby", -196753377}, + {"searchChatsOnServer", -1158402188}, + {"searchContacts", -1794690715}, + {"searchEmojis", 398837927}, + {"searchFileDownloads", 706611286}, + {"searchHashtags", 1043637617}, + {"searchInstalledStickerSets", 2120122276}, + {"searchMessages", -225214062}, + {"searchOutgoingDocumentMessages", -1071397762}, + {"searchPublicChat", 857135533}, + {"searchPublicChats", 970385337}, + {"searchSecretMessages", -852865892}, + {"searchStickerSet", 1157930222}, + {"searchStickerSets", -1082314629}, + {"searchStickers", 1555771203}, + {"searchUserByPhoneNumber", -1562236142}, + {"sendBotStartMessage", -1435877650}, + {"sendCallDebugInformation", 2019243839}, + {"sendCallLog", 1057638353}, + {"sendCallRating", -1402719502}, + {"sendCallSignalingData", 1412280732}, + {"sendChatAction", 2096947540}, + {"sendChatScreenshotTakenNotification", 448399457}, + {"sendCustomRequest", 285045153}, + {"sendEmailAddressVerificationCode", -221621379}, + {"sendInlineQueryResultMessage", -948639588}, + {"sendMessage", 960453021}, + {"sendMessageAlbum", -1639797862}, + {"sendPassportAuthorizationForm", -602402218}, + {"sendPaymentForm", -965855094}, + {"sendPhoneNumberConfirmationCode", -1901171495}, + {"sendPhoneNumberVerificationCode", 2081689035}, + {"sendWebAppData", -1423978996}, + {"setAccountTtl", 701389032}, + {"setAlarm", -873497067}, + {"setAuthenticationEmailAddress", 1773323522}, + {"setAuthenticationPhoneNumber", 868276259}, + {"setAutoDownloadSettings", -353671948}, + {"setBackground", -1035439225}, + {"setBio", -1619582124}, + {"setBotUpdatesStatus", -1154926191}, + {"setChatAvailableReactions", 267075078}, + {"setChatClientData", -827119811}, + {"setChatDescription", 1957213277}, + {"setChatDiscussionGroup", -918801736}, + {"setChatDraftMessage", 1683889946}, + {"setChatLocation", -767091286}, + {"setChatMemberStatus", 81794847}, + {"setChatMessageSender", -1421513858}, + {"setChatMessageTtl", -1578406279}, + {"setChatNotificationSettings", 777199614}, + {"setChatPermissions", 2138507006}, + {"setChatPhoto", -377778941}, + {"setChatSlowModeDelay", -540350914}, + {"setChatTheme", -1895234925}, + {"setChatTitle", 164282047}, + {"setCommands", -907165606}, + {"setCustomLanguagePack", -296742819}, + {"setCustomLanguagePackString", 1316365592}, + {"setDatabaseEncryptionKey", -1204599371}, + {"setDefaultChannelAdministratorRights", -234004967}, + {"setDefaultGroupAdministratorRights", 1700231016}, + {"setDefaultReactionType", 1694730813}, + {"setEmojiStatus", -1310680569}, + {"setFileGenerationProgress", 1836403518}, + {"setGameScore", 2127359430}, + {"setGroupCallParticipantIsSpeaking", 927506917}, + {"setGroupCallParticipantVolumeLevel", -1753769944}, + {"setGroupCallTitle", -1228825139}, + {"setInactiveSessionTtl", 1570548048}, + {"setInlineGameScore", -948871797}, + {"setLocation", 93926257}, + {"setLogStream", -1364199535}, + {"setLogTagVerbosityLevel", -2095589738}, + {"setLogVerbosityLevel", -303429678}, + {"setLoginEmailAddress", 935019476}, + {"setMenuButton", -1269841599}, + {"setName", 1711693584}, + {"setNetworkType", -701635234}, + {"setOption", 2114670322}, + {"setPassportElement", 2068173212}, + {"setPassportElementErrors", -2056754881}, + {"setPassword", -1193589027}, + {"setPinnedChats", -695640000}, + {"setPollAnswer", -1399388792}, + {"setProfilePhoto", -2069678882}, + {"setRecoveryEmailAddress", -1981836385}, + {"setScopeNotificationSettings", -2049984966}, + {"setStickerPositionInSet", 2075281185}, + {"setStickerSetThumbnail", 1230174856}, + {"setSupergroupStickerSet", -2056344215}, + {"setSupergroupUsername", 1346325252}, + {"setTdlibParameters", 1384743481}, + {"setUserPrivacySettingRules", -473812741}, + {"setUserSupportInfo", -2088986621}, + {"setUsername", 439901214}, + {"setVideoChatDefaultParticipant", -240749901}, + {"sharePhoneNumber", 1097130069}, + {"startGroupCallRecording", 1757774971}, + {"startGroupCallScreenSharing", -884068051}, + {"startScheduledGroupCall", 1519938838}, + {"stopPoll", 1659374253}, + {"synchronizeLanguagePack", -2065307858}, + {"terminateAllOtherSessions", 1874485523}, + {"terminateSession", -407385812}, + {"testCallBytes", -736011607}, + {"testCallEmpty", -627291626}, + {"testCallString", -1732818385}, + {"testCallVectorInt", -2137277793}, + {"testCallVectorIntObject", 1825428218}, + {"testCallVectorString", -408600900}, + {"testCallVectorStringObject", 1527666429}, + {"testGetDifference", 1747084069}, + {"testNetwork", -1343998901}, + {"testProxy", -1197366626}, + {"testReturnError", 455179506}, + {"testSquareInt", -60135024}, + {"testUseUpdate", 717094686}, + {"toggleAllDownloadsArePaused", 1251512322}, + {"toggleBotIsAddedToAttachmentMenu", -1251515422}, + {"toggleChatDefaultDisableNotification", 314794002}, + {"toggleChatHasProtectedContent", 975231309}, + {"toggleChatIsMarkedAsUnread", -986129697}, + {"toggleChatIsPinned", -1485429186}, + {"toggleDownloadIsPaused", -947493099}, + {"toggleForumTopicIsClosed", -949712141}, + {"toggleGroupCallEnabledStartNotification", 707839826}, + {"toggleGroupCallIsMyVideoEnabled", -1624289030}, + {"toggleGroupCallIsMyVideoPaused", -478875239}, + {"toggleGroupCallMuteNewParticipants", 284082626}, + {"toggleGroupCallParticipantIsHandRaised", -1896127519}, + {"toggleGroupCallParticipantIsMuted", -1308093433}, + {"toggleGroupCallScreenSharingIsPaused", -1602530464}, + {"toggleMessageSenderIsBlocked", -2008084779}, + {"toggleSessionCanAcceptCalls", 1819027208}, + {"toggleSessionCanAcceptSecretChats", 1000843390}, + {"toggleSupergroupIsAllHistoryAvailable", 1155110478}, + {"toggleSupergroupIsBroadcastGroup", 884089365}, + {"toggleSupergroupIsForum", -1771071990}, + {"toggleSupergroupJoinByRequest", 2111807454}, + {"toggleSupergroupJoinToSendMessages", -182022642}, + {"toggleSupergroupSignMessages", 1156568356}, + {"toggleSupergroupUsernameIsActive", -1500811777}, + {"toggleUsernameIsActive", 1244098019}, + {"transferChatOwnership", 2006977043}, + {"translateText", -1619686803}, + {"unpinAllChatMessages", -1437805385}, + {"unpinAllMessageThreadMessages", -1211719936}, + {"unpinChatMessage", 2065448670}, + {"upgradeBasicGroupChatToSupergroupChat", 300488122}, + {"uploadStickerFile", 86279066}, + {"validateOrderInfo", -1248305201}, + {"viewMessages", -1155961496}, + {"viewPremiumFeature", 192950706}, + {"viewTrendingStickerSets", -952416520}, + {"writeGeneratedFilePart", 214474389} + }; + auto it = m.find(str); + if (it == m.end()) { + return Status::Error(PSLICE() << "Unknown class \"" << str << "\""); + } + return it->second; +} + +Status from_json(td_api::accountTtl &to, JsonObject &from) { + TRY_STATUS(from_json(to.days_, get_json_object_field_force(from, "days"))); + return Status::OK(); +} + +Status from_json(td_api::address &to, JsonObject &from) { + TRY_STATUS(from_json(to.country_code_, get_json_object_field_force(from, "country_code"))); + TRY_STATUS(from_json(to.state_, get_json_object_field_force(from, "state"))); + TRY_STATUS(from_json(to.city_, get_json_object_field_force(from, "city"))); + TRY_STATUS(from_json(to.street_line1_, get_json_object_field_force(from, "street_line1"))); + TRY_STATUS(from_json(to.street_line2_, get_json_object_field_force(from, "street_line2"))); + TRY_STATUS(from_json(to.postal_code_, get_json_object_field_force(from, "postal_code"))); + return Status::OK(); +} + +Status from_json(td_api::autoDownloadSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_auto_download_enabled_, get_json_object_field_force(from, "is_auto_download_enabled"))); + TRY_STATUS(from_json(to.max_photo_file_size_, get_json_object_field_force(from, "max_photo_file_size"))); + TRY_STATUS(from_json(to.max_video_file_size_, get_json_object_field_force(from, "max_video_file_size"))); + TRY_STATUS(from_json(to.max_other_file_size_, get_json_object_field_force(from, "max_other_file_size"))); + TRY_STATUS(from_json(to.video_upload_bitrate_, get_json_object_field_force(from, "video_upload_bitrate"))); + TRY_STATUS(from_json(to.preload_large_videos_, get_json_object_field_force(from, "preload_large_videos"))); + TRY_STATUS(from_json(to.preload_next_audio_, get_json_object_field_force(from, "preload_next_audio"))); + TRY_STATUS(from_json(to.use_less_data_for_calls_, get_json_object_field_force(from, "use_less_data_for_calls"))); + return Status::OK(); +} + +Status from_json(td_api::backgroundFillSolid &to, JsonObject &from) { + TRY_STATUS(from_json(to.color_, get_json_object_field_force(from, "color"))); + return Status::OK(); +} + +Status from_json(td_api::backgroundFillGradient &to, JsonObject &from) { + TRY_STATUS(from_json(to.top_color_, get_json_object_field_force(from, "top_color"))); + TRY_STATUS(from_json(to.bottom_color_, get_json_object_field_force(from, "bottom_color"))); + TRY_STATUS(from_json(to.rotation_angle_, get_json_object_field_force(from, "rotation_angle"))); + return Status::OK(); +} + +Status from_json(td_api::backgroundFillFreeformGradient &to, JsonObject &from) { + TRY_STATUS(from_json(to.colors_, get_json_object_field_force(from, "colors"))); + return Status::OK(); +} + +Status from_json(td_api::backgroundTypeWallpaper &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_blurred_, get_json_object_field_force(from, "is_blurred"))); + TRY_STATUS(from_json(to.is_moving_, get_json_object_field_force(from, "is_moving"))); + return Status::OK(); +} + +Status from_json(td_api::backgroundTypePattern &to, JsonObject &from) { + TRY_STATUS(from_json(to.fill_, get_json_object_field_force(from, "fill"))); + TRY_STATUS(from_json(to.intensity_, get_json_object_field_force(from, "intensity"))); + TRY_STATUS(from_json(to.is_inverted_, get_json_object_field_force(from, "is_inverted"))); + TRY_STATUS(from_json(to.is_moving_, get_json_object_field_force(from, "is_moving"))); + return Status::OK(); +} + +Status from_json(td_api::backgroundTypeFill &to, JsonObject &from) { + TRY_STATUS(from_json(to.fill_, get_json_object_field_force(from, "fill"))); + return Status::OK(); +} + +Status from_json(td_api::botCommand &to, JsonObject &from) { + TRY_STATUS(from_json(to.command_, get_json_object_field_force(from, "command"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + return Status::OK(); +} + +Status from_json(td_api::botCommandScopeDefault &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::botCommandScopeAllPrivateChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::botCommandScopeAllGroupChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::botCommandScopeAllChatAdministrators &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::botCommandScopeChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::botCommandScopeChatAdministrators &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::botCommandScopeChatMember &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::botMenuButton &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + return Status::OK(); +} + +Status from_json(td_api::callProblemEcho &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemNoise &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemInterruptions &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemDistortedSpeech &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemSilentLocal &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemSilentRemote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemDropped &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemDistortedVideo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProblemPixelatedVideo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::callProtocol &to, JsonObject &from) { + TRY_STATUS(from_json(to.udp_p2p_, get_json_object_field_force(from, "udp_p2p"))); + TRY_STATUS(from_json(to.udp_reflector_, get_json_object_field_force(from, "udp_reflector"))); + TRY_STATUS(from_json(to.min_layer_, get_json_object_field_force(from, "min_layer"))); + TRY_STATUS(from_json(to.max_layer_, get_json_object_field_force(from, "max_layer"))); + TRY_STATUS(from_json(to.library_versions_, get_json_object_field_force(from, "library_versions"))); + return Status::OK(); +} + +Status from_json(td_api::callbackQueryPayloadData &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::callbackQueryPayloadDataWithPassword &to, JsonObject &from) { + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::callbackQueryPayloadGame &to, JsonObject &from) { + TRY_STATUS(from_json(to.game_short_name_, get_json_object_field_force(from, "game_short_name"))); + return Status::OK(); +} + +Status from_json(td_api::chatActionTyping &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionRecordingVideo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionUploadingVideo &to, JsonObject &from) { + TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress"))); + return Status::OK(); +} + +Status from_json(td_api::chatActionRecordingVoiceNote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionUploadingVoiceNote &to, JsonObject &from) { + TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress"))); + return Status::OK(); +} + +Status from_json(td_api::chatActionUploadingPhoto &to, JsonObject &from) { + TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress"))); + return Status::OK(); +} + +Status from_json(td_api::chatActionUploadingDocument &to, JsonObject &from) { + TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress"))); + return Status::OK(); +} + +Status from_json(td_api::chatActionChoosingSticker &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionChoosingLocation &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionChoosingContact &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionStartPlayingGame &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionRecordingVideoNote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatActionUploadingVideoNote &to, JsonObject &from) { + TRY_STATUS(from_json(to.progress_, get_json_object_field_force(from, "progress"))); + return Status::OK(); +} + +Status from_json(td_api::chatActionWatchingAnimations &to, JsonObject &from) { + TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji"))); + return Status::OK(); +} + +Status from_json(td_api::chatActionCancel &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatAdministratorRights &to, JsonObject &from) { + TRY_STATUS(from_json(to.can_manage_chat_, get_json_object_field_force(from, "can_manage_chat"))); + TRY_STATUS(from_json(to.can_change_info_, get_json_object_field_force(from, "can_change_info"))); + TRY_STATUS(from_json(to.can_post_messages_, get_json_object_field_force(from, "can_post_messages"))); + TRY_STATUS(from_json(to.can_edit_messages_, get_json_object_field_force(from, "can_edit_messages"))); + TRY_STATUS(from_json(to.can_delete_messages_, get_json_object_field_force(from, "can_delete_messages"))); + TRY_STATUS(from_json(to.can_invite_users_, get_json_object_field_force(from, "can_invite_users"))); + TRY_STATUS(from_json(to.can_restrict_members_, get_json_object_field_force(from, "can_restrict_members"))); + TRY_STATUS(from_json(to.can_pin_messages_, get_json_object_field_force(from, "can_pin_messages"))); + TRY_STATUS(from_json(to.can_manage_topics_, get_json_object_field_force(from, "can_manage_topics"))); + TRY_STATUS(from_json(to.can_promote_members_, get_json_object_field_force(from, "can_promote_members"))); + TRY_STATUS(from_json(to.can_manage_video_chats_, get_json_object_field_force(from, "can_manage_video_chats"))); + TRY_STATUS(from_json(to.is_anonymous_, get_json_object_field_force(from, "is_anonymous"))); + return Status::OK(); +} + +Status from_json(td_api::chatAvailableReactionsAll &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatAvailableReactionsSome &to, JsonObject &from) { + TRY_STATUS(from_json(to.reactions_, get_json_object_field_force(from, "reactions"))); + return Status::OK(); +} + +Status from_json(td_api::chatEventLogFilters &to, JsonObject &from) { + TRY_STATUS(from_json(to.message_edits_, get_json_object_field_force(from, "message_edits"))); + TRY_STATUS(from_json(to.message_deletions_, get_json_object_field_force(from, "message_deletions"))); + TRY_STATUS(from_json(to.message_pins_, get_json_object_field_force(from, "message_pins"))); + TRY_STATUS(from_json(to.member_joins_, get_json_object_field_force(from, "member_joins"))); + TRY_STATUS(from_json(to.member_leaves_, get_json_object_field_force(from, "member_leaves"))); + TRY_STATUS(from_json(to.member_invites_, get_json_object_field_force(from, "member_invites"))); + TRY_STATUS(from_json(to.member_promotions_, get_json_object_field_force(from, "member_promotions"))); + TRY_STATUS(from_json(to.member_restrictions_, get_json_object_field_force(from, "member_restrictions"))); + TRY_STATUS(from_json(to.info_changes_, get_json_object_field_force(from, "info_changes"))); + TRY_STATUS(from_json(to.setting_changes_, get_json_object_field_force(from, "setting_changes"))); + TRY_STATUS(from_json(to.invite_link_changes_, get_json_object_field_force(from, "invite_link_changes"))); + TRY_STATUS(from_json(to.video_chat_changes_, get_json_object_field_force(from, "video_chat_changes"))); + TRY_STATUS(from_json(to.forum_changes_, get_json_object_field_force(from, "forum_changes"))); + return Status::OK(); +} + +Status from_json(td_api::chatFilter &to, JsonObject &from) { + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.icon_name_, get_json_object_field_force(from, "icon_name"))); + TRY_STATUS(from_json(to.pinned_chat_ids_, get_json_object_field_force(from, "pinned_chat_ids"))); + TRY_STATUS(from_json(to.included_chat_ids_, get_json_object_field_force(from, "included_chat_ids"))); + TRY_STATUS(from_json(to.excluded_chat_ids_, get_json_object_field_force(from, "excluded_chat_ids"))); + TRY_STATUS(from_json(to.exclude_muted_, get_json_object_field_force(from, "exclude_muted"))); + TRY_STATUS(from_json(to.exclude_read_, get_json_object_field_force(from, "exclude_read"))); + TRY_STATUS(from_json(to.exclude_archived_, get_json_object_field_force(from, "exclude_archived"))); + TRY_STATUS(from_json(to.include_contacts_, get_json_object_field_force(from, "include_contacts"))); + TRY_STATUS(from_json(to.include_non_contacts_, get_json_object_field_force(from, "include_non_contacts"))); + TRY_STATUS(from_json(to.include_bots_, get_json_object_field_force(from, "include_bots"))); + TRY_STATUS(from_json(to.include_groups_, get_json_object_field_force(from, "include_groups"))); + TRY_STATUS(from_json(to.include_channels_, get_json_object_field_force(from, "include_channels"))); + return Status::OK(); +} + +Status from_json(td_api::chatInviteLinkMember &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.joined_chat_date_, get_json_object_field_force(from, "joined_chat_date"))); + TRY_STATUS(from_json(to.approver_user_id_, get_json_object_field_force(from, "approver_user_id"))); + return Status::OK(); +} + +Status from_json(td_api::chatJoinRequest &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.date_, get_json_object_field_force(from, "date"))); + TRY_STATUS(from_json(to.bio_, get_json_object_field_force(from, "bio"))); + return Status::OK(); +} + +Status from_json(td_api::chatListMain &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatListArchive &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatListFilter &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id"))); + return Status::OK(); +} + +Status from_json(td_api::chatLocation &to, JsonObject &from) { + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.address_, get_json_object_field_force(from, "address"))); + return Status::OK(); +} + +Status from_json(td_api::chatMemberStatusCreator &to, JsonObject &from) { + TRY_STATUS(from_json(to.custom_title_, get_json_object_field_force(from, "custom_title"))); + TRY_STATUS(from_json(to.is_anonymous_, get_json_object_field_force(from, "is_anonymous"))); + TRY_STATUS(from_json(to.is_member_, get_json_object_field_force(from, "is_member"))); + return Status::OK(); +} + +Status from_json(td_api::chatMemberStatusAdministrator &to, JsonObject &from) { + TRY_STATUS(from_json(to.custom_title_, get_json_object_field_force(from, "custom_title"))); + TRY_STATUS(from_json(to.can_be_edited_, get_json_object_field_force(from, "can_be_edited"))); + TRY_STATUS(from_json(to.rights_, get_json_object_field_force(from, "rights"))); + return Status::OK(); +} + +Status from_json(td_api::chatMemberStatusMember &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatMemberStatusRestricted &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_member_, get_json_object_field_force(from, "is_member"))); + TRY_STATUS(from_json(to.restricted_until_date_, get_json_object_field_force(from, "restricted_until_date"))); + TRY_STATUS(from_json(to.permissions_, get_json_object_field_force(from, "permissions"))); + return Status::OK(); +} + +Status from_json(td_api::chatMemberStatusLeft &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatMemberStatusBanned &to, JsonObject &from) { + TRY_STATUS(from_json(to.banned_until_date_, get_json_object_field_force(from, "banned_until_date"))); + return Status::OK(); +} + +Status from_json(td_api::chatMembersFilterContacts &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatMembersFilterAdministrators &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatMembersFilterMembers &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatMembersFilterMention &to, JsonObject &from) { + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::chatMembersFilterRestricted &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatMembersFilterBanned &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatMembersFilterBots &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatNotificationSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.use_default_mute_for_, get_json_object_field_force(from, "use_default_mute_for"))); + TRY_STATUS(from_json(to.mute_for_, get_json_object_field_force(from, "mute_for"))); + TRY_STATUS(from_json(to.use_default_sound_, get_json_object_field_force(from, "use_default_sound"))); + TRY_STATUS(from_json(to.sound_id_, get_json_object_field_force(from, "sound_id"))); + TRY_STATUS(from_json(to.use_default_show_preview_, get_json_object_field_force(from, "use_default_show_preview"))); + TRY_STATUS(from_json(to.show_preview_, get_json_object_field_force(from, "show_preview"))); + TRY_STATUS(from_json(to.use_default_disable_pinned_message_notifications_, get_json_object_field_force(from, "use_default_disable_pinned_message_notifications"))); + TRY_STATUS(from_json(to.disable_pinned_message_notifications_, get_json_object_field_force(from, "disable_pinned_message_notifications"))); + TRY_STATUS(from_json(to.use_default_disable_mention_notifications_, get_json_object_field_force(from, "use_default_disable_mention_notifications"))); + TRY_STATUS(from_json(to.disable_mention_notifications_, get_json_object_field_force(from, "disable_mention_notifications"))); + return Status::OK(); +} + +Status from_json(td_api::chatPermissions &to, JsonObject &from) { + TRY_STATUS(from_json(to.can_send_messages_, get_json_object_field_force(from, "can_send_messages"))); + TRY_STATUS(from_json(to.can_send_media_messages_, get_json_object_field_force(from, "can_send_media_messages"))); + TRY_STATUS(from_json(to.can_send_polls_, get_json_object_field_force(from, "can_send_polls"))); + TRY_STATUS(from_json(to.can_send_other_messages_, get_json_object_field_force(from, "can_send_other_messages"))); + TRY_STATUS(from_json(to.can_add_web_page_previews_, get_json_object_field_force(from, "can_add_web_page_previews"))); + TRY_STATUS(from_json(to.can_change_info_, get_json_object_field_force(from, "can_change_info"))); + TRY_STATUS(from_json(to.can_invite_users_, get_json_object_field_force(from, "can_invite_users"))); + TRY_STATUS(from_json(to.can_pin_messages_, get_json_object_field_force(from, "can_pin_messages"))); + TRY_STATUS(from_json(to.can_manage_topics_, get_json_object_field_force(from, "can_manage_topics"))); + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonSpam &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonViolence &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonPornography &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonChildAbuse &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonCopyright &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonUnrelatedLocation &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonFake &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonIllegalDrugs &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonPersonalDetails &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::chatReportReasonCustom &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::contact &to, JsonObject &from) { + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name"))); + TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name"))); + TRY_STATUS(from_json(to.vcard_, get_json_object_field_force(from, "vcard"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::date &to, JsonObject &from) { + TRY_STATUS(from_json(to.day_, get_json_object_field_force(from, "day"))); + TRY_STATUS(from_json(to.month_, get_json_object_field_force(from, "month"))); + TRY_STATUS(from_json(to.year_, get_json_object_field_force(from, "year"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenFirebaseCloudMessaging &to, JsonObject &from) { + TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token"))); + TRY_STATUS(from_json(to.encrypt_, get_json_object_field_force(from, "encrypt"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenApplePush &to, JsonObject &from) { + TRY_STATUS(from_json(to.device_token_, get_json_object_field_force(from, "device_token"))); + TRY_STATUS(from_json(to.is_app_sandbox_, get_json_object_field_force(from, "is_app_sandbox"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenApplePushVoIP &to, JsonObject &from) { + TRY_STATUS(from_json(to.device_token_, get_json_object_field_force(from, "device_token"))); + TRY_STATUS(from_json(to.is_app_sandbox_, get_json_object_field_force(from, "is_app_sandbox"))); + TRY_STATUS(from_json(to.encrypt_, get_json_object_field_force(from, "encrypt"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenWindowsPush &to, JsonObject &from) { + TRY_STATUS(from_json(to.access_token_, get_json_object_field_force(from, "access_token"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenMicrosoftPush &to, JsonObject &from) { + TRY_STATUS(from_json(to.channel_uri_, get_json_object_field_force(from, "channel_uri"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenMicrosoftPushVoIP &to, JsonObject &from) { + TRY_STATUS(from_json(to.channel_uri_, get_json_object_field_force(from, "channel_uri"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenWebPush &to, JsonObject &from) { + TRY_STATUS(from_json(to.endpoint_, get_json_object_field_force(from, "endpoint"))); + TRY_STATUS(from_json(to.p256dh_base64url_, get_json_object_field_force(from, "p256dh_base64url"))); + TRY_STATUS(from_json(to.auth_base64url_, get_json_object_field_force(from, "auth_base64url"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenSimplePush &to, JsonObject &from) { + TRY_STATUS(from_json(to.endpoint_, get_json_object_field_force(from, "endpoint"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenUbuntuPush &to, JsonObject &from) { + TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenBlackBerryPush &to, JsonObject &from) { + TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token"))); + return Status::OK(); +} + +Status from_json(td_api::deviceTokenTizenPush &to, JsonObject &from) { + TRY_STATUS(from_json(to.reg_id_, get_json_object_field_force(from, "reg_id"))); + return Status::OK(); +} + +Status from_json(td_api::draftMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id"))); + TRY_STATUS(from_json(to.date_, get_json_object_field_force(from, "date"))); + TRY_STATUS(from_json(to.input_message_text_, get_json_object_field_force(from, "input_message_text"))); + return Status::OK(); +} + +Status from_json(td_api::emailAddressAuthenticationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::emailAddressAuthenticationAppleId &to, JsonObject &from) { + TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token"))); + return Status::OK(); +} + +Status from_json(td_api::emailAddressAuthenticationGoogleId &to, JsonObject &from) { + TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token"))); + return Status::OK(); +} + +Status from_json(td_api::emojiStatus &to, JsonObject &from) { + TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id"))); + return Status::OK(); +} + +Status from_json(td_api::error &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + TRY_STATUS(from_json(to.message_, get_json_object_field_force(from, "message"))); + return Status::OK(); +} + +Status from_json(td_api::fileTypeNone &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeAnimation &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeAudio &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeDocument &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeNotificationSound &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypePhoto &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeProfilePhoto &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeSecret &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeSecretThumbnail &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeSecure &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeSticker &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeThumbnail &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeUnknown &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeVideo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeVideoNote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeVoiceNote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::fileTypeWallpaper &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::formattedText &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.entities_, get_json_object_field_force(from, "entities"))); + return Status::OK(); +} + +Status from_json(td_api::forumTopicIcon &to, JsonObject &from) { + TRY_STATUS(from_json(to.color_, get_json_object_field_force(from, "color"))); + TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id"))); + return Status::OK(); +} + +Status from_json(td_api::groupCallVideoQualityThumbnail &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::groupCallVideoQualityMedium &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::groupCallVideoQualityFull &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButton &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeLoginUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.forward_text_, get_json_object_field_force(from, "forward_text"))); + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeWebApp &to, JsonObject &from) { + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeCallback &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeCallbackWithPassword &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeCallbackGame &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeSwitchInline &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.in_current_chat_, get_json_object_field_force(from, "in_current_chat"))); + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeBuy &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::inlineKeyboardButtonTypeUser &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::inputBackgroundLocal &to, JsonObject &from) { + TRY_STATUS(from_json(to.background_, get_json_object_field_force(from, "background"))); + return Status::OK(); +} + +Status from_json(td_api::inputBackgroundRemote &to, JsonObject &from) { + TRY_STATUS(from_json(to.background_id_, get_json_object_field_force(from, "background_id"))); + return Status::OK(); +} + +Status from_json(td_api::inputChatPhotoPrevious &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_photo_id_, get_json_object_field_force(from, "chat_photo_id"))); + return Status::OK(); +} + +Status from_json(td_api::inputChatPhotoStatic &to, JsonObject &from) { + TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo"))); + return Status::OK(); +} + +Status from_json(td_api::inputChatPhotoAnimation &to, JsonObject &from) { + TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation"))); + TRY_STATUS(from_json(to.main_frame_timestamp_, get_json_object_field_force(from, "main_frame_timestamp"))); + return Status::OK(); +} + +Status from_json(td_api::inputCredentialsSaved &to, JsonObject &from) { + TRY_STATUS(from_json(to.saved_credentials_id_, get_json_object_field_force(from, "saved_credentials_id"))); + return Status::OK(); +} + +Status from_json(td_api::inputCredentialsNew &to, JsonObject &from) { + TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data"))); + TRY_STATUS(from_json(to.allow_save_, get_json_object_field_force(from, "allow_save"))); + return Status::OK(); +} + +Status from_json(td_api::inputCredentialsApplePay &to, JsonObject &from) { + TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::inputCredentialsGooglePay &to, JsonObject &from) { + TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::inputFileId &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + return Status::OK(); +} + +Status from_json(td_api::inputFileRemote &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + return Status::OK(); +} + +Status from_json(td_api::inputFileLocal &to, JsonObject &from) { + TRY_STATUS(from_json(to.path_, get_json_object_field_force(from, "path"))); + return Status::OK(); +} + +Status from_json(td_api::inputFileGenerated &to, JsonObject &from) { + TRY_STATUS(from_json(to.original_path_, get_json_object_field_force(from, "original_path"))); + TRY_STATUS(from_json(to.conversion_, get_json_object_field_force(from, "conversion"))); + TRY_STATUS(from_json(to.expected_size_, get_json_object_field_force(from, "expected_size"))); + return Status::OK(); +} + +Status from_json(td_api::inputIdentityDocument &to, JsonObject &from) { + TRY_STATUS(from_json(to.number_, get_json_object_field_force(from, "number"))); + TRY_STATUS(from_json(to.expiry_date_, get_json_object_field_force(from, "expiry_date"))); + TRY_STATUS(from_json(to.front_side_, get_json_object_field_force(from, "front_side"))); + TRY_STATUS(from_json(to.reverse_side_, get_json_object_field_force(from, "reverse_side"))); + TRY_STATUS(from_json(to.selfie_, get_json_object_field_force(from, "selfie"))); + TRY_STATUS(from_json(to.translation_, get_json_object_field_force(from, "translation"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultAnimation &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.thumbnail_mime_type_, get_json_object_field_force(from, "thumbnail_mime_type"))); + TRY_STATUS(from_json(to.video_url_, get_json_object_field_force(from, "video_url"))); + TRY_STATUS(from_json(to.video_mime_type_, get_json_object_field_force(from, "video_mime_type"))); + TRY_STATUS(from_json(to.video_duration_, get_json_object_field_force(from, "video_duration"))); + TRY_STATUS(from_json(to.video_width_, get_json_object_field_force(from, "video_width"))); + TRY_STATUS(from_json(to.video_height_, get_json_object_field_force(from, "video_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultArticle &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + TRY_STATUS(from_json(to.hide_url_, get_json_object_field_force(from, "hide_url"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width"))); + TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultAudio &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.performer_, get_json_object_field_force(from, "performer"))); + TRY_STATUS(from_json(to.audio_url_, get_json_object_field_force(from, "audio_url"))); + TRY_STATUS(from_json(to.audio_duration_, get_json_object_field_force(from, "audio_duration"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultContact &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.contact_, get_json_object_field_force(from, "contact"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width"))); + TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultDocument &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + TRY_STATUS(from_json(to.document_url_, get_json_object_field_force(from, "document_url"))); + TRY_STATUS(from_json(to.mime_type_, get_json_object_field_force(from, "mime_type"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width"))); + TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultGame &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.game_short_name_, get_json_object_field_force(from, "game_short_name"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultLocation &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.live_period_, get_json_object_field_force(from, "live_period"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width"))); + TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultPhoto &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.photo_url_, get_json_object_field_force(from, "photo_url"))); + TRY_STATUS(from_json(to.photo_width_, get_json_object_field_force(from, "photo_width"))); + TRY_STATUS(from_json(to.photo_height_, get_json_object_field_force(from, "photo_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultSticker &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.sticker_url_, get_json_object_field_force(from, "sticker_url"))); + TRY_STATUS(from_json(to.sticker_width_, get_json_object_field_force(from, "sticker_width"))); + TRY_STATUS(from_json(to.sticker_height_, get_json_object_field_force(from, "sticker_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultVenue &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.venue_, get_json_object_field_force(from, "venue"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.thumbnail_width_, get_json_object_field_force(from, "thumbnail_width"))); + TRY_STATUS(from_json(to.thumbnail_height_, get_json_object_field_force(from, "thumbnail_height"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultVideo &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + TRY_STATUS(from_json(to.thumbnail_url_, get_json_object_field_force(from, "thumbnail_url"))); + TRY_STATUS(from_json(to.video_url_, get_json_object_field_force(from, "video_url"))); + TRY_STATUS(from_json(to.mime_type_, get_json_object_field_force(from, "mime_type"))); + TRY_STATUS(from_json(to.video_width_, get_json_object_field_force(from, "video_width"))); + TRY_STATUS(from_json(to.video_height_, get_json_object_field_force(from, "video_height"))); + TRY_STATUS(from_json(to.video_duration_, get_json_object_field_force(from, "video_duration"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInlineQueryResultVoiceNote &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.voice_note_url_, get_json_object_field_force(from, "voice_note_url"))); + TRY_STATUS(from_json(to.voice_note_duration_, get_json_object_field_force(from, "voice_note_duration"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputInvoiceMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::inputInvoiceName &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageText &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.disable_web_page_preview_, get_json_object_field_force(from, "disable_web_page_preview"))); + TRY_STATUS(from_json(to.clear_draft_, get_json_object_field_force(from, "clear_draft"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageAnimation &to, JsonObject &from) { + TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation"))); + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + TRY_STATUS(from_json(to.added_sticker_file_ids_, get_json_object_field_force(from, "added_sticker_file_ids"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width"))); + TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageAudio &to, JsonObject &from) { + TRY_STATUS(from_json(to.audio_, get_json_object_field_force(from, "audio"))); + TRY_STATUS(from_json(to.album_cover_thumbnail_, get_json_object_field_force(from, "album_cover_thumbnail"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.performer_, get_json_object_field_force(from, "performer"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageDocument &to, JsonObject &from) { + TRY_STATUS(from_json(to.document_, get_json_object_field_force(from, "document"))); + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + TRY_STATUS(from_json(to.disable_content_type_detection_, get_json_object_field_force(from, "disable_content_type_detection"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessagePhoto &to, JsonObject &from) { + TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo"))); + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + TRY_STATUS(from_json(to.added_sticker_file_ids_, get_json_object_field_force(from, "added_sticker_file_ids"))); + TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width"))); + TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageSticker &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width"))); + TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height"))); + TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageVideo &to, JsonObject &from) { + TRY_STATUS(from_json(to.video_, get_json_object_field_force(from, "video"))); + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + TRY_STATUS(from_json(to.added_sticker_file_ids_, get_json_object_field_force(from, "added_sticker_file_ids"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width"))); + TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height"))); + TRY_STATUS(from_json(to.supports_streaming_, get_json_object_field_force(from, "supports_streaming"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageVideoNote &to, JsonObject &from) { + TRY_STATUS(from_json(to.video_note_, get_json_object_field_force(from, "video_note"))); + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + TRY_STATUS(from_json(to.length_, get_json_object_field_force(from, "length"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageVoiceNote &to, JsonObject &from) { + TRY_STATUS(from_json(to.voice_note_, get_json_object_field_force(from, "voice_note"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + TRY_STATUS(from_json_bytes(to.waveform_, get_json_object_field_force(from, "waveform"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageLocation &to, JsonObject &from) { + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.live_period_, get_json_object_field_force(from, "live_period"))); + TRY_STATUS(from_json(to.heading_, get_json_object_field_force(from, "heading"))); + TRY_STATUS(from_json(to.proximity_alert_radius_, get_json_object_field_force(from, "proximity_alert_radius"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageVenue &to, JsonObject &from) { + TRY_STATUS(from_json(to.venue_, get_json_object_field_force(from, "venue"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageContact &to, JsonObject &from) { + TRY_STATUS(from_json(to.contact_, get_json_object_field_force(from, "contact"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageDice &to, JsonObject &from) { + TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji"))); + TRY_STATUS(from_json(to.clear_draft_, get_json_object_field_force(from, "clear_draft"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageGame &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.game_short_name_, get_json_object_field_force(from, "game_short_name"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageInvoice &to, JsonObject &from) { + TRY_STATUS(from_json(to.invoice_, get_json_object_field_force(from, "invoice"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + TRY_STATUS(from_json(to.photo_url_, get_json_object_field_force(from, "photo_url"))); + TRY_STATUS(from_json(to.photo_size_, get_json_object_field_force(from, "photo_size"))); + TRY_STATUS(from_json(to.photo_width_, get_json_object_field_force(from, "photo_width"))); + TRY_STATUS(from_json(to.photo_height_, get_json_object_field_force(from, "photo_height"))); + TRY_STATUS(from_json_bytes(to.payload_, get_json_object_field_force(from, "payload"))); + TRY_STATUS(from_json(to.provider_token_, get_json_object_field_force(from, "provider_token"))); + TRY_STATUS(from_json(to.provider_data_, get_json_object_field_force(from, "provider_data"))); + TRY_STATUS(from_json(to.start_parameter_, get_json_object_field_force(from, "start_parameter"))); + TRY_STATUS(from_json(to.extended_media_content_, get_json_object_field_force(from, "extended_media_content"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessagePoll &to, JsonObject &from) { + TRY_STATUS(from_json(to.question_, get_json_object_field_force(from, "question"))); + TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options"))); + TRY_STATUS(from_json(to.is_anonymous_, get_json_object_field_force(from, "is_anonymous"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + TRY_STATUS(from_json(to.open_period_, get_json_object_field_force(from, "open_period"))); + TRY_STATUS(from_json(to.close_date_, get_json_object_field_force(from, "close_date"))); + TRY_STATUS(from_json(to.is_closed_, get_json_object_field_force(from, "is_closed"))); + return Status::OK(); +} + +Status from_json(td_api::inputMessageForwarded &to, JsonObject &from) { + TRY_STATUS(from_json(to.from_chat_id_, get_json_object_field_force(from, "from_chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.in_game_share_, get_json_object_field_force(from, "in_game_share"))); + TRY_STATUS(from_json(to.copy_options_, get_json_object_field_force(from, "copy_options"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementPersonalDetails &to, JsonObject &from) { + TRY_STATUS(from_json(to.personal_details_, get_json_object_field_force(from, "personal_details"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementPassport &to, JsonObject &from) { + TRY_STATUS(from_json(to.passport_, get_json_object_field_force(from, "passport"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementDriverLicense &to, JsonObject &from) { + TRY_STATUS(from_json(to.driver_license_, get_json_object_field_force(from, "driver_license"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementIdentityCard &to, JsonObject &from) { + TRY_STATUS(from_json(to.identity_card_, get_json_object_field_force(from, "identity_card"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementInternalPassport &to, JsonObject &from) { + TRY_STATUS(from_json(to.internal_passport_, get_json_object_field_force(from, "internal_passport"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementAddress &to, JsonObject &from) { + TRY_STATUS(from_json(to.address_, get_json_object_field_force(from, "address"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementUtilityBill &to, JsonObject &from) { + TRY_STATUS(from_json(to.utility_bill_, get_json_object_field_force(from, "utility_bill"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementBankStatement &to, JsonObject &from) { + TRY_STATUS(from_json(to.bank_statement_, get_json_object_field_force(from, "bank_statement"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementRentalAgreement &to, JsonObject &from) { + TRY_STATUS(from_json(to.rental_agreement_, get_json_object_field_force(from, "rental_agreement"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementPassportRegistration &to, JsonObject &from) { + TRY_STATUS(from_json(to.passport_registration_, get_json_object_field_force(from, "passport_registration"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementTemporaryRegistration &to, JsonObject &from) { + TRY_STATUS(from_json(to.temporary_registration_, get_json_object_field_force(from, "temporary_registration"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementPhoneNumber &to, JsonObject &from) { + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementEmailAddress &to, JsonObject &from) { + TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementError &to, JsonObject &from) { + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + TRY_STATUS(from_json(to.message_, get_json_object_field_force(from, "message"))); + TRY_STATUS(from_json(to.source_, get_json_object_field_force(from, "source"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceUnspecified &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.element_hash_, get_json_object_field_force(from, "element_hash"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceDataField &to, JsonObject &from) { + TRY_STATUS(from_json(to.field_name_, get_json_object_field_force(from, "field_name"))); + TRY_STATUS(from_json_bytes(to.data_hash_, get_json_object_field_force(from, "data_hash"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceFrontSide &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceReverseSide &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceSelfie &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceTranslationFile &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceTranslationFiles &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_hashes_, get_json_object_field_force(from, "file_hashes"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceFile &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.file_hash_, get_json_object_field_force(from, "file_hash"))); + return Status::OK(); +} + +Status from_json(td_api::inputPassportElementErrorSourceFiles &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_hashes_, get_json_object_field_force(from, "file_hashes"))); + return Status::OK(); +} + +Status from_json(td_api::inputPersonalDocument &to, JsonObject &from) { + TRY_STATUS(from_json(to.files_, get_json_object_field_force(from, "files"))); + TRY_STATUS(from_json(to.translation_, get_json_object_field_force(from, "translation"))); + return Status::OK(); +} + +Status from_json(td_api::inputSticker &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + TRY_STATUS(from_json(to.emojis_, get_json_object_field_force(from, "emojis"))); + TRY_STATUS(from_json(to.format_, get_json_object_field_force(from, "format"))); + TRY_STATUS(from_json(to.mask_position_, get_json_object_field_force(from, "mask_position"))); + return Status::OK(); +} + +Status from_json(td_api::inputThumbnail &to, JsonObject &from) { + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width"))); + TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height"))); + return Status::OK(); +} + +Status from_json(td_api::invoice &to, JsonObject &from) { + TRY_STATUS(from_json(to.currency_, get_json_object_field_force(from, "currency"))); + TRY_STATUS(from_json(to.price_parts_, get_json_object_field_force(from, "price_parts"))); + TRY_STATUS(from_json(to.max_tip_amount_, get_json_object_field_force(from, "max_tip_amount"))); + TRY_STATUS(from_json(to.suggested_tip_amounts_, get_json_object_field_force(from, "suggested_tip_amounts"))); + TRY_STATUS(from_json(to.recurring_payment_terms_of_service_url_, get_json_object_field_force(from, "recurring_payment_terms_of_service_url"))); + TRY_STATUS(from_json(to.is_test_, get_json_object_field_force(from, "is_test"))); + TRY_STATUS(from_json(to.need_name_, get_json_object_field_force(from, "need_name"))); + TRY_STATUS(from_json(to.need_phone_number_, get_json_object_field_force(from, "need_phone_number"))); + TRY_STATUS(from_json(to.need_email_address_, get_json_object_field_force(from, "need_email_address"))); + TRY_STATUS(from_json(to.need_shipping_address_, get_json_object_field_force(from, "need_shipping_address"))); + TRY_STATUS(from_json(to.send_phone_number_to_provider_, get_json_object_field_force(from, "send_phone_number_to_provider"))); + TRY_STATUS(from_json(to.send_email_address_to_provider_, get_json_object_field_force(from, "send_email_address_to_provider"))); + TRY_STATUS(from_json(to.is_flexible_, get_json_object_field_force(from, "is_flexible"))); + return Status::OK(); +} + +Status from_json(td_api::jsonObjectMember &to, JsonObject &from) { + TRY_STATUS(from_json(to.key_, get_json_object_field_force(from, "key"))); + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::jsonValueNull &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::jsonValueBoolean &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::jsonValueNumber &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::jsonValueString &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::jsonValueArray &to, JsonObject &from) { + TRY_STATUS(from_json(to.values_, get_json_object_field_force(from, "values"))); + return Status::OK(); +} + +Status from_json(td_api::jsonValueObject &to, JsonObject &from) { + TRY_STATUS(from_json(to.members_, get_json_object_field_force(from, "members"))); + return Status::OK(); +} + +Status from_json(td_api::keyboardButton &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::keyboardButtonTypeText &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::keyboardButtonTypeRequestPhoneNumber &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::keyboardButtonTypeRequestLocation &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::keyboardButtonTypeRequestPoll &to, JsonObject &from) { + TRY_STATUS(from_json(to.force_regular_, get_json_object_field_force(from, "force_regular"))); + TRY_STATUS(from_json(to.force_quiz_, get_json_object_field_force(from, "force_quiz"))); + return Status::OK(); +} + +Status from_json(td_api::keyboardButtonTypeWebApp &to, JsonObject &from) { + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + return Status::OK(); +} + +Status from_json(td_api::labeledPricePart &to, JsonObject &from) { + TRY_STATUS(from_json(to.label_, get_json_object_field_force(from, "label"))); + TRY_STATUS(from_json(to.amount_, get_json_object_field_force(from, "amount"))); + return Status::OK(); +} + +Status from_json(td_api::languagePackInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.base_language_pack_id_, get_json_object_field_force(from, "base_language_pack_id"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.native_name_, get_json_object_field_force(from, "native_name"))); + TRY_STATUS(from_json(to.plural_code_, get_json_object_field_force(from, "plural_code"))); + TRY_STATUS(from_json(to.is_official_, get_json_object_field_force(from, "is_official"))); + TRY_STATUS(from_json(to.is_rtl_, get_json_object_field_force(from, "is_rtl"))); + TRY_STATUS(from_json(to.is_beta_, get_json_object_field_force(from, "is_beta"))); + TRY_STATUS(from_json(to.is_installed_, get_json_object_field_force(from, "is_installed"))); + TRY_STATUS(from_json(to.total_string_count_, get_json_object_field_force(from, "total_string_count"))); + TRY_STATUS(from_json(to.translated_string_count_, get_json_object_field_force(from, "translated_string_count"))); + TRY_STATUS(from_json(to.local_string_count_, get_json_object_field_force(from, "local_string_count"))); + TRY_STATUS(from_json(to.translation_url_, get_json_object_field_force(from, "translation_url"))); + return Status::OK(); +} + +Status from_json(td_api::languagePackString &to, JsonObject &from) { + TRY_STATUS(from_json(to.key_, get_json_object_field_force(from, "key"))); + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::languagePackStringValueOrdinary &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::languagePackStringValuePluralized &to, JsonObject &from) { + TRY_STATUS(from_json(to.zero_value_, get_json_object_field_force(from, "zero_value"))); + TRY_STATUS(from_json(to.one_value_, get_json_object_field_force(from, "one_value"))); + TRY_STATUS(from_json(to.two_value_, get_json_object_field_force(from, "two_value"))); + TRY_STATUS(from_json(to.few_value_, get_json_object_field_force(from, "few_value"))); + TRY_STATUS(from_json(to.many_value_, get_json_object_field_force(from, "many_value"))); + TRY_STATUS(from_json(to.other_value_, get_json_object_field_force(from, "other_value"))); + return Status::OK(); +} + +Status from_json(td_api::languagePackStringValueDeleted &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::location &to, JsonObject &from) { + TRY_STATUS(from_json(to.latitude_, get_json_object_field_force(from, "latitude"))); + TRY_STATUS(from_json(to.longitude_, get_json_object_field_force(from, "longitude"))); + TRY_STATUS(from_json(to.horizontal_accuracy_, get_json_object_field_force(from, "horizontal_accuracy"))); + return Status::OK(); +} + +Status from_json(td_api::logStreamDefault &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::logStreamFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.path_, get_json_object_field_force(from, "path"))); + TRY_STATUS(from_json(to.max_file_size_, get_json_object_field_force(from, "max_file_size"))); + TRY_STATUS(from_json(to.redirect_stderr_, get_json_object_field_force(from, "redirect_stderr"))); + return Status::OK(); +} + +Status from_json(td_api::logStreamEmpty &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::maskPointForehead &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::maskPointEyes &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::maskPointMouth &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::maskPointChin &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::maskPosition &to, JsonObject &from) { + TRY_STATUS(from_json(to.point_, get_json_object_field_force(from, "point"))); + TRY_STATUS(from_json(to.x_shift_, get_json_object_field_force(from, "x_shift"))); + TRY_STATUS(from_json(to.y_shift_, get_json_object_field_force(from, "y_shift"))); + TRY_STATUS(from_json(to.scale_, get_json_object_field_force(from, "scale"))); + return Status::OK(); +} + +Status from_json(td_api::messageCopyOptions &to, JsonObject &from) { + TRY_STATUS(from_json(to.send_copy_, get_json_object_field_force(from, "send_copy"))); + TRY_STATUS(from_json(to.replace_caption_, get_json_object_field_force(from, "replace_caption"))); + TRY_STATUS(from_json(to.new_caption_, get_json_object_field_force(from, "new_caption"))); + return Status::OK(); +} + +Status from_json(td_api::messageSchedulingStateSendAtDate &to, JsonObject &from) { + TRY_STATUS(from_json(to.send_date_, get_json_object_field_force(from, "send_date"))); + return Status::OK(); +} + +Status from_json(td_api::messageSchedulingStateSendWhenOnline &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::messageSendOptions &to, JsonObject &from) { + TRY_STATUS(from_json(to.disable_notification_, get_json_object_field_force(from, "disable_notification"))); + TRY_STATUS(from_json(to.from_background_, get_json_object_field_force(from, "from_background"))); + TRY_STATUS(from_json(to.protect_content_, get_json_object_field_force(from, "protect_content"))); + TRY_STATUS(from_json(to.update_order_of_installed_sticker_sets_, get_json_object_field_force(from, "update_order_of_installed_sticker_sets"))); + TRY_STATUS(from_json(to.scheduling_state_, get_json_object_field_force(from, "scheduling_state"))); + return Status::OK(); +} + +Status from_json(td_api::messageSenderUser &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::messageSenderChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::networkStatisticsEntryFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_type_, get_json_object_field_force(from, "file_type"))); + TRY_STATUS(from_json(to.network_type_, get_json_object_field_force(from, "network_type"))); + TRY_STATUS(from_json(to.sent_bytes_, get_json_object_field_force(from, "sent_bytes"))); + TRY_STATUS(from_json(to.received_bytes_, get_json_object_field_force(from, "received_bytes"))); + return Status::OK(); +} + +Status from_json(td_api::networkStatisticsEntryCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.network_type_, get_json_object_field_force(from, "network_type"))); + TRY_STATUS(from_json(to.sent_bytes_, get_json_object_field_force(from, "sent_bytes"))); + TRY_STATUS(from_json(to.received_bytes_, get_json_object_field_force(from, "received_bytes"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + return Status::OK(); +} + +Status from_json(td_api::networkTypeNone &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::networkTypeMobile &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::networkTypeMobileRoaming &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::networkTypeWiFi &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::networkTypeOther &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::notificationSettingsScopePrivateChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::notificationSettingsScopeGroupChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::notificationSettingsScopeChannelChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::optionValueBoolean &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::optionValueEmpty &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::optionValueInteger &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::optionValueString &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::orderInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address"))); + TRY_STATUS(from_json(to.shipping_address_, get_json_object_field_force(from, "shipping_address"))); + return Status::OK(); +} + +Status from_json(td_api::passportElementTypePersonalDetails &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypePassport &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeDriverLicense &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeIdentityCard &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeInternalPassport &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeAddress &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeUtilityBill &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeBankStatement &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeRentalAgreement &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypePassportRegistration &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeTemporaryRegistration &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypePhoneNumber &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::passportElementTypeEmailAddress &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::personalDetails &to, JsonObject &from) { + TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name"))); + TRY_STATUS(from_json(to.middle_name_, get_json_object_field_force(from, "middle_name"))); + TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name"))); + TRY_STATUS(from_json(to.native_first_name_, get_json_object_field_force(from, "native_first_name"))); + TRY_STATUS(from_json(to.native_middle_name_, get_json_object_field_force(from, "native_middle_name"))); + TRY_STATUS(from_json(to.native_last_name_, get_json_object_field_force(from, "native_last_name"))); + TRY_STATUS(from_json(to.birthdate_, get_json_object_field_force(from, "birthdate"))); + TRY_STATUS(from_json(to.gender_, get_json_object_field_force(from, "gender"))); + TRY_STATUS(from_json(to.country_code_, get_json_object_field_force(from, "country_code"))); + TRY_STATUS(from_json(to.residence_country_code_, get_json_object_field_force(from, "residence_country_code"))); + return Status::OK(); +} + +Status from_json(td_api::phoneNumberAuthenticationSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.allow_flash_call_, get_json_object_field_force(from, "allow_flash_call"))); + TRY_STATUS(from_json(to.allow_missed_call_, get_json_object_field_force(from, "allow_missed_call"))); + TRY_STATUS(from_json(to.is_current_phone_number_, get_json_object_field_force(from, "is_current_phone_number"))); + TRY_STATUS(from_json(to.allow_sms_retriever_api_, get_json_object_field_force(from, "allow_sms_retriever_api"))); + TRY_STATUS(from_json(to.authentication_tokens_, get_json_object_field_force(from, "authentication_tokens"))); + return Status::OK(); +} + +Status from_json(td_api::pollTypeRegular &to, JsonObject &from) { + TRY_STATUS(from_json(to.allow_multiple_answers_, get_json_object_field_force(from, "allow_multiple_answers"))); + return Status::OK(); +} + +Status from_json(td_api::pollTypeQuiz &to, JsonObject &from) { + TRY_STATUS(from_json(to.correct_option_id_, get_json_object_field_force(from, "correct_option_id"))); + TRY_STATUS(from_json(to.explanation_, get_json_object_field_force(from, "explanation"))); + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureIncreasedLimits &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureIncreasedUploadFileSize &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureImprovedDownloadSpeed &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureVoiceRecognition &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureDisabledAds &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureUniqueReactions &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureUniqueStickers &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureCustomEmoji &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureAdvancedChatManagement &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureProfileBadge &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureEmojiStatus &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureAnimatedProfilePhoto &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureForumTopicIcon &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumFeatureAppIcons &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeSupergroupCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypePinnedChatCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeCreatedPublicChatCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeSavedAnimationCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeFavoriteStickerCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeChatFilterCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeChatFilterChosenChatCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypePinnedArchivedChatCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeCaptionLength &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumLimitTypeBioLength &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::premiumSourceLimitExceeded &to, JsonObject &from) { + TRY_STATUS(from_json(to.limit_type_, get_json_object_field_force(from, "limit_type"))); + return Status::OK(); +} + +Status from_json(td_api::premiumSourceFeature &to, JsonObject &from) { + TRY_STATUS(from_json(to.feature_, get_json_object_field_force(from, "feature"))); + return Status::OK(); +} + +Status from_json(td_api::premiumSourceLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.referrer_, get_json_object_field_force(from, "referrer"))); + return Status::OK(); +} + +Status from_json(td_api::premiumSourceSettings &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::proxyTypeSocks5 &to, JsonObject &from) { + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::proxyTypeHttp &to, JsonObject &from) { + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + TRY_STATUS(from_json(to.http_only_, get_json_object_field_force(from, "http_only"))); + return Status::OK(); +} + +Status from_json(td_api::proxyTypeMtproto &to, JsonObject &from) { + TRY_STATUS(from_json(to.secret_, get_json_object_field_force(from, "secret"))); + return Status::OK(); +} + +Status from_json(td_api::publicChatTypeHasUsername &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::publicChatTypeIsLocationBased &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::reactionTypeEmoji &to, JsonObject &from) { + TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji"))); + return Status::OK(); +} + +Status from_json(td_api::reactionTypeCustomEmoji &to, JsonObject &from) { + TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id"))); + return Status::OK(); +} + +Status from_json(td_api::replyMarkupRemoveKeyboard &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal"))); + return Status::OK(); +} + +Status from_json(td_api::replyMarkupForceReply &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal"))); + TRY_STATUS(from_json(to.input_field_placeholder_, get_json_object_field_force(from, "input_field_placeholder"))); + return Status::OK(); +} + +Status from_json(td_api::replyMarkupShowKeyboard &to, JsonObject &from) { + TRY_STATUS(from_json(to.rows_, get_json_object_field_force(from, "rows"))); + TRY_STATUS(from_json(to.resize_keyboard_, get_json_object_field_force(from, "resize_keyboard"))); + TRY_STATUS(from_json(to.one_time_, get_json_object_field_force(from, "one_time"))); + TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal"))); + TRY_STATUS(from_json(to.input_field_placeholder_, get_json_object_field_force(from, "input_field_placeholder"))); + return Status::OK(); +} + +Status from_json(td_api::replyMarkupInlineKeyboard &to, JsonObject &from) { + TRY_STATUS(from_json(to.rows_, get_json_object_field_force(from, "rows"))); + return Status::OK(); +} + +Status from_json(td_api::scopeNotificationSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.mute_for_, get_json_object_field_force(from, "mute_for"))); + TRY_STATUS(from_json(to.sound_id_, get_json_object_field_force(from, "sound_id"))); + TRY_STATUS(from_json(to.show_preview_, get_json_object_field_force(from, "show_preview"))); + TRY_STATUS(from_json(to.disable_pinned_message_notifications_, get_json_object_field_force(from, "disable_pinned_message_notifications"))); + TRY_STATUS(from_json(to.disable_mention_notifications_, get_json_object_field_force(from, "disable_mention_notifications"))); + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterEmpty &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterAnimation &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterAudio &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterDocument &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterPhoto &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterVideo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterVoiceNote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterPhotoAndVideo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterUrl &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterChatPhoto &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterVideoNote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterVoiceAndVideoNote &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterMention &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterUnreadMention &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterUnreadReaction &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterFailedToSend &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::searchMessagesFilterPinned &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::shippingOption &to, JsonObject &from) { + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.price_parts_, get_json_object_field_force(from, "price_parts"))); + return Status::OK(); +} + +Status from_json(td_api::stickerFormatWebp &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::stickerFormatTgs &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::stickerFormatWebm &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::stickerTypeRegular &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::stickerTypeMask &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::stickerTypeCustomEmoji &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::storePaymentPurposePremiumSubscription &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_restore_, get_json_object_field_force(from, "is_restore"))); + return Status::OK(); +} + +Status from_json(td_api::storePaymentPurposeGiftedPremium &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.currency_, get_json_object_field_force(from, "currency"))); + TRY_STATUS(from_json(to.amount_, get_json_object_field_force(from, "amount"))); + return Status::OK(); +} + +Status from_json(td_api::suggestedActionEnableArchiveAndMuteNewChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::suggestedActionCheckPassword &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::suggestedActionCheckPhoneNumber &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::suggestedActionViewChecksHint &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::suggestedActionConvertToBroadcastGroup &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + return Status::OK(); +} + +Status from_json(td_api::suggestedActionSetPassword &to, JsonObject &from) { + TRY_STATUS(from_json(to.authorization_delay_, get_json_object_field_force(from, "authorization_delay"))); + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterRecent &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterContacts &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterAdministrators &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterSearch &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterRestricted &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterBanned &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterMention &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::supergroupMembersFilterBots &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::testInt &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::testString &to, JsonObject &from) { + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::textEntity &to, JsonObject &from) { + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.length_, get_json_object_field_force(from, "length"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeMention &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeHashtag &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeCashtag &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeBotCommand &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeUrl &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeEmailAddress &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypePhoneNumber &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeBankCardNumber &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeBold &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeItalic &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeUnderline &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeStrikethrough &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeSpoiler &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypePre &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::textEntityTypePreCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_, get_json_object_field_force(from, "language"))); + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeTextUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeMentionName &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeCustomEmoji &to, JsonObject &from) { + TRY_STATUS(from_json(to.custom_emoji_id_, get_json_object_field_force(from, "custom_emoji_id"))); + return Status::OK(); +} + +Status from_json(td_api::textEntityTypeMediaTimestamp &to, JsonObject &from) { + TRY_STATUS(from_json(to.media_timestamp_, get_json_object_field_force(from, "media_timestamp"))); + return Status::OK(); +} + +Status from_json(td_api::textParseModeMarkdown &to, JsonObject &from) { + TRY_STATUS(from_json(to.version_, get_json_object_field_force(from, "version"))); + return Status::OK(); +} + +Status from_json(td_api::textParseModeHTML &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::themeParameters &to, JsonObject &from) { + TRY_STATUS(from_json(to.background_color_, get_json_object_field_force(from, "background_color"))); + TRY_STATUS(from_json(to.secondary_background_color_, get_json_object_field_force(from, "secondary_background_color"))); + TRY_STATUS(from_json(to.text_color_, get_json_object_field_force(from, "text_color"))); + TRY_STATUS(from_json(to.hint_color_, get_json_object_field_force(from, "hint_color"))); + TRY_STATUS(from_json(to.link_color_, get_json_object_field_force(from, "link_color"))); + TRY_STATUS(from_json(to.button_color_, get_json_object_field_force(from, "button_color"))); + TRY_STATUS(from_json(to.button_text_color_, get_json_object_field_force(from, "button_text_color"))); + return Status::OK(); +} + +Status from_json(td_api::topChatCategoryUsers &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::topChatCategoryBots &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::topChatCategoryGroups &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::topChatCategoryChannels &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::topChatCategoryInlineBots &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::topChatCategoryCalls &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::topChatCategoryForwardChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingShowStatus &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingShowProfilePhoto &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingShowLinkInForwardedMessages &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingShowPhoneNumber &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingAllowChatInvites &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingAllowCalls &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingAllowPeerToPeerCalls &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingAllowFindingByPhoneNumber &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleAllowAll &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleAllowContacts &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleAllowUsers &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleAllowChatMembers &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids"))); + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleRestrictAll &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleRestrictContacts &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleRestrictUsers &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRuleRestrictChatMembers &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids"))); + return Status::OK(); +} + +Status from_json(td_api::userPrivacySettingRules &to, JsonObject &from) { + TRY_STATUS(from_json(to.rules_, get_json_object_field_force(from, "rules"))); + return Status::OK(); +} + +Status from_json(td_api::venue &to, JsonObject &from) { + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.address_, get_json_object_field_force(from, "address"))); + TRY_STATUS(from_json(to.provider_, get_json_object_field_force(from, "provider"))); + TRY_STATUS(from_json(to.id_, get_json_object_field_force(from, "id"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::acceptCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id"))); + TRY_STATUS(from_json(to.protocol_, get_json_object_field_force(from, "protocol"))); + return Status::OK(); +} + +Status from_json(td_api::acceptTermsOfService &to, JsonObject &from) { + TRY_STATUS(from_json(to.terms_of_service_id_, get_json_object_field_force(from, "terms_of_service_id"))); + return Status::OK(); +} + +Status from_json(td_api::addChatMember &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.forward_limit_, get_json_object_field_force(from, "forward_limit"))); + return Status::OK(); +} + +Status from_json(td_api::addChatMembers &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::addChatToList &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list"))); + return Status::OK(); +} + +Status from_json(td_api::addContact &to, JsonObject &from) { + TRY_STATUS(from_json(to.contact_, get_json_object_field_force(from, "contact"))); + TRY_STATUS(from_json(to.share_phone_number_, get_json_object_field_force(from, "share_phone_number"))); + return Status::OK(); +} + +Status from_json(td_api::addCustomServerLanguagePack &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id"))); + return Status::OK(); +} + +Status from_json(td_api::addFavoriteSticker &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::addFileToDownloads &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.priority_, get_json_object_field_force(from, "priority"))); + return Status::OK(); +} + +Status from_json(td_api::addLocalMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id"))); + TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id"))); + TRY_STATUS(from_json(to.disable_notification_, get_json_object_field_force(from, "disable_notification"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::addLogMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.verbosity_level_, get_json_object_field_force(from, "verbosity_level"))); + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + return Status::OK(); +} + +Status from_json(td_api::addMessageReaction &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type"))); + TRY_STATUS(from_json(to.is_big_, get_json_object_field_force(from, "is_big"))); + TRY_STATUS(from_json(to.update_recent_reactions_, get_json_object_field_force(from, "update_recent_reactions"))); + return Status::OK(); +} + +Status from_json(td_api::addNetworkStatistics &to, JsonObject &from) { + TRY_STATUS(from_json(to.entry_, get_json_object_field_force(from, "entry"))); + return Status::OK(); +} + +Status from_json(td_api::addProxy &to, JsonObject &from) { + TRY_STATUS(from_json(to.server_, get_json_object_field_force(from, "server"))); + TRY_STATUS(from_json(to.port_, get_json_object_field_force(from, "port"))); + TRY_STATUS(from_json(to.enable_, get_json_object_field_force(from, "enable"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::addRecentSticker &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached"))); + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::addRecentlyFoundChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::addSavedAnimation &to, JsonObject &from) { + TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation"))); + return Status::OK(); +} + +Status from_json(td_api::addSavedNotificationSound &to, JsonObject &from) { + TRY_STATUS(from_json(to.sound_, get_json_object_field_force(from, "sound"))); + return Status::OK(); +} + +Status from_json(td_api::addStickerToSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::answerCallbackQuery &to, JsonObject &from) { + TRY_STATUS(from_json(to.callback_query_id_, get_json_object_field_force(from, "callback_query_id"))); + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.show_alert_, get_json_object_field_force(from, "show_alert"))); + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + TRY_STATUS(from_json(to.cache_time_, get_json_object_field_force(from, "cache_time"))); + return Status::OK(); +} + +Status from_json(td_api::answerCustomQuery &to, JsonObject &from) { + TRY_STATUS(from_json(to.custom_query_id_, get_json_object_field_force(from, "custom_query_id"))); + TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::answerInlineQuery &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_query_id_, get_json_object_field_force(from, "inline_query_id"))); + TRY_STATUS(from_json(to.is_personal_, get_json_object_field_force(from, "is_personal"))); + TRY_STATUS(from_json(to.results_, get_json_object_field_force(from, "results"))); + TRY_STATUS(from_json(to.cache_time_, get_json_object_field_force(from, "cache_time"))); + TRY_STATUS(from_json(to.next_offset_, get_json_object_field_force(from, "next_offset"))); + TRY_STATUS(from_json(to.switch_pm_text_, get_json_object_field_force(from, "switch_pm_text"))); + TRY_STATUS(from_json(to.switch_pm_parameter_, get_json_object_field_force(from, "switch_pm_parameter"))); + return Status::OK(); +} + +Status from_json(td_api::answerPreCheckoutQuery &to, JsonObject &from) { + TRY_STATUS(from_json(to.pre_checkout_query_id_, get_json_object_field_force(from, "pre_checkout_query_id"))); + TRY_STATUS(from_json(to.error_message_, get_json_object_field_force(from, "error_message"))); + return Status::OK(); +} + +Status from_json(td_api::answerShippingQuery &to, JsonObject &from) { + TRY_STATUS(from_json(to.shipping_query_id_, get_json_object_field_force(from, "shipping_query_id"))); + TRY_STATUS(from_json(to.shipping_options_, get_json_object_field_force(from, "shipping_options"))); + TRY_STATUS(from_json(to.error_message_, get_json_object_field_force(from, "error_message"))); + return Status::OK(); +} + +Status from_json(td_api::answerWebAppQuery &to, JsonObject &from) { + TRY_STATUS(from_json(to.web_app_query_id_, get_json_object_field_force(from, "web_app_query_id"))); + TRY_STATUS(from_json(to.result_, get_json_object_field_force(from, "result"))); + return Status::OK(); +} + +Status from_json(td_api::assignAppStoreTransaction &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.receipt_, get_json_object_field_force(from, "receipt"))); + TRY_STATUS(from_json(to.purpose_, get_json_object_field_force(from, "purpose"))); + return Status::OK(); +} + +Status from_json(td_api::assignGooglePlayTransaction &to, JsonObject &from) { + TRY_STATUS(from_json(to.package_name_, get_json_object_field_force(from, "package_name"))); + TRY_STATUS(from_json(to.store_product_id_, get_json_object_field_force(from, "store_product_id"))); + TRY_STATUS(from_json(to.purchase_token_, get_json_object_field_force(from, "purchase_token"))); + TRY_STATUS(from_json(to.purpose_, get_json_object_field_force(from, "purpose"))); + return Status::OK(); +} + +Status from_json(td_api::banChatMember &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.member_id_, get_json_object_field_force(from, "member_id"))); + TRY_STATUS(from_json(to.banned_until_date_, get_json_object_field_force(from, "banned_until_date"))); + TRY_STATUS(from_json(to.revoke_messages_, get_json_object_field_force(from, "revoke_messages"))); + return Status::OK(); +} + +Status from_json(td_api::blockMessageSenderFromReplies &to, JsonObject &from) { + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.delete_message_, get_json_object_field_force(from, "delete_message"))); + TRY_STATUS(from_json(to.delete_all_messages_, get_json_object_field_force(from, "delete_all_messages"))); + TRY_STATUS(from_json(to.report_spam_, get_json_object_field_force(from, "report_spam"))); + return Status::OK(); +} + +Status from_json(td_api::canPurchasePremium &to, JsonObject &from) { + TRY_STATUS(from_json(to.purpose_, get_json_object_field_force(from, "purpose"))); + return Status::OK(); +} + +Status from_json(td_api::canTransferOwnership &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::cancelDownloadFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.only_if_pending_, get_json_object_field_force(from, "only_if_pending"))); + return Status::OK(); +} + +Status from_json(td_api::cancelPasswordReset &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::cancelPreliminaryUploadFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + return Status::OK(); +} + +Status from_json(td_api::changeImportedContacts &to, JsonObject &from) { + TRY_STATUS(from_json(to.contacts_, get_json_object_field_force(from, "contacts"))); + return Status::OK(); +} + +Status from_json(td_api::changePhoneNumber &to, JsonObject &from) { + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings"))); + return Status::OK(); +} + +Status from_json(td_api::changeStickerSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.set_id_, get_json_object_field_force(from, "set_id"))); + TRY_STATUS(from_json(to.is_installed_, get_json_object_field_force(from, "is_installed"))); + TRY_STATUS(from_json(to.is_archived_, get_json_object_field_force(from, "is_archived"))); + return Status::OK(); +} + +Status from_json(td_api::checkAuthenticationBotToken &to, JsonObject &from) { + TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token"))); + return Status::OK(); +} + +Status from_json(td_api::checkAuthenticationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkAuthenticationEmailCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkAuthenticationPassword &to, JsonObject &from) { + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::checkAuthenticationPasswordRecoveryCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code"))); + return Status::OK(); +} + +Status from_json(td_api::checkChangePhoneNumberCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkChatInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + return Status::OK(); +} + +Status from_json(td_api::checkChatUsername &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + return Status::OK(); +} + +Status from_json(td_api::checkCreatedPublicChatsLimit &to, JsonObject &from) { + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::checkEmailAddressVerificationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkLoginEmailAddressCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkPasswordRecoveryCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code"))); + return Status::OK(); +} + +Status from_json(td_api::checkPhoneNumberConfirmationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkPhoneNumberVerificationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkRecoveryEmailAddressCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.code_, get_json_object_field_force(from, "code"))); + return Status::OK(); +} + +Status from_json(td_api::checkStickerSetName &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + return Status::OK(); +} + +Status from_json(td_api::cleanFileName &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_name_, get_json_object_field_force(from, "file_name"))); + return Status::OK(); +} + +Status from_json(td_api::clearAllDraftMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.exclude_secret_chats_, get_json_object_field_force(from, "exclude_secret_chats"))); + return Status::OK(); +} + +Status from_json(td_api::clearImportedContacts &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::clearRecentEmojiStatuses &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::clearRecentReactions &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::clearRecentStickers &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached"))); + return Status::OK(); +} + +Status from_json(td_api::clearRecentlyFoundChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::clickAnimatedEmojiMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::clickPremiumSubscriptionButton &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::close &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::closeChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::closeSecretChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.secret_chat_id_, get_json_object_field_force(from, "secret_chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::closeWebApp &to, JsonObject &from) { + TRY_STATUS(from_json(to.web_app_launch_id_, get_json_object_field_force(from, "web_app_launch_id"))); + return Status::OK(); +} + +Status from_json(td_api::confirmQrCodeAuthentication &to, JsonObject &from) { + TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link"))); + return Status::OK(); +} + +Status from_json(td_api::createBasicGroupChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.basic_group_id_, get_json_object_field_force(from, "basic_group_id"))); + TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force"))); + return Status::OK(); +} + +Status from_json(td_api::createCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.protocol_, get_json_object_field_force(from, "protocol"))); + TRY_STATUS(from_json(to.is_video_, get_json_object_field_force(from, "is_video"))); + return Status::OK(); +} + +Status from_json(td_api::createChatFilter &to, JsonObject &from) { + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + return Status::OK(); +} + +Status from_json(td_api::createChatInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.expiration_date_, get_json_object_field_force(from, "expiration_date"))); + TRY_STATUS(from_json(to.member_limit_, get_json_object_field_force(from, "member_limit"))); + TRY_STATUS(from_json(to.creates_join_request_, get_json_object_field_force(from, "creates_join_request"))); + return Status::OK(); +} + +Status from_json(td_api::createForumTopic &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.icon_, get_json_object_field_force(from, "icon"))); + return Status::OK(); +} + +Status from_json(td_api::createInvoiceLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.invoice_, get_json_object_field_force(from, "invoice"))); + return Status::OK(); +} + +Status from_json(td_api::createNewBasicGroupChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + return Status::OK(); +} + +Status from_json(td_api::createNewSecretChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::createNewStickerSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type"))); + TRY_STATUS(from_json(to.stickers_, get_json_object_field_force(from, "stickers"))); + TRY_STATUS(from_json(to.source_, get_json_object_field_force(from, "source"))); + return Status::OK(); +} + +Status from_json(td_api::createNewSupergroupChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.is_channel_, get_json_object_field_force(from, "is_channel"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.for_import_, get_json_object_field_force(from, "for_import"))); + return Status::OK(); +} + +Status from_json(td_api::createPrivateChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force"))); + return Status::OK(); +} + +Status from_json(td_api::createSecretChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.secret_chat_id_, get_json_object_field_force(from, "secret_chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::createSupergroupChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force"))); + return Status::OK(); +} + +Status from_json(td_api::createTemporaryPassword &to, JsonObject &from) { + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + TRY_STATUS(from_json(to.valid_for_, get_json_object_field_force(from, "valid_for"))); + return Status::OK(); +} + +Status from_json(td_api::createVideoChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.start_date_, get_json_object_field_force(from, "start_date"))); + TRY_STATUS(from_json(to.is_rtmp_stream_, get_json_object_field_force(from, "is_rtmp_stream"))); + return Status::OK(); +} + +Status from_json(td_api::deleteAccount &to, JsonObject &from) { + TRY_STATUS(from_json(to.reason_, get_json_object_field_force(from, "reason"))); + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::deleteAllCallMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke"))); + return Status::OK(); +} + +Status from_json(td_api::deleteAllRevokedChatInviteLinks &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.creator_user_id_, get_json_object_field_force(from, "creator_user_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteChatFilter &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteChatHistory &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.remove_from_chat_list_, get_json_object_field_force(from, "remove_from_chat_list"))); + TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke"))); + return Status::OK(); +} + +Status from_json(td_api::deleteChatMessagesByDate &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.min_date_, get_json_object_field_force(from, "min_date"))); + TRY_STATUS(from_json(to.max_date_, get_json_object_field_force(from, "max_date"))); + TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke"))); + return Status::OK(); +} + +Status from_json(td_api::deleteChatMessagesBySender &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteChatReplyMarkup &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteCommands &to, JsonObject &from) { + TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope"))); + TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code"))); + return Status::OK(); +} + +Status from_json(td_api::deleteFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteForumTopic &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteLanguagePack &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids"))); + TRY_STATUS(from_json(to.revoke_, get_json_object_field_force(from, "revoke"))); + return Status::OK(); +} + +Status from_json(td_api::deletePassportElement &to, JsonObject &from) { + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::deleteProfilePhoto &to, JsonObject &from) { + TRY_STATUS(from_json(to.profile_photo_id_, get_json_object_field_force(from, "profile_photo_id"))); + return Status::OK(); +} + +Status from_json(td_api::deleteRevokedChatInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + return Status::OK(); +} + +Status from_json(td_api::deleteSavedCredentials &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::deleteSavedOrderInfo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::destroy &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::disableAllSupergroupUsernames &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + return Status::OK(); +} + +Status from_json(td_api::disableProxy &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::discardCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id"))); + TRY_STATUS(from_json(to.is_disconnected_, get_json_object_field_force(from, "is_disconnected"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + TRY_STATUS(from_json(to.is_video_, get_json_object_field_force(from, "is_video"))); + TRY_STATUS(from_json(to.connection_id_, get_json_object_field_force(from, "connection_id"))); + return Status::OK(); +} + +Status from_json(td_api::disconnectAllWebsites &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::disconnectWebsite &to, JsonObject &from) { + TRY_STATUS(from_json(to.website_id_, get_json_object_field_force(from, "website_id"))); + return Status::OK(); +} + +Status from_json(td_api::downloadFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.priority_, get_json_object_field_force(from, "priority"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.synchronous_, get_json_object_field_force(from, "synchronous"))); + return Status::OK(); +} + +Status from_json(td_api::editChatFilter &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + return Status::OK(); +} + +Status from_json(td_api::editChatInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.expiration_date_, get_json_object_field_force(from, "expiration_date"))); + TRY_STATUS(from_json(to.member_limit_, get_json_object_field_force(from, "member_limit"))); + TRY_STATUS(from_json(to.creates_join_request_, get_json_object_field_force(from, "creates_join_request"))); + return Status::OK(); +} + +Status from_json(td_api::editCustomLanguagePackInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.info_, get_json_object_field_force(from, "info"))); + return Status::OK(); +} + +Status from_json(td_api::editForumTopic &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.icon_custom_emoji_id_, get_json_object_field_force(from, "icon_custom_emoji_id"))); + return Status::OK(); +} + +Status from_json(td_api::editInlineMessageCaption &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + return Status::OK(); +} + +Status from_json(td_api::editInlineMessageLiveLocation &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.heading_, get_json_object_field_force(from, "heading"))); + TRY_STATUS(from_json(to.proximity_alert_radius_, get_json_object_field_force(from, "proximity_alert_radius"))); + return Status::OK(); +} + +Status from_json(td_api::editInlineMessageMedia &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::editInlineMessageReplyMarkup &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + return Status::OK(); +} + +Status from_json(td_api::editInlineMessageText &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::editMessageCaption &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.caption_, get_json_object_field_force(from, "caption"))); + return Status::OK(); +} + +Status from_json(td_api::editMessageLiveLocation &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.heading_, get_json_object_field_force(from, "heading"))); + TRY_STATUS(from_json(to.proximity_alert_radius_, get_json_object_field_force(from, "proximity_alert_radius"))); + return Status::OK(); +} + +Status from_json(td_api::editMessageMedia &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::editMessageReplyMarkup &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + return Status::OK(); +} + +Status from_json(td_api::editMessageSchedulingState &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.scheduling_state_, get_json_object_field_force(from, "scheduling_state"))); + return Status::OK(); +} + +Status from_json(td_api::editMessageText &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::editProxy &to, JsonObject &from) { + TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id"))); + TRY_STATUS(from_json(to.server_, get_json_object_field_force(from, "server"))); + TRY_STATUS(from_json(to.port_, get_json_object_field_force(from, "port"))); + TRY_STATUS(from_json(to.enable_, get_json_object_field_force(from, "enable"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::enableProxy &to, JsonObject &from) { + TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id"))); + return Status::OK(); +} + +Status from_json(td_api::endGroupCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::endGroupCallRecording &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::endGroupCallScreenSharing &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::finishFileGeneration &to, JsonObject &from) { + TRY_STATUS(from_json(to.generation_id_, get_json_object_field_force(from, "generation_id"))); + TRY_STATUS(from_json(to.error_, get_json_object_field_force(from, "error"))); + return Status::OK(); +} + +Status from_json(td_api::forwardMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.from_chat_id_, get_json_object_field_force(from, "from_chat_id"))); + TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids"))); + TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options"))); + TRY_STATUS(from_json(to.send_copy_, get_json_object_field_force(from, "send_copy"))); + TRY_STATUS(from_json(to.remove_caption_, get_json_object_field_force(from, "remove_caption"))); + TRY_STATUS(from_json(to.only_preview_, get_json_object_field_force(from, "only_preview"))); + return Status::OK(); +} + +Status from_json(td_api::getAccountTtl &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getActiveLiveLocationMessages &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getActiveSessions &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getAllPassportElements &to, JsonObject &from) { + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::getAnimatedEmoji &to, JsonObject &from) { + TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji"))); + return Status::OK(); +} + +Status from_json(td_api::getApplicationConfig &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getApplicationDownloadLink &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getArchivedStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type"))); + TRY_STATUS(from_json(to.offset_sticker_set_id_, get_json_object_field_force(from, "offset_sticker_set_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getAttachedStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + return Status::OK(); +} + +Status from_json(td_api::getAttachmentMenuBot &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + return Status::OK(); +} + +Status from_json(td_api::getAuthorizationState &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getAutoDownloadSettingsPresets &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getBackgroundUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::getBackgrounds &to, JsonObject &from) { + TRY_STATUS(from_json(to.for_dark_theme_, get_json_object_field_force(from, "for_dark_theme"))); + return Status::OK(); +} + +Status from_json(td_api::getBankCardInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.bank_card_number_, get_json_object_field_force(from, "bank_card_number"))); + return Status::OK(); +} + +Status from_json(td_api::getBasicGroup &to, JsonObject &from) { + TRY_STATUS(from_json(to.basic_group_id_, get_json_object_field_force(from, "basic_group_id"))); + return Status::OK(); +} + +Status from_json(td_api::getBasicGroupFullInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.basic_group_id_, get_json_object_field_force(from, "basic_group_id"))); + return Status::OK(); +} + +Status from_json(td_api::getBlockedMessageSenders &to, JsonObject &from) { + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getCallbackQueryAnswer &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload"))); + return Status::OK(); +} + +Status from_json(td_api::getCallbackQueryMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.callback_query_id_, get_json_object_field_force(from, "callback_query_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatAdministrators &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatAvailableMessageSenders &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatEventLog &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.from_event_id_, get_json_object_field_force(from, "from_event_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.filters_, get_json_object_field_force(from, "filters"))); + TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::getChatFilter &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_filter_id_, get_json_object_field_force(from, "chat_filter_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatFilterDefaultIconName &to, JsonObject &from) { + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + return Status::OK(); +} + +Status from_json(td_api::getChatHistory &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.only_local_, get_json_object_field_force(from, "only_local"))); + return Status::OK(); +} + +Status from_json(td_api::getChatInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + return Status::OK(); +} + +Status from_json(td_api::getChatInviteLinkCounts &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatInviteLinkMembers &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + TRY_STATUS(from_json(to.offset_member_, get_json_object_field_force(from, "offset_member"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getChatInviteLinks &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.creator_user_id_, get_json_object_field_force(from, "creator_user_id"))); + TRY_STATUS(from_json(to.is_revoked_, get_json_object_field_force(from, "is_revoked"))); + TRY_STATUS(from_json(to.offset_date_, get_json_object_field_force(from, "offset_date"))); + TRY_STATUS(from_json(to.offset_invite_link_, get_json_object_field_force(from, "offset_invite_link"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getChatJoinRequests &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.offset_request_, get_json_object_field_force(from, "offset_request"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getChatListsToAddChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatMember &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.member_id_, get_json_object_field_force(from, "member_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatMessageByDate &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.date_, get_json_object_field_force(from, "date"))); + return Status::OK(); +} + +Status from_json(td_api::getChatMessageCalendar &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatMessageCount &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + TRY_STATUS(from_json(to.return_local_, get_json_object_field_force(from, "return_local"))); + return Status::OK(); +} + +Status from_json(td_api::getChatMessagePosition &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatNotificationSettingsExceptions &to, JsonObject &from) { + TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope"))); + TRY_STATUS(from_json(to.compare_sound_, get_json_object_field_force(from, "compare_sound"))); + return Status::OK(); +} + +Status from_json(td_api::getChatPinnedMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatScheduledMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatSparseMessagePositions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getChatSponsoredMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getChatStatistics &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.is_dark_, get_json_object_field_force(from, "is_dark"))); + return Status::OK(); +} + +Status from_json(td_api::getChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getCommands &to, JsonObject &from) { + TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope"))); + TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code"))); + return Status::OK(); +} + +Status from_json(td_api::getConnectedWebsites &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getContacts &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getCountries &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getCountryCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getCreatedPublicChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::getCurrentState &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getCustomEmojiReactionAnimations &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getCustomEmojiStickers &to, JsonObject &from) { + TRY_STATUS(from_json(to.custom_emoji_ids_, get_json_object_field_force(from, "custom_emoji_ids"))); + return Status::OK(); +} + +Status from_json(td_api::getDatabaseStatistics &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getDeepLinkInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link"))); + return Status::OK(); +} + +Status from_json(td_api::getDefaultEmojiStatuses &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getEmojiReaction &to, JsonObject &from) { + TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji"))); + return Status::OK(); +} + +Status from_json(td_api::getEmojiSuggestionsUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code"))); + return Status::OK(); +} + +Status from_json(td_api::getExternalLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link"))); + TRY_STATUS(from_json(to.allow_write_access_, get_json_object_field_force(from, "allow_write_access"))); + return Status::OK(); +} + +Status from_json(td_api::getExternalLinkInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link"))); + return Status::OK(); +} + +Status from_json(td_api::getFavoriteStickers &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + return Status::OK(); +} + +Status from_json(td_api::getFileDownloadedPrefixSize &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + return Status::OK(); +} + +Status from_json(td_api::getFileExtension &to, JsonObject &from) { + TRY_STATUS(from_json(to.mime_type_, get_json_object_field_force(from, "mime_type"))); + return Status::OK(); +} + +Status from_json(td_api::getFileMimeType &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_name_, get_json_object_field_force(from, "file_name"))); + return Status::OK(); +} + +Status from_json(td_api::getForumTopicDefaultIcons &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getGameHighScores &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::getGroupCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::getGroupCallInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.can_self_unmute_, get_json_object_field_force(from, "can_self_unmute"))); + return Status::OK(); +} + +Status from_json(td_api::getGroupCallStreamSegment &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.time_offset_, get_json_object_field_force(from, "time_offset"))); + TRY_STATUS(from_json(to.scale_, get_json_object_field_force(from, "scale"))); + TRY_STATUS(from_json(to.channel_id_, get_json_object_field_force(from, "channel_id"))); + TRY_STATUS(from_json(to.video_quality_, get_json_object_field_force(from, "video_quality"))); + return Status::OK(); +} + +Status from_json(td_api::getGroupCallStreams &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::getGroupsInCommon &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.offset_chat_id_, get_json_object_field_force(from, "offset_chat_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getImportedContactCount &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getInactiveSupergroupChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getInlineGameHighScores &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::getInlineQueryResults &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.user_location_, get_json_object_field_force(from, "user_location"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + return Status::OK(); +} + +Status from_json(td_api::getInstalledStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type"))); + return Status::OK(); +} + +Status from_json(td_api::getInternalLinkType &to, JsonObject &from) { + TRY_STATUS(from_json(to.link_, get_json_object_field_force(from, "link"))); + return Status::OK(); +} + +Status from_json(td_api::getJsonString &to, JsonObject &from) { + TRY_STATUS(from_json(to.json_value_, get_json_object_field_force(from, "json_value"))); + return Status::OK(); +} + +Status from_json(td_api::getJsonValue &to, JsonObject &from) { + TRY_STATUS(from_json(to.json_, get_json_object_field_force(from, "json"))); + return Status::OK(); +} + +Status from_json(td_api::getLanguagePackInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id"))); + return Status::OK(); +} + +Status from_json(td_api::getLanguagePackString &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_pack_database_path_, get_json_object_field_force(from, "language_pack_database_path"))); + TRY_STATUS(from_json(to.localization_target_, get_json_object_field_force(from, "localization_target"))); + TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id"))); + TRY_STATUS(from_json(to.key_, get_json_object_field_force(from, "key"))); + return Status::OK(); +} + +Status from_json(td_api::getLanguagePackStrings &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id"))); + TRY_STATUS(from_json(to.keys_, get_json_object_field_force(from, "keys"))); + return Status::OK(); +} + +Status from_json(td_api::getLocalizationTargetInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.only_local_, get_json_object_field_force(from, "only_local"))); + return Status::OK(); +} + +Status from_json(td_api::getLogStream &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getLogTagVerbosityLevel &to, JsonObject &from) { + TRY_STATUS(from_json(to.tag_, get_json_object_field_force(from, "tag"))); + return Status::OK(); +} + +Status from_json(td_api::getLogTags &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getLogVerbosityLevel &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getLoginUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.button_id_, get_json_object_field_force(from, "button_id"))); + TRY_STATUS(from_json(to.allow_write_access_, get_json_object_field_force(from, "allow_write_access"))); + return Status::OK(); +} + +Status from_json(td_api::getLoginUrlInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.button_id_, get_json_object_field_force(from, "button_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMapThumbnailFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + TRY_STATUS(from_json(to.zoom_, get_json_object_field_force(from, "zoom"))); + TRY_STATUS(from_json(to.width_, get_json_object_field_force(from, "width"))); + TRY_STATUS(from_json(to.height_, get_json_object_field_force(from, "height"))); + TRY_STATUS(from_json(to.scale_, get_json_object_field_force(from, "scale"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMarkdownText &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + return Status::OK(); +} + +Status from_json(td_api::getMe &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getMenuButton &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageAddedReactions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageAvailableReactions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.row_size_, get_json_object_field_force(from, "row_size"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageEmbeddingCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.for_album_, get_json_object_field_force(from, "for_album"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageFileType &to, JsonObject &from) { + TRY_STATUS(from_json(to.message_file_head_, get_json_object_field_force(from, "message_file_head"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageImportConfirmationText &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.media_timestamp_, get_json_object_field_force(from, "media_timestamp"))); + TRY_STATUS(from_json(to.for_album_, get_json_object_field_force(from, "for_album"))); + TRY_STATUS(from_json(to.in_message_thread_, get_json_object_field_force(from, "in_message_thread"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageLinkInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageLocally &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMessagePublicForwards &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageStatistics &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.is_dark_, get_json_object_field_force(from, "is_dark"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageThread &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageThreadHistory &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getMessageViewers &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::getMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids"))); + return Status::OK(); +} + +Status from_json(td_api::getNetworkStatistics &to, JsonObject &from) { + TRY_STATUS(from_json(to.only_current_, get_json_object_field_force(from, "only_current"))); + return Status::OK(); +} + +Status from_json(td_api::getOption &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + return Status::OK(); +} + +Status from_json(td_api::getPassportAuthorizationForm &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope"))); + TRY_STATUS(from_json(to.public_key_, get_json_object_field_force(from, "public_key"))); + TRY_STATUS(from_json(to.nonce_, get_json_object_field_force(from, "nonce"))); + return Status::OK(); +} + +Status from_json(td_api::getPassportAuthorizationFormAvailableElements &to, JsonObject &from) { + TRY_STATUS(from_json(to.autorization_form_id_, get_json_object_field_force(from, "autorization_form_id"))); + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::getPassportElement &to, JsonObject &from) { + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::getPasswordState &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getPaymentForm &to, JsonObject &from) { + TRY_STATUS(from_json(to.input_invoice_, get_json_object_field_force(from, "input_invoice"))); + TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme"))); + return Status::OK(); +} + +Status from_json(td_api::getPaymentReceipt &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::getPhoneNumberInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.phone_number_prefix_, get_json_object_field_force(from, "phone_number_prefix"))); + return Status::OK(); +} + +Status from_json(td_api::getPhoneNumberInfoSync &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code"))); + TRY_STATUS(from_json(to.phone_number_prefix_, get_json_object_field_force(from, "phone_number_prefix"))); + return Status::OK(); +} + +Status from_json(td_api::getPollVoters &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.option_id_, get_json_object_field_force(from, "option_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getPreferredCountryLanguage &to, JsonObject &from) { + TRY_STATUS(from_json(to.country_code_, get_json_object_field_force(from, "country_code"))); + return Status::OK(); +} + +Status from_json(td_api::getPremiumFeatures &to, JsonObject &from) { + TRY_STATUS(from_json(to.source_, get_json_object_field_force(from, "source"))); + return Status::OK(); +} + +Status from_json(td_api::getPremiumLimit &to, JsonObject &from) { + TRY_STATUS(from_json(to.limit_type_, get_json_object_field_force(from, "limit_type"))); + return Status::OK(); +} + +Status from_json(td_api::getPremiumState &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getPremiumStickerExamples &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getPremiumStickers &to, JsonObject &from) { + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getProxies &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getProxyLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id"))); + return Status::OK(); +} + +Status from_json(td_api::getPushReceiverId &to, JsonObject &from) { + TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload"))); + return Status::OK(); +} + +Status from_json(td_api::getRecentEmojiStatuses &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getRecentInlineBots &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getRecentStickers &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached"))); + return Status::OK(); +} + +Status from_json(td_api::getRecentlyOpenedChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getRecentlyVisitedTMeUrls &to, JsonObject &from) { + TRY_STATUS(from_json(to.referrer_, get_json_object_field_force(from, "referrer"))); + return Status::OK(); +} + +Status from_json(td_api::getRecommendedChatFilters &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getRecoveryEmailAddress &to, JsonObject &from) { + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::getRemoteFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.remote_file_id_, get_json_object_field_force(from, "remote_file_id"))); + TRY_STATUS(from_json(to.file_type_, get_json_object_field_force(from, "file_type"))); + return Status::OK(); +} + +Status from_json(td_api::getRepliedMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::getSavedAnimations &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getSavedNotificationSound &to, JsonObject &from) { + TRY_STATUS(from_json(to.notification_sound_id_, get_json_object_field_force(from, "notification_sound_id"))); + return Status::OK(); +} + +Status from_json(td_api::getSavedNotificationSounds &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getSavedOrderInfo &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getScopeNotificationSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope"))); + return Status::OK(); +} + +Status from_json(td_api::getSecretChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.secret_chat_id_, get_json_object_field_force(from, "secret_chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getStatisticalGraph &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.token_, get_json_object_field_force(from, "token"))); + TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::getStickerEmojis &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::getStickerSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.set_id_, get_json_object_field_force(from, "set_id"))); + return Status::OK(); +} + +Status from_json(td_api::getStickers &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getStorageStatistics &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_limit_, get_json_object_field_force(from, "chat_limit"))); + return Status::OK(); +} + +Status from_json(td_api::getStorageStatisticsFast &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getSuggestedFileName &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.directory_, get_json_object_field_force(from, "directory"))); + return Status::OK(); +} + +Status from_json(td_api::getSuggestedStickerSetName &to, JsonObject &from) { + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + return Status::OK(); +} + +Status from_json(td_api::getSuitableDiscussionChats &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getSupergroup &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + return Status::OK(); +} + +Status from_json(td_api::getSupergroupFullInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + return Status::OK(); +} + +Status from_json(td_api::getSupergroupMembers &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getSupportUser &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getTemporaryPasswordState &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getTextEntities &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + return Status::OK(); +} + +Status from_json(td_api::getThemeParametersJsonString &to, JsonObject &from) { + TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme"))); + return Status::OK(); +} + +Status from_json(td_api::getThemedEmojiStatuses &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::getTopChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.category_, get_json_object_field_force(from, "category"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getTrendingStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getUser &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::getUserFullInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::getUserPrivacySettingRules &to, JsonObject &from) { + TRY_STATUS(from_json(to.setting_, get_json_object_field_force(from, "setting"))); + return Status::OK(); +} + +Status from_json(td_api::getUserProfilePhotos &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::getUserSupportInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::getVideoChatAvailableParticipants &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getVideoChatRtmpUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::getWebAppUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme"))); + TRY_STATUS(from_json(to.application_name_, get_json_object_field_force(from, "application_name"))); + return Status::OK(); +} + +Status from_json(td_api::getWebPageInstantView &to, JsonObject &from) { + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + TRY_STATUS(from_json(to.force_full_, get_json_object_field_force(from, "force_full"))); + return Status::OK(); +} + +Status from_json(td_api::getWebPagePreview &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + return Status::OK(); +} + +Status from_json(td_api::hideSuggestedAction &to, JsonObject &from) { + TRY_STATUS(from_json(to.action_, get_json_object_field_force(from, "action"))); + return Status::OK(); +} + +Status from_json(td_api::importContacts &to, JsonObject &from) { + TRY_STATUS(from_json(to.contacts_, get_json_object_field_force(from, "contacts"))); + return Status::OK(); +} + +Status from_json(td_api::importMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_file_, get_json_object_field_force(from, "message_file"))); + TRY_STATUS(from_json(to.attached_files_, get_json_object_field_force(from, "attached_files"))); + return Status::OK(); +} + +Status from_json(td_api::inviteGroupCallParticipants &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::joinChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::joinChatByInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + return Status::OK(); +} + +Status from_json(td_api::joinGroupCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id"))); + TRY_STATUS(from_json(to.audio_source_id_, get_json_object_field_force(from, "audio_source_id"))); + TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload"))); + TRY_STATUS(from_json(to.is_muted_, get_json_object_field_force(from, "is_muted"))); + TRY_STATUS(from_json(to.is_my_video_enabled_, get_json_object_field_force(from, "is_my_video_enabled"))); + TRY_STATUS(from_json(to.invite_hash_, get_json_object_field_force(from, "invite_hash"))); + return Status::OK(); +} + +Status from_json(td_api::leaveChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::leaveGroupCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::loadChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::loadGroupCallParticipants &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::logOut &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::openChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::openMessageContent &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::openWebApp &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.url_, get_json_object_field_force(from, "url"))); + TRY_STATUS(from_json(to.theme_, get_json_object_field_force(from, "theme"))); + TRY_STATUS(from_json(to.application_name_, get_json_object_field_force(from, "application_name"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id"))); + return Status::OK(); +} + +Status from_json(td_api::optimizeStorage &to, JsonObject &from) { + TRY_STATUS(from_json(to.size_, get_json_object_field_force(from, "size"))); + TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl"))); + TRY_STATUS(from_json(to.count_, get_json_object_field_force(from, "count"))); + TRY_STATUS(from_json(to.immunity_delay_, get_json_object_field_force(from, "immunity_delay"))); + TRY_STATUS(from_json(to.file_types_, get_json_object_field_force(from, "file_types"))); + TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids"))); + TRY_STATUS(from_json(to.exclude_chat_ids_, get_json_object_field_force(from, "exclude_chat_ids"))); + TRY_STATUS(from_json(to.return_deleted_file_statistics_, get_json_object_field_force(from, "return_deleted_file_statistics"))); + TRY_STATUS(from_json(to.chat_limit_, get_json_object_field_force(from, "chat_limit"))); + return Status::OK(); +} + +Status from_json(td_api::parseMarkdown &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + return Status::OK(); +} + +Status from_json(td_api::parseTextEntities &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.parse_mode_, get_json_object_field_force(from, "parse_mode"))); + return Status::OK(); +} + +Status from_json(td_api::pinChatMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.disable_notification_, get_json_object_field_force(from, "disable_notification"))); + TRY_STATUS(from_json(to.only_for_self_, get_json_object_field_force(from, "only_for_self"))); + return Status::OK(); +} + +Status from_json(td_api::pingProxy &to, JsonObject &from) { + TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id"))); + return Status::OK(); +} + +Status from_json(td_api::preliminaryUploadFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_, get_json_object_field_force(from, "file"))); + TRY_STATUS(from_json(to.file_type_, get_json_object_field_force(from, "file_type"))); + TRY_STATUS(from_json(to.priority_, get_json_object_field_force(from, "priority"))); + return Status::OK(); +} + +Status from_json(td_api::processChatJoinRequest &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.approve_, get_json_object_field_force(from, "approve"))); + return Status::OK(); +} + +Status from_json(td_api::processChatJoinRequests &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + TRY_STATUS(from_json(to.approve_, get_json_object_field_force(from, "approve"))); + return Status::OK(); +} + +Status from_json(td_api::processPushNotification &to, JsonObject &from) { + TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload"))); + return Status::OK(); +} + +Status from_json(td_api::rateSpeechRecognition &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.is_good_, get_json_object_field_force(from, "is_good"))); + return Status::OK(); +} + +Status from_json(td_api::readAllChatMentions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::readAllChatReactions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::readAllMessageThreadMentions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::readAllMessageThreadReactions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::readFilePart &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.count_, get_json_object_field_force(from, "count"))); + return Status::OK(); +} + +Status from_json(td_api::recognizeSpeech &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::recoverAuthenticationPassword &to, JsonObject &from) { + TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code"))); + TRY_STATUS(from_json(to.new_password_, get_json_object_field_force(from, "new_password"))); + TRY_STATUS(from_json(to.new_hint_, get_json_object_field_force(from, "new_hint"))); + return Status::OK(); +} + +Status from_json(td_api::recoverPassword &to, JsonObject &from) { + TRY_STATUS(from_json(to.recovery_code_, get_json_object_field_force(from, "recovery_code"))); + TRY_STATUS(from_json(to.new_password_, get_json_object_field_force(from, "new_password"))); + TRY_STATUS(from_json(to.new_hint_, get_json_object_field_force(from, "new_hint"))); + return Status::OK(); +} + +Status from_json(td_api::registerDevice &to, JsonObject &from) { + TRY_STATUS(from_json(to.device_token_, get_json_object_field_force(from, "device_token"))); + TRY_STATUS(from_json(to.other_user_ids_, get_json_object_field_force(from, "other_user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::registerUser &to, JsonObject &from) { + TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name"))); + TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name"))); + return Status::OK(); +} + +Status from_json(td_api::removeAllFilesFromDownloads &to, JsonObject &from) { + TRY_STATUS(from_json(to.only_active_, get_json_object_field_force(from, "only_active"))); + TRY_STATUS(from_json(to.only_completed_, get_json_object_field_force(from, "only_completed"))); + TRY_STATUS(from_json(to.delete_from_cache_, get_json_object_field_force(from, "delete_from_cache"))); + return Status::OK(); +} + +Status from_json(td_api::removeBackground &to, JsonObject &from) { + TRY_STATUS(from_json(to.background_id_, get_json_object_field_force(from, "background_id"))); + return Status::OK(); +} + +Status from_json(td_api::removeChatActionBar &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::removeContacts &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_ids_, get_json_object_field_force(from, "user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::removeFavoriteSticker &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::removeFileFromDownloads &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.delete_from_cache_, get_json_object_field_force(from, "delete_from_cache"))); + return Status::OK(); +} + +Status from_json(td_api::removeMessageReaction &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type"))); + return Status::OK(); +} + +Status from_json(td_api::removeNotification &to, JsonObject &from) { + TRY_STATUS(from_json(to.notification_group_id_, get_json_object_field_force(from, "notification_group_id"))); + TRY_STATUS(from_json(to.notification_id_, get_json_object_field_force(from, "notification_id"))); + return Status::OK(); +} + +Status from_json(td_api::removeNotificationGroup &to, JsonObject &from) { + TRY_STATUS(from_json(to.notification_group_id_, get_json_object_field_force(from, "notification_group_id"))); + TRY_STATUS(from_json(to.max_notification_id_, get_json_object_field_force(from, "max_notification_id"))); + return Status::OK(); +} + +Status from_json(td_api::removeProxy &to, JsonObject &from) { + TRY_STATUS(from_json(to.proxy_id_, get_json_object_field_force(from, "proxy_id"))); + return Status::OK(); +} + +Status from_json(td_api::removeRecentHashtag &to, JsonObject &from) { + TRY_STATUS(from_json(to.hashtag_, get_json_object_field_force(from, "hashtag"))); + return Status::OK(); +} + +Status from_json(td_api::removeRecentSticker &to, JsonObject &from) { + TRY_STATUS(from_json(to.is_attached_, get_json_object_field_force(from, "is_attached"))); + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::removeRecentlyFoundChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::removeSavedAnimation &to, JsonObject &from) { + TRY_STATUS(from_json(to.animation_, get_json_object_field_force(from, "animation"))); + return Status::OK(); +} + +Status from_json(td_api::removeSavedNotificationSound &to, JsonObject &from) { + TRY_STATUS(from_json(to.notification_sound_id_, get_json_object_field_force(from, "notification_sound_id"))); + return Status::OK(); +} + +Status from_json(td_api::removeStickerFromSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::removeTopChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.category_, get_json_object_field_force(from, "category"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::reorderActiveUsernames &to, JsonObject &from) { + TRY_STATUS(from_json(to.usernames_, get_json_object_field_force(from, "usernames"))); + return Status::OK(); +} + +Status from_json(td_api::reorderChatFilters &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_filter_ids_, get_json_object_field_force(from, "chat_filter_ids"))); + TRY_STATUS(from_json(to.main_chat_list_position_, get_json_object_field_force(from, "main_chat_list_position"))); + return Status::OK(); +} + +Status from_json(td_api::reorderInstalledStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type"))); + TRY_STATUS(from_json(to.sticker_set_ids_, get_json_object_field_force(from, "sticker_set_ids"))); + return Status::OK(); +} + +Status from_json(td_api::reorderSupergroupActiveUsernames &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.usernames_, get_json_object_field_force(from, "usernames"))); + return Status::OK(); +} + +Status from_json(td_api::replacePrimaryChatInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::replaceVideoChatRtmpUrl &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::reportChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids"))); + TRY_STATUS(from_json(to.reason_, get_json_object_field_force(from, "reason"))); + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + return Status::OK(); +} + +Status from_json(td_api::reportChatPhoto &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.reason_, get_json_object_field_force(from, "reason"))); + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + return Status::OK(); +} + +Status from_json(td_api::reportMessageReactions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id"))); + return Status::OK(); +} + +Status from_json(td_api::reportSupergroupSpam &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids"))); + return Status::OK(); +} + +Status from_json(td_api::requestAuthenticationPasswordRecovery &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::requestPasswordRecovery &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::requestQrCodeAuthentication &to, JsonObject &from) { + TRY_STATUS(from_json(to.other_user_ids_, get_json_object_field_force(from, "other_user_ids"))); + return Status::OK(); +} + +Status from_json(td_api::resendAuthenticationCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resendChangePhoneNumberCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resendEmailAddressVerificationCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resendLoginEmailAddressCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resendMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids"))); + return Status::OK(); +} + +Status from_json(td_api::resendPhoneNumberConfirmationCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resendPhoneNumberVerificationCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resendRecoveryEmailAddressCode &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resetAllNotificationSettings &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resetBackgrounds &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resetNetworkStatistics &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::resetPassword &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::revokeChatInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.invite_link_, get_json_object_field_force(from, "invite_link"))); + return Status::OK(); +} + +Status from_json(td_api::revokeGroupCallInviteLink &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::saveApplicationLogEvent &to, JsonObject &from) { + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::searchBackground &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + return Status::OK(); +} + +Status from_json(td_api::searchCallMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.only_missed_, get_json_object_field_force(from, "only_missed"))); + return Status::OK(); +} + +Status from_json(td_api::searchChatMembers &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + return Status::OK(); +} + +Status from_json(td_api::searchChatMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id"))); + TRY_STATUS(from_json(to.from_message_id_, get_json_object_field_force(from, "from_message_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::searchChatRecentLocationMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchChatsNearby &to, JsonObject &from) { + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + return Status::OK(); +} + +Status from_json(td_api::searchChatsOnServer &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchContacts &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchEmojis &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.exact_match_, get_json_object_field_force(from, "exact_match"))); + TRY_STATUS(from_json(to.input_language_codes_, get_json_object_field_force(from, "input_language_codes"))); + return Status::OK(); +} + +Status from_json(td_api::searchFileDownloads &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.only_active_, get_json_object_field_force(from, "only_active"))); + TRY_STATUS(from_json(to.only_completed_, get_json_object_field_force(from, "only_completed"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchHashtags &to, JsonObject &from) { + TRY_STATUS(from_json(to.prefix_, get_json_object_field_force(from, "prefix"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchInstalledStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_type_, get_json_object_field_force(from, "sticker_type"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.offset_date_, get_json_object_field_force(from, "offset_date"))); + TRY_STATUS(from_json(to.offset_chat_id_, get_json_object_field_force(from, "offset_chat_id"))); + TRY_STATUS(from_json(to.offset_message_id_, get_json_object_field_force(from, "offset_message_id"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + TRY_STATUS(from_json(to.min_date_, get_json_object_field_force(from, "min_date"))); + TRY_STATUS(from_json(to.max_date_, get_json_object_field_force(from, "max_date"))); + return Status::OK(); +} + +Status from_json(td_api::searchOutgoingDocumentMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchPublicChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + return Status::OK(); +} + +Status from_json(td_api::searchPublicChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + return Status::OK(); +} + +Status from_json(td_api::searchSecretMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + TRY_STATUS(from_json(to.filter_, get_json_object_field_force(from, "filter"))); + return Status::OK(); +} + +Status from_json(td_api::searchStickerSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + return Status::OK(); +} + +Status from_json(td_api::searchStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.query_, get_json_object_field_force(from, "query"))); + return Status::OK(); +} + +Status from_json(td_api::searchStickers &to, JsonObject &from) { + TRY_STATUS(from_json(to.emoji_, get_json_object_field_force(from, "emoji"))); + TRY_STATUS(from_json(to.limit_, get_json_object_field_force(from, "limit"))); + return Status::OK(); +} + +Status from_json(td_api::searchUserByPhoneNumber &to, JsonObject &from) { + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + return Status::OK(); +} + +Status from_json(td_api::sendBotStartMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.parameter_, get_json_object_field_force(from, "parameter"))); + return Status::OK(); +} + +Status from_json(td_api::sendCallDebugInformation &to, JsonObject &from) { + TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id"))); + TRY_STATUS(from_json(to.debug_information_, get_json_object_field_force(from, "debug_information"))); + return Status::OK(); +} + +Status from_json(td_api::sendCallLog &to, JsonObject &from) { + TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id"))); + TRY_STATUS(from_json(to.log_file_, get_json_object_field_force(from, "log_file"))); + return Status::OK(); +} + +Status from_json(td_api::sendCallRating &to, JsonObject &from) { + TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id"))); + TRY_STATUS(from_json(to.rating_, get_json_object_field_force(from, "rating"))); + TRY_STATUS(from_json(to.comment_, get_json_object_field_force(from, "comment"))); + TRY_STATUS(from_json(to.problems_, get_json_object_field_force(from, "problems"))); + return Status::OK(); +} + +Status from_json(td_api::sendCallSignalingData &to, JsonObject &from) { + TRY_STATUS(from_json(to.call_id_, get_json_object_field_force(from, "call_id"))); + TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::sendChatAction &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.action_, get_json_object_field_force(from, "action"))); + return Status::OK(); +} + +Status from_json(td_api::sendChatScreenshotTakenNotification &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::sendCustomRequest &to, JsonObject &from) { + TRY_STATUS(from_json(to.method_, get_json_object_field_force(from, "method"))); + TRY_STATUS(from_json(to.parameters_, get_json_object_field_force(from, "parameters"))); + return Status::OK(); +} + +Status from_json(td_api::sendEmailAddressVerificationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address"))); + return Status::OK(); +} + +Status from_json(td_api::sendInlineQueryResultMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id"))); + TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options"))); + TRY_STATUS(from_json(to.query_id_, get_json_object_field_force(from, "query_id"))); + TRY_STATUS(from_json(to.result_id_, get_json_object_field_force(from, "result_id"))); + TRY_STATUS(from_json(to.hide_via_bot_, get_json_object_field_force(from, "hide_via_bot"))); + return Status::OK(); +} + +Status from_json(td_api::sendMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id"))); + TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + TRY_STATUS(from_json(to.input_message_content_, get_json_object_field_force(from, "input_message_content"))); + return Status::OK(); +} + +Status from_json(td_api::sendMessageAlbum &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.reply_to_message_id_, get_json_object_field_force(from, "reply_to_message_id"))); + TRY_STATUS(from_json(to.options_, get_json_object_field_force(from, "options"))); + TRY_STATUS(from_json(to.input_message_contents_, get_json_object_field_force(from, "input_message_contents"))); + TRY_STATUS(from_json(to.only_preview_, get_json_object_field_force(from, "only_preview"))); + return Status::OK(); +} + +Status from_json(td_api::sendPassportAuthorizationForm &to, JsonObject &from) { + TRY_STATUS(from_json(to.autorization_form_id_, get_json_object_field_force(from, "autorization_form_id"))); + TRY_STATUS(from_json(to.types_, get_json_object_field_force(from, "types"))); + return Status::OK(); +} + +Status from_json(td_api::sendPaymentForm &to, JsonObject &from) { + TRY_STATUS(from_json(to.input_invoice_, get_json_object_field_force(from, "input_invoice"))); + TRY_STATUS(from_json(to.payment_form_id_, get_json_object_field_force(from, "payment_form_id"))); + TRY_STATUS(from_json(to.order_info_id_, get_json_object_field_force(from, "order_info_id"))); + TRY_STATUS(from_json(to.shipping_option_id_, get_json_object_field_force(from, "shipping_option_id"))); + TRY_STATUS(from_json(to.credentials_, get_json_object_field_force(from, "credentials"))); + TRY_STATUS(from_json(to.tip_amount_, get_json_object_field_force(from, "tip_amount"))); + return Status::OK(); +} + +Status from_json(td_api::sendPhoneNumberConfirmationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.hash_, get_json_object_field_force(from, "hash"))); + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings"))); + return Status::OK(); +} + +Status from_json(td_api::sendPhoneNumberVerificationCode &to, JsonObject &from) { + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings"))); + return Status::OK(); +} + +Status from_json(td_api::sendWebAppData &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.button_text_, get_json_object_field_force(from, "button_text"))); + TRY_STATUS(from_json(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +Status from_json(td_api::setAccountTtl &to, JsonObject &from) { + TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl"))); + return Status::OK(); +} + +Status from_json(td_api::setAlarm &to, JsonObject &from) { + TRY_STATUS(from_json(to.seconds_, get_json_object_field_force(from, "seconds"))); + return Status::OK(); +} + +Status from_json(td_api::setAuthenticationEmailAddress &to, JsonObject &from) { + TRY_STATUS(from_json(to.email_address_, get_json_object_field_force(from, "email_address"))); + return Status::OK(); +} + +Status from_json(td_api::setAuthenticationPhoneNumber &to, JsonObject &from) { + TRY_STATUS(from_json(to.phone_number_, get_json_object_field_force(from, "phone_number"))); + TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings"))); + return Status::OK(); +} + +Status from_json(td_api::setAutoDownloadSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.settings_, get_json_object_field_force(from, "settings"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::setBackground &to, JsonObject &from) { + TRY_STATUS(from_json(to.background_, get_json_object_field_force(from, "background"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + TRY_STATUS(from_json(to.for_dark_theme_, get_json_object_field_force(from, "for_dark_theme"))); + return Status::OK(); +} + +Status from_json(td_api::setBio &to, JsonObject &from) { + TRY_STATUS(from_json(to.bio_, get_json_object_field_force(from, "bio"))); + return Status::OK(); +} + +Status from_json(td_api::setBotUpdatesStatus &to, JsonObject &from) { + TRY_STATUS(from_json(to.pending_update_count_, get_json_object_field_force(from, "pending_update_count"))); + TRY_STATUS(from_json(to.error_message_, get_json_object_field_force(from, "error_message"))); + return Status::OK(); +} + +Status from_json(td_api::setChatAvailableReactions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.available_reactions_, get_json_object_field_force(from, "available_reactions"))); + return Status::OK(); +} + +Status from_json(td_api::setChatClientData &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.client_data_, get_json_object_field_force(from, "client_data"))); + return Status::OK(); +} + +Status from_json(td_api::setChatDescription &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.description_, get_json_object_field_force(from, "description"))); + return Status::OK(); +} + +Status from_json(td_api::setChatDiscussionGroup &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.discussion_chat_id_, get_json_object_field_force(from, "discussion_chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::setChatDraftMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.draft_message_, get_json_object_field_force(from, "draft_message"))); + return Status::OK(); +} + +Status from_json(td_api::setChatLocation &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + return Status::OK(); +} + +Status from_json(td_api::setChatMemberStatus &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.member_id_, get_json_object_field_force(from, "member_id"))); + TRY_STATUS(from_json(to.status_, get_json_object_field_force(from, "status"))); + return Status::OK(); +} + +Status from_json(td_api::setChatMessageSender &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_sender_id_, get_json_object_field_force(from, "message_sender_id"))); + return Status::OK(); +} + +Status from_json(td_api::setChatMessageTtl &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.ttl_, get_json_object_field_force(from, "ttl"))); + return Status::OK(); +} + +Status from_json(td_api::setChatNotificationSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.notification_settings_, get_json_object_field_force(from, "notification_settings"))); + return Status::OK(); +} + +Status from_json(td_api::setChatPermissions &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.permissions_, get_json_object_field_force(from, "permissions"))); + return Status::OK(); +} + +Status from_json(td_api::setChatPhoto &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo"))); + return Status::OK(); +} + +Status from_json(td_api::setChatSlowModeDelay &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.slow_mode_delay_, get_json_object_field_force(from, "slow_mode_delay"))); + return Status::OK(); +} + +Status from_json(td_api::setChatTheme &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.theme_name_, get_json_object_field_force(from, "theme_name"))); + return Status::OK(); +} + +Status from_json(td_api::setChatTitle &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + return Status::OK(); +} + +Status from_json(td_api::setCommands &to, JsonObject &from) { + TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope"))); + TRY_STATUS(from_json(to.language_code_, get_json_object_field_force(from, "language_code"))); + TRY_STATUS(from_json(to.commands_, get_json_object_field_force(from, "commands"))); + return Status::OK(); +} + +Status from_json(td_api::setCustomLanguagePack &to, JsonObject &from) { + TRY_STATUS(from_json(to.info_, get_json_object_field_force(from, "info"))); + TRY_STATUS(from_json(to.strings_, get_json_object_field_force(from, "strings"))); + return Status::OK(); +} + +Status from_json(td_api::setCustomLanguagePackString &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id"))); + TRY_STATUS(from_json(to.new_string_, get_json_object_field_force(from, "new_string"))); + return Status::OK(); +} + +Status from_json(td_api::setDatabaseEncryptionKey &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.new_encryption_key_, get_json_object_field_force(from, "new_encryption_key"))); + return Status::OK(); +} + +Status from_json(td_api::setDefaultChannelAdministratorRights &to, JsonObject &from) { + TRY_STATUS(from_json(to.default_channel_administrator_rights_, get_json_object_field_force(from, "default_channel_administrator_rights"))); + return Status::OK(); +} + +Status from_json(td_api::setDefaultGroupAdministratorRights &to, JsonObject &from) { + TRY_STATUS(from_json(to.default_group_administrator_rights_, get_json_object_field_force(from, "default_group_administrator_rights"))); + return Status::OK(); +} + +Status from_json(td_api::setDefaultReactionType &to, JsonObject &from) { + TRY_STATUS(from_json(to.reaction_type_, get_json_object_field_force(from, "reaction_type"))); + return Status::OK(); +} + +Status from_json(td_api::setEmojiStatus &to, JsonObject &from) { + TRY_STATUS(from_json(to.emoji_status_, get_json_object_field_force(from, "emoji_status"))); + TRY_STATUS(from_json(to.duration_, get_json_object_field_force(from, "duration"))); + return Status::OK(); +} + +Status from_json(td_api::setFileGenerationProgress &to, JsonObject &from) { + TRY_STATUS(from_json(to.generation_id_, get_json_object_field_force(from, "generation_id"))); + TRY_STATUS(from_json(to.expected_size_, get_json_object_field_force(from, "expected_size"))); + TRY_STATUS(from_json(to.local_prefix_size_, get_json_object_field_force(from, "local_prefix_size"))); + return Status::OK(); +} + +Status from_json(td_api::setGameScore &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.edit_message_, get_json_object_field_force(from, "edit_message"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.score_, get_json_object_field_force(from, "score"))); + TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force"))); + return Status::OK(); +} + +Status from_json(td_api::setGroupCallParticipantIsSpeaking &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.audio_source_, get_json_object_field_force(from, "audio_source"))); + TRY_STATUS(from_json(to.is_speaking_, get_json_object_field_force(from, "is_speaking"))); + return Status::OK(); +} + +Status from_json(td_api::setGroupCallParticipantVolumeLevel &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id"))); + TRY_STATUS(from_json(to.volume_level_, get_json_object_field_force(from, "volume_level"))); + return Status::OK(); +} + +Status from_json(td_api::setGroupCallTitle &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + return Status::OK(); +} + +Status from_json(td_api::setInactiveSessionTtl &to, JsonObject &from) { + TRY_STATUS(from_json(to.inactive_session_ttl_days_, get_json_object_field_force(from, "inactive_session_ttl_days"))); + return Status::OK(); +} + +Status from_json(td_api::setInlineGameScore &to, JsonObject &from) { + TRY_STATUS(from_json(to.inline_message_id_, get_json_object_field_force(from, "inline_message_id"))); + TRY_STATUS(from_json(to.edit_message_, get_json_object_field_force(from, "edit_message"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.score_, get_json_object_field_force(from, "score"))); + TRY_STATUS(from_json(to.force_, get_json_object_field_force(from, "force"))); + return Status::OK(); +} + +Status from_json(td_api::setLocation &to, JsonObject &from) { + TRY_STATUS(from_json(to.location_, get_json_object_field_force(from, "location"))); + return Status::OK(); +} + +Status from_json(td_api::setLogStream &to, JsonObject &from) { + TRY_STATUS(from_json(to.log_stream_, get_json_object_field_force(from, "log_stream"))); + return Status::OK(); +} + +Status from_json(td_api::setLogTagVerbosityLevel &to, JsonObject &from) { + TRY_STATUS(from_json(to.tag_, get_json_object_field_force(from, "tag"))); + TRY_STATUS(from_json(to.new_verbosity_level_, get_json_object_field_force(from, "new_verbosity_level"))); + return Status::OK(); +} + +Status from_json(td_api::setLogVerbosityLevel &to, JsonObject &from) { + TRY_STATUS(from_json(to.new_verbosity_level_, get_json_object_field_force(from, "new_verbosity_level"))); + return Status::OK(); +} + +Status from_json(td_api::setLoginEmailAddress &to, JsonObject &from) { + TRY_STATUS(from_json(to.new_login_email_address_, get_json_object_field_force(from, "new_login_email_address"))); + return Status::OK(); +} + +Status from_json(td_api::setMenuButton &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.menu_button_, get_json_object_field_force(from, "menu_button"))); + return Status::OK(); +} + +Status from_json(td_api::setName &to, JsonObject &from) { + TRY_STATUS(from_json(to.first_name_, get_json_object_field_force(from, "first_name"))); + TRY_STATUS(from_json(to.last_name_, get_json_object_field_force(from, "last_name"))); + return Status::OK(); +} + +Status from_json(td_api::setNetworkType &to, JsonObject &from) { + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + return Status::OK(); +} + +Status from_json(td_api::setOption &to, JsonObject &from) { + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.value_, get_json_object_field_force(from, "value"))); + return Status::OK(); +} + +Status from_json(td_api::setPassportElement &to, JsonObject &from) { + TRY_STATUS(from_json(to.element_, get_json_object_field_force(from, "element"))); + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::setPassportElementErrors &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.errors_, get_json_object_field_force(from, "errors"))); + return Status::OK(); +} + +Status from_json(td_api::setPassword &to, JsonObject &from) { + TRY_STATUS(from_json(to.old_password_, get_json_object_field_force(from, "old_password"))); + TRY_STATUS(from_json(to.new_password_, get_json_object_field_force(from, "new_password"))); + TRY_STATUS(from_json(to.new_hint_, get_json_object_field_force(from, "new_hint"))); + TRY_STATUS(from_json(to.set_recovery_email_address_, get_json_object_field_force(from, "set_recovery_email_address"))); + TRY_STATUS(from_json(to.new_recovery_email_address_, get_json_object_field_force(from, "new_recovery_email_address"))); + return Status::OK(); +} + +Status from_json(td_api::setPinnedChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list"))); + TRY_STATUS(from_json(to.chat_ids_, get_json_object_field_force(from, "chat_ids"))); + return Status::OK(); +} + +Status from_json(td_api::setPollAnswer &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.option_ids_, get_json_object_field_force(from, "option_ids"))); + return Status::OK(); +} + +Status from_json(td_api::setProfilePhoto &to, JsonObject &from) { + TRY_STATUS(from_json(to.photo_, get_json_object_field_force(from, "photo"))); + return Status::OK(); +} + +Status from_json(td_api::setRecoveryEmailAddress &to, JsonObject &from) { + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + TRY_STATUS(from_json(to.new_recovery_email_address_, get_json_object_field_force(from, "new_recovery_email_address"))); + return Status::OK(); +} + +Status from_json(td_api::setScopeNotificationSettings &to, JsonObject &from) { + TRY_STATUS(from_json(to.scope_, get_json_object_field_force(from, "scope"))); + TRY_STATUS(from_json(to.notification_settings_, get_json_object_field_force(from, "notification_settings"))); + return Status::OK(); +} + +Status from_json(td_api::setStickerPositionInSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + TRY_STATUS(from_json(to.position_, get_json_object_field_force(from, "position"))); + return Status::OK(); +} + +Status from_json(td_api::setStickerSetThumbnail &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.name_, get_json_object_field_force(from, "name"))); + TRY_STATUS(from_json(to.thumbnail_, get_json_object_field_force(from, "thumbnail"))); + return Status::OK(); +} + +Status from_json(td_api::setSupergroupStickerSet &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.sticker_set_id_, get_json_object_field_force(from, "sticker_set_id"))); + return Status::OK(); +} + +Status from_json(td_api::setSupergroupUsername &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + return Status::OK(); +} + +Status from_json(td_api::setTdlibParameters &to, JsonObject &from) { + TRY_STATUS(from_json(to.use_test_dc_, get_json_object_field_force(from, "use_test_dc"))); + TRY_STATUS(from_json(to.database_directory_, get_json_object_field_force(from, "database_directory"))); + TRY_STATUS(from_json(to.files_directory_, get_json_object_field_force(from, "files_directory"))); + TRY_STATUS(from_json_bytes(to.database_encryption_key_, get_json_object_field_force(from, "database_encryption_key"))); + TRY_STATUS(from_json(to.use_file_database_, get_json_object_field_force(from, "use_file_database"))); + TRY_STATUS(from_json(to.use_chat_info_database_, get_json_object_field_force(from, "use_chat_info_database"))); + TRY_STATUS(from_json(to.use_message_database_, get_json_object_field_force(from, "use_message_database"))); + TRY_STATUS(from_json(to.use_secret_chats_, get_json_object_field_force(from, "use_secret_chats"))); + TRY_STATUS(from_json(to.api_id_, get_json_object_field_force(from, "api_id"))); + TRY_STATUS(from_json(to.api_hash_, get_json_object_field_force(from, "api_hash"))); + TRY_STATUS(from_json(to.system_language_code_, get_json_object_field_force(from, "system_language_code"))); + TRY_STATUS(from_json(to.device_model_, get_json_object_field_force(from, "device_model"))); + TRY_STATUS(from_json(to.system_version_, get_json_object_field_force(from, "system_version"))); + TRY_STATUS(from_json(to.application_version_, get_json_object_field_force(from, "application_version"))); + TRY_STATUS(from_json(to.enable_storage_optimizer_, get_json_object_field_force(from, "enable_storage_optimizer"))); + TRY_STATUS(from_json(to.ignore_file_names_, get_json_object_field_force(from, "ignore_file_names"))); + return Status::OK(); +} + +Status from_json(td_api::setUserPrivacySettingRules &to, JsonObject &from) { + TRY_STATUS(from_json(to.setting_, get_json_object_field_force(from, "setting"))); + TRY_STATUS(from_json(to.rules_, get_json_object_field_force(from, "rules"))); + return Status::OK(); +} + +Status from_json(td_api::setUserSupportInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.message_, get_json_object_field_force(from, "message"))); + return Status::OK(); +} + +Status from_json(td_api::setUsername &to, JsonObject &from) { + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + return Status::OK(); +} + +Status from_json(td_api::setVideoChatDefaultParticipant &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.default_participant_id_, get_json_object_field_force(from, "default_participant_id"))); + return Status::OK(); +} + +Status from_json(td_api::sharePhoneNumber &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + return Status::OK(); +} + +Status from_json(td_api::startGroupCallRecording &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.title_, get_json_object_field_force(from, "title"))); + TRY_STATUS(from_json(to.record_video_, get_json_object_field_force(from, "record_video"))); + TRY_STATUS(from_json(to.use_portrait_orientation_, get_json_object_field_force(from, "use_portrait_orientation"))); + return Status::OK(); +} + +Status from_json(td_api::startGroupCallScreenSharing &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.audio_source_id_, get_json_object_field_force(from, "audio_source_id"))); + TRY_STATUS(from_json(to.payload_, get_json_object_field_force(from, "payload"))); + return Status::OK(); +} + +Status from_json(td_api::startScheduledGroupCall &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + return Status::OK(); +} + +Status from_json(td_api::stopPoll &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + TRY_STATUS(from_json(to.reply_markup_, get_json_object_field_force(from, "reply_markup"))); + return Status::OK(); +} + +Status from_json(td_api::synchronizeLanguagePack &to, JsonObject &from) { + TRY_STATUS(from_json(to.language_pack_id_, get_json_object_field_force(from, "language_pack_id"))); + return Status::OK(); +} + +Status from_json(td_api::terminateAllOtherSessions &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::terminateSession &to, JsonObject &from) { + TRY_STATUS(from_json(to.session_id_, get_json_object_field_force(from, "session_id"))); + return Status::OK(); +} + +Status from_json(td_api::testCallBytes &to, JsonObject &from) { + TRY_STATUS(from_json_bytes(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::testCallEmpty &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::testCallString &to, JsonObject &from) { + TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::testCallVectorInt &to, JsonObject &from) { + TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::testCallVectorIntObject &to, JsonObject &from) { + TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::testCallVectorString &to, JsonObject &from) { + TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::testCallVectorStringObject &to, JsonObject &from) { + TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::testGetDifference &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::testNetwork &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::testProxy &to, JsonObject &from) { + TRY_STATUS(from_json(to.server_, get_json_object_field_force(from, "server"))); + TRY_STATUS(from_json(to.port_, get_json_object_field_force(from, "port"))); + TRY_STATUS(from_json(to.type_, get_json_object_field_force(from, "type"))); + TRY_STATUS(from_json(to.dc_id_, get_json_object_field_force(from, "dc_id"))); + TRY_STATUS(from_json(to.timeout_, get_json_object_field_force(from, "timeout"))); + return Status::OK(); +} + +Status from_json(td_api::testReturnError &to, JsonObject &from) { + TRY_STATUS(from_json(to.error_, get_json_object_field_force(from, "error"))); + return Status::OK(); +} + +Status from_json(td_api::testSquareInt &to, JsonObject &from) { + TRY_STATUS(from_json(to.x_, get_json_object_field_force(from, "x"))); + return Status::OK(); +} + +Status from_json(td_api::testUseUpdate &to, JsonObject &from) { + return Status::OK(); +} + +Status from_json(td_api::toggleAllDownloadsArePaused &to, JsonObject &from) { + TRY_STATUS(from_json(to.are_paused_, get_json_object_field_force(from, "are_paused"))); + return Status::OK(); +} + +Status from_json(td_api::toggleBotIsAddedToAttachmentMenu &to, JsonObject &from) { + TRY_STATUS(from_json(to.bot_user_id_, get_json_object_field_force(from, "bot_user_id"))); + TRY_STATUS(from_json(to.is_added_, get_json_object_field_force(from, "is_added"))); + return Status::OK(); +} + +Status from_json(td_api::toggleChatDefaultDisableNotification &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.default_disable_notification_, get_json_object_field_force(from, "default_disable_notification"))); + return Status::OK(); +} + +Status from_json(td_api::toggleChatHasProtectedContent &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.has_protected_content_, get_json_object_field_force(from, "has_protected_content"))); + return Status::OK(); +} + +Status from_json(td_api::toggleChatIsMarkedAsUnread &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.is_marked_as_unread_, get_json_object_field_force(from, "is_marked_as_unread"))); + return Status::OK(); +} + +Status from_json(td_api::toggleChatIsPinned &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_list_, get_json_object_field_force(from, "chat_list"))); + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.is_pinned_, get_json_object_field_force(from, "is_pinned"))); + return Status::OK(); +} + +Status from_json(td_api::toggleDownloadIsPaused &to, JsonObject &from) { + TRY_STATUS(from_json(to.file_id_, get_json_object_field_force(from, "file_id"))); + TRY_STATUS(from_json(to.is_paused_, get_json_object_field_force(from, "is_paused"))); + return Status::OK(); +} + +Status from_json(td_api::toggleForumTopicIsClosed &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.is_closed_, get_json_object_field_force(from, "is_closed"))); + return Status::OK(); +} + +Status from_json(td_api::toggleGroupCallEnabledStartNotification &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.enabled_start_notification_, get_json_object_field_force(from, "enabled_start_notification"))); + return Status::OK(); +} + +Status from_json(td_api::toggleGroupCallIsMyVideoEnabled &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.is_my_video_enabled_, get_json_object_field_force(from, "is_my_video_enabled"))); + return Status::OK(); +} + +Status from_json(td_api::toggleGroupCallIsMyVideoPaused &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.is_my_video_paused_, get_json_object_field_force(from, "is_my_video_paused"))); + return Status::OK(); +} + +Status from_json(td_api::toggleGroupCallMuteNewParticipants &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.mute_new_participants_, get_json_object_field_force(from, "mute_new_participants"))); + return Status::OK(); +} + +Status from_json(td_api::toggleGroupCallParticipantIsHandRaised &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id"))); + TRY_STATUS(from_json(to.is_hand_raised_, get_json_object_field_force(from, "is_hand_raised"))); + return Status::OK(); +} + +Status from_json(td_api::toggleGroupCallParticipantIsMuted &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.participant_id_, get_json_object_field_force(from, "participant_id"))); + TRY_STATUS(from_json(to.is_muted_, get_json_object_field_force(from, "is_muted"))); + return Status::OK(); +} + +Status from_json(td_api::toggleGroupCallScreenSharingIsPaused &to, JsonObject &from) { + TRY_STATUS(from_json(to.group_call_id_, get_json_object_field_force(from, "group_call_id"))); + TRY_STATUS(from_json(to.is_paused_, get_json_object_field_force(from, "is_paused"))); + return Status::OK(); +} + +Status from_json(td_api::toggleMessageSenderIsBlocked &to, JsonObject &from) { + TRY_STATUS(from_json(to.sender_id_, get_json_object_field_force(from, "sender_id"))); + TRY_STATUS(from_json(to.is_blocked_, get_json_object_field_force(from, "is_blocked"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSessionCanAcceptCalls &to, JsonObject &from) { + TRY_STATUS(from_json(to.session_id_, get_json_object_field_force(from, "session_id"))); + TRY_STATUS(from_json(to.can_accept_calls_, get_json_object_field_force(from, "can_accept_calls"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSessionCanAcceptSecretChats &to, JsonObject &from) { + TRY_STATUS(from_json(to.session_id_, get_json_object_field_force(from, "session_id"))); + TRY_STATUS(from_json(to.can_accept_secret_chats_, get_json_object_field_force(from, "can_accept_secret_chats"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSupergroupIsAllHistoryAvailable &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.is_all_history_available_, get_json_object_field_force(from, "is_all_history_available"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSupergroupIsBroadcastGroup &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSupergroupIsForum &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.is_forum_, get_json_object_field_force(from, "is_forum"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSupergroupJoinByRequest &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.join_by_request_, get_json_object_field_force(from, "join_by_request"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSupergroupJoinToSendMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.join_to_send_messages_, get_json_object_field_force(from, "join_to_send_messages"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSupergroupSignMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.sign_messages_, get_json_object_field_force(from, "sign_messages"))); + return Status::OK(); +} + +Status from_json(td_api::toggleSupergroupUsernameIsActive &to, JsonObject &from) { + TRY_STATUS(from_json(to.supergroup_id_, get_json_object_field_force(from, "supergroup_id"))); + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + TRY_STATUS(from_json(to.is_active_, get_json_object_field_force(from, "is_active"))); + return Status::OK(); +} + +Status from_json(td_api::toggleUsernameIsActive &to, JsonObject &from) { + TRY_STATUS(from_json(to.username_, get_json_object_field_force(from, "username"))); + TRY_STATUS(from_json(to.is_active_, get_json_object_field_force(from, "is_active"))); + return Status::OK(); +} + +Status from_json(td_api::transferChatOwnership &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.password_, get_json_object_field_force(from, "password"))); + return Status::OK(); +} + +Status from_json(td_api::translateText &to, JsonObject &from) { + TRY_STATUS(from_json(to.text_, get_json_object_field_force(from, "text"))); + TRY_STATUS(from_json(to.from_language_code_, get_json_object_field_force(from, "from_language_code"))); + TRY_STATUS(from_json(to.to_language_code_, get_json_object_field_force(from, "to_language_code"))); + return Status::OK(); +} + +Status from_json(td_api::unpinAllChatMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::unpinAllMessageThreadMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + return Status::OK(); +} + +Status from_json(td_api::unpinChatMessage &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_id_, get_json_object_field_force(from, "message_id"))); + return Status::OK(); +} + +Status from_json(td_api::upgradeBasicGroupChatToSupergroupChat &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + return Status::OK(); +} + +Status from_json(td_api::uploadStickerFile &to, JsonObject &from) { + TRY_STATUS(from_json(to.user_id_, get_json_object_field_force(from, "user_id"))); + TRY_STATUS(from_json(to.sticker_, get_json_object_field_force(from, "sticker"))); + return Status::OK(); +} + +Status from_json(td_api::validateOrderInfo &to, JsonObject &from) { + TRY_STATUS(from_json(to.input_invoice_, get_json_object_field_force(from, "input_invoice"))); + TRY_STATUS(from_json(to.order_info_, get_json_object_field_force(from, "order_info"))); + TRY_STATUS(from_json(to.allow_save_, get_json_object_field_force(from, "allow_save"))); + return Status::OK(); +} + +Status from_json(td_api::viewMessages &to, JsonObject &from) { + TRY_STATUS(from_json(to.chat_id_, get_json_object_field_force(from, "chat_id"))); + TRY_STATUS(from_json(to.message_thread_id_, get_json_object_field_force(from, "message_thread_id"))); + TRY_STATUS(from_json(to.message_ids_, get_json_object_field_force(from, "message_ids"))); + TRY_STATUS(from_json(to.force_read_, get_json_object_field_force(from, "force_read"))); + return Status::OK(); +} + +Status from_json(td_api::viewPremiumFeature &to, JsonObject &from) { + TRY_STATUS(from_json(to.feature_, get_json_object_field_force(from, "feature"))); + return Status::OK(); +} + +Status from_json(td_api::viewTrendingStickerSets &to, JsonObject &from) { + TRY_STATUS(from_json(to.sticker_set_ids_, get_json_object_field_force(from, "sticker_set_ids"))); + return Status::OK(); +} + +Status from_json(td_api::writeGeneratedFilePart &to, JsonObject &from) { + TRY_STATUS(from_json(to.generation_id_, get_json_object_field_force(from, "generation_id"))); + TRY_STATUS(from_json(to.offset_, get_json_object_field_force(from, "offset"))); + TRY_STATUS(from_json_bytes(to.data_, get_json_object_field_force(from, "data"))); + return Status::OK(); +} + +void to_json(JsonValueScope &jv, const td_api::accountTtl &object) { + auto jo = jv.enter_object(); + jo("@type", "accountTtl"); + jo("days", object.days_); +} + +void to_json(JsonValueScope &jv, const td_api::addedReaction &object) { + auto jo = jv.enter_object(); + jo("@type", "addedReaction"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + if (object.sender_id_) { + jo("sender_id", ToJson(*object.sender_id_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::addedReactions &object) { + auto jo = jv.enter_object(); + jo("@type", "addedReactions"); + jo("total_count", object.total_count_); + jo("reactions", ToJson(object.reactions_)); + jo("next_offset", object.next_offset_); +} + +void to_json(JsonValueScope &jv, const td_api::address &object) { + auto jo = jv.enter_object(); + jo("@type", "address"); + jo("country_code", object.country_code_); + jo("state", object.state_); + jo("city", object.city_); + jo("street_line1", object.street_line1_); + jo("street_line2", object.street_line2_); + jo("postal_code", object.postal_code_); +} + +void to_json(JsonValueScope &jv, const td_api::animatedChatPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "animatedChatPhoto"); + jo("length", object.length_); + if (object.file_) { + jo("file", ToJson(*object.file_)); + } + jo("main_frame_timestamp", object.main_frame_timestamp_); +} + +void to_json(JsonValueScope &jv, const td_api::animatedEmoji &object) { + auto jo = jv.enter_object(); + jo("@type", "animatedEmoji"); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } + jo("sticker_width", object.sticker_width_); + jo("sticker_height", object.sticker_height_); + jo("fitzpatrick_type", object.fitzpatrick_type_); + if (object.sound_) { + jo("sound", ToJson(*object.sound_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::animation &object) { + auto jo = jv.enter_object(); + jo("@type", "animation"); + jo("duration", object.duration_); + jo("width", object.width_); + jo("height", object.height_); + jo("file_name", object.file_name_); + jo("mime_type", object.mime_type_); + jo("has_stickers", JsonBool{object.has_stickers_}); + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::animations &object) { + auto jo = jv.enter_object(); + jo("@type", "animations"); + jo("animations", ToJson(object.animations_)); +} + +void to_json(JsonValueScope &jv, const td_api::attachmentMenuBot &object) { + auto jo = jv.enter_object(); + jo("@type", "attachmentMenuBot"); + jo("bot_user_id", object.bot_user_id_); + jo("supports_self_chat", JsonBool{object.supports_self_chat_}); + jo("supports_user_chats", JsonBool{object.supports_user_chats_}); + jo("supports_bot_chats", JsonBool{object.supports_bot_chats_}); + jo("supports_group_chats", JsonBool{object.supports_group_chats_}); + jo("supports_channel_chats", JsonBool{object.supports_channel_chats_}); + jo("supports_settings", JsonBool{object.supports_settings_}); + jo("name", object.name_); + if (object.name_color_) { + jo("name_color", ToJson(*object.name_color_)); + } + if (object.default_icon_) { + jo("default_icon", ToJson(*object.default_icon_)); + } + if (object.ios_static_icon_) { + jo("ios_static_icon", ToJson(*object.ios_static_icon_)); + } + if (object.ios_animated_icon_) { + jo("ios_animated_icon", ToJson(*object.ios_animated_icon_)); + } + if (object.android_icon_) { + jo("android_icon", ToJson(*object.android_icon_)); + } + if (object.macos_icon_) { + jo("macos_icon", ToJson(*object.macos_icon_)); + } + if (object.icon_color_) { + jo("icon_color", ToJson(*object.icon_color_)); + } + if (object.web_app_placeholder_) { + jo("web_app_placeholder", ToJson(*object.web_app_placeholder_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::attachmentMenuBotColor &object) { + auto jo = jv.enter_object(); + jo("@type", "attachmentMenuBotColor"); + jo("light_color", object.light_color_); + jo("dark_color", object.dark_color_); +} + +void to_json(JsonValueScope &jv, const td_api::audio &object) { + auto jo = jv.enter_object(); + jo("@type", "audio"); + jo("duration", object.duration_); + jo("title", object.title_); + jo("performer", object.performer_); + jo("file_name", object.file_name_); + jo("mime_type", object.mime_type_); + if (object.album_cover_minithumbnail_) { + jo("album_cover_minithumbnail", ToJson(*object.album_cover_minithumbnail_)); + } + if (object.album_cover_thumbnail_) { + jo("album_cover_thumbnail", ToJson(*object.album_cover_thumbnail_)); + } + jo("external_album_covers", ToJson(object.external_album_covers_)); + if (object.audio_) { + jo("audio", ToJson(*object.audio_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "authenticationCodeInfo"); + jo("phone_number", object.phone_number_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + if (object.next_type_) { + jo("next_type", ToJson(*object.next_type_)); + } + jo("timeout", object.timeout_); +} + +void to_json(JsonValueScope &jv, const td_api::AuthenticationCodeType &object) { + td_api::downcast_call(const_cast<td_api::AuthenticationCodeType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeTelegramMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "authenticationCodeTypeTelegramMessage"); + jo("length", object.length_); +} + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeSms &object) { + auto jo = jv.enter_object(); + jo("@type", "authenticationCodeTypeSms"); + jo("length", object.length_); +} + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeCall &object) { + auto jo = jv.enter_object(); + jo("@type", "authenticationCodeTypeCall"); + jo("length", object.length_); +} + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeFlashCall &object) { + auto jo = jv.enter_object(); + jo("@type", "authenticationCodeTypeFlashCall"); + jo("pattern", object.pattern_); +} + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeMissedCall &object) { + auto jo = jv.enter_object(); + jo("@type", "authenticationCodeTypeMissedCall"); + jo("phone_number_prefix", object.phone_number_prefix_); + jo("length", object.length_); +} + +void to_json(JsonValueScope &jv, const td_api::AuthorizationState &object) { + td_api::downcast_call(const_cast<td_api::AuthorizationState &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitTdlibParameters &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitTdlibParameters"); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitPhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitEmailAddress"); + jo("allow_apple_id", JsonBool{object.allow_apple_id_}); + jo("allow_google_id", JsonBool{object.allow_google_id_}); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailCode &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitEmailCode"); + jo("allow_apple_id", JsonBool{object.allow_apple_id_}); + jo("allow_google_id", JsonBool{object.allow_google_id_}); + if (object.code_info_) { + jo("code_info", ToJson(*object.code_info_)); + } + jo("next_phone_number_authorization_date", object.next_phone_number_authorization_date_); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitCode &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitCode"); + if (object.code_info_) { + jo("code_info", ToJson(*object.code_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitOtherDeviceConfirmation &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitOtherDeviceConfirmation"); + jo("link", object.link_); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitRegistration &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitRegistration"); + if (object.terms_of_service_) { + jo("terms_of_service", ToJson(*object.terms_of_service_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPassword &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateWaitPassword"); + jo("password_hint", object.password_hint_); + jo("has_recovery_email_address", JsonBool{object.has_recovery_email_address_}); + jo("recovery_email_address_pattern", object.recovery_email_address_pattern_); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateReady &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateReady"); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateLoggingOut &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateLoggingOut"); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateClosing &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateClosing"); +} + +void to_json(JsonValueScope &jv, const td_api::authorizationStateClosed &object) { + auto jo = jv.enter_object(); + jo("@type", "authorizationStateClosed"); +} + +void to_json(JsonValueScope &jv, const td_api::autoDownloadSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "autoDownloadSettings"); + jo("is_auto_download_enabled", JsonBool{object.is_auto_download_enabled_}); + jo("max_photo_file_size", object.max_photo_file_size_); + jo("max_video_file_size", object.max_video_file_size_); + jo("max_other_file_size", object.max_other_file_size_); + jo("video_upload_bitrate", object.video_upload_bitrate_); + jo("preload_large_videos", JsonBool{object.preload_large_videos_}); + jo("preload_next_audio", JsonBool{object.preload_next_audio_}); + jo("use_less_data_for_calls", JsonBool{object.use_less_data_for_calls_}); +} + +void to_json(JsonValueScope &jv, const td_api::autoDownloadSettingsPresets &object) { + auto jo = jv.enter_object(); + jo("@type", "autoDownloadSettingsPresets"); + if (object.low_) { + jo("low", ToJson(*object.low_)); + } + if (object.medium_) { + jo("medium", ToJson(*object.medium_)); + } + if (object.high_) { + jo("high", ToJson(*object.high_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::availableReaction &object) { + auto jo = jv.enter_object(); + jo("@type", "availableReaction"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("needs_premium", JsonBool{object.needs_premium_}); +} + +void to_json(JsonValueScope &jv, const td_api::availableReactions &object) { + auto jo = jv.enter_object(); + jo("@type", "availableReactions"); + jo("top_reactions", ToJson(object.top_reactions_)); + jo("recent_reactions", ToJson(object.recent_reactions_)); + jo("popular_reactions", ToJson(object.popular_reactions_)); + jo("allow_custom_emoji", JsonBool{object.allow_custom_emoji_}); +} + +void to_json(JsonValueScope &jv, const td_api::background &object) { + auto jo = jv.enter_object(); + jo("@type", "background"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("is_default", JsonBool{object.is_default_}); + jo("is_dark", JsonBool{object.is_dark_}); + jo("name", object.name_); + if (object.document_) { + jo("document", ToJson(*object.document_)); + } + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::BackgroundFill &object) { + td_api::downcast_call(const_cast<td_api::BackgroundFill &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::backgroundFillSolid &object) { + auto jo = jv.enter_object(); + jo("@type", "backgroundFillSolid"); + jo("color", object.color_); +} + +void to_json(JsonValueScope &jv, const td_api::backgroundFillGradient &object) { + auto jo = jv.enter_object(); + jo("@type", "backgroundFillGradient"); + jo("top_color", object.top_color_); + jo("bottom_color", object.bottom_color_); + jo("rotation_angle", object.rotation_angle_); +} + +void to_json(JsonValueScope &jv, const td_api::backgroundFillFreeformGradient &object) { + auto jo = jv.enter_object(); + jo("@type", "backgroundFillFreeformGradient"); + jo("colors", ToJson(object.colors_)); +} + +void to_json(JsonValueScope &jv, const td_api::BackgroundType &object) { + td_api::downcast_call(const_cast<td_api::BackgroundType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::backgroundTypeWallpaper &object) { + auto jo = jv.enter_object(); + jo("@type", "backgroundTypeWallpaper"); + jo("is_blurred", JsonBool{object.is_blurred_}); + jo("is_moving", JsonBool{object.is_moving_}); +} + +void to_json(JsonValueScope &jv, const td_api::backgroundTypePattern &object) { + auto jo = jv.enter_object(); + jo("@type", "backgroundTypePattern"); + if (object.fill_) { + jo("fill", ToJson(*object.fill_)); + } + jo("intensity", object.intensity_); + jo("is_inverted", JsonBool{object.is_inverted_}); + jo("is_moving", JsonBool{object.is_moving_}); +} + +void to_json(JsonValueScope &jv, const td_api::backgroundTypeFill &object) { + auto jo = jv.enter_object(); + jo("@type", "backgroundTypeFill"); + if (object.fill_) { + jo("fill", ToJson(*object.fill_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::backgrounds &object) { + auto jo = jv.enter_object(); + jo("@type", "backgrounds"); + jo("backgrounds", ToJson(object.backgrounds_)); +} + +void to_json(JsonValueScope &jv, const td_api::bankCardActionOpenUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "bankCardActionOpenUrl"); + jo("text", object.text_); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::bankCardInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "bankCardInfo"); + jo("title", object.title_); + jo("actions", ToJson(object.actions_)); +} + +void to_json(JsonValueScope &jv, const td_api::basicGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "basicGroup"); + jo("id", object.id_); + jo("member_count", object.member_count_); + if (object.status_) { + jo("status", ToJson(*object.status_)); + } + jo("is_active", JsonBool{object.is_active_}); + jo("upgraded_to_supergroup_id", object.upgraded_to_supergroup_id_); +} + +void to_json(JsonValueScope &jv, const td_api::basicGroupFullInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "basicGroupFullInfo"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("description", object.description_); + jo("creator_user_id", object.creator_user_id_); + jo("members", ToJson(object.members_)); + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } + jo("bot_commands", ToJson(object.bot_commands_)); +} + +void to_json(JsonValueScope &jv, const td_api::botCommand &object) { + auto jo = jv.enter_object(); + jo("@type", "botCommand"); + jo("command", object.command_); + jo("description", object.description_); +} + +void to_json(JsonValueScope &jv, const td_api::botCommands &object) { + auto jo = jv.enter_object(); + jo("@type", "botCommands"); + jo("bot_user_id", object.bot_user_id_); + jo("commands", ToJson(object.commands_)); +} + +void to_json(JsonValueScope &jv, const td_api::botInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "botInfo"); + jo("share_text", object.share_text_); + jo("description", object.description_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + if (object.menu_button_) { + jo("menu_button", ToJson(*object.menu_button_)); + } + jo("commands", ToJson(object.commands_)); + if (object.default_group_administrator_rights_) { + jo("default_group_administrator_rights", ToJson(*object.default_group_administrator_rights_)); + } + if (object.default_channel_administrator_rights_) { + jo("default_channel_administrator_rights", ToJson(*object.default_channel_administrator_rights_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::botMenuButton &object) { + auto jo = jv.enter_object(); + jo("@type", "botMenuButton"); + jo("text", object.text_); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::call &object) { + auto jo = jv.enter_object(); + jo("@type", "call"); + jo("id", object.id_); + jo("user_id", object.user_id_); + jo("is_outgoing", JsonBool{object.is_outgoing_}); + jo("is_video", JsonBool{object.is_video_}); + if (object.state_) { + jo("state", ToJson(*object.state_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::CallDiscardReason &object) { + td_api::downcast_call(const_cast<td_api::CallDiscardReason &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonEmpty &object) { + auto jo = jv.enter_object(); + jo("@type", "callDiscardReasonEmpty"); +} + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonMissed &object) { + auto jo = jv.enter_object(); + jo("@type", "callDiscardReasonMissed"); +} + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDeclined &object) { + auto jo = jv.enter_object(); + jo("@type", "callDiscardReasonDeclined"); +} + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDisconnected &object) { + auto jo = jv.enter_object(); + jo("@type", "callDiscardReasonDisconnected"); +} + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonHungUp &object) { + auto jo = jv.enter_object(); + jo("@type", "callDiscardReasonHungUp"); +} + +void to_json(JsonValueScope &jv, const td_api::callId &object) { + auto jo = jv.enter_object(); + jo("@type", "callId"); + jo("id", object.id_); +} + +void to_json(JsonValueScope &jv, const td_api::callProtocol &object) { + auto jo = jv.enter_object(); + jo("@type", "callProtocol"); + jo("udp_p2p", JsonBool{object.udp_p2p_}); + jo("udp_reflector", JsonBool{object.udp_reflector_}); + jo("min_layer", object.min_layer_); + jo("max_layer", object.max_layer_); + jo("library_versions", ToJson(object.library_versions_)); +} + +void to_json(JsonValueScope &jv, const td_api::callServer &object) { + auto jo = jv.enter_object(); + jo("@type", "callServer"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("ip_address", object.ip_address_); + jo("ipv6_address", object.ipv6_address_); + jo("port", object.port_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::CallServerType &object) { + td_api::downcast_call(const_cast<td_api::CallServerType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::callServerTypeTelegramReflector &object) { + auto jo = jv.enter_object(); + jo("@type", "callServerTypeTelegramReflector"); + jo("peer_tag", base64_encode(object.peer_tag_)); + jo("is_tcp", JsonBool{object.is_tcp_}); +} + +void to_json(JsonValueScope &jv, const td_api::callServerTypeWebrtc &object) { + auto jo = jv.enter_object(); + jo("@type", "callServerTypeWebrtc"); + jo("username", object.username_); + jo("password", object.password_); + jo("supports_turn", JsonBool{object.supports_turn_}); + jo("supports_stun", JsonBool{object.supports_stun_}); +} + +void to_json(JsonValueScope &jv, const td_api::CallState &object) { + td_api::downcast_call(const_cast<td_api::CallState &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::callStatePending &object) { + auto jo = jv.enter_object(); + jo("@type", "callStatePending"); + jo("is_created", JsonBool{object.is_created_}); + jo("is_received", JsonBool{object.is_received_}); +} + +void to_json(JsonValueScope &jv, const td_api::callStateExchangingKeys &object) { + auto jo = jv.enter_object(); + jo("@type", "callStateExchangingKeys"); +} + +void to_json(JsonValueScope &jv, const td_api::callStateReady &object) { + auto jo = jv.enter_object(); + jo("@type", "callStateReady"); + if (object.protocol_) { + jo("protocol", ToJson(*object.protocol_)); + } + jo("servers", ToJson(object.servers_)); + jo("config", object.config_); + jo("encryption_key", base64_encode(object.encryption_key_)); + jo("emojis", ToJson(object.emojis_)); + jo("allow_p2p", JsonBool{object.allow_p2p_}); +} + +void to_json(JsonValueScope &jv, const td_api::callStateHangingUp &object) { + auto jo = jv.enter_object(); + jo("@type", "callStateHangingUp"); +} + +void to_json(JsonValueScope &jv, const td_api::callStateDiscarded &object) { + auto jo = jv.enter_object(); + jo("@type", "callStateDiscarded"); + if (object.reason_) { + jo("reason", ToJson(*object.reason_)); + } + jo("need_rating", JsonBool{object.need_rating_}); + jo("need_debug_information", JsonBool{object.need_debug_information_}); + jo("need_log", JsonBool{object.need_log_}); +} + +void to_json(JsonValueScope &jv, const td_api::callStateError &object) { + auto jo = jv.enter_object(); + jo("@type", "callStateError"); + if (object.error_) { + jo("error", ToJson(*object.error_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::callbackQueryAnswer &object) { + auto jo = jv.enter_object(); + jo("@type", "callbackQueryAnswer"); + jo("text", object.text_); + jo("show_alert", JsonBool{object.show_alert_}); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::CallbackQueryPayload &object) { + td_api::downcast_call(const_cast<td_api::CallbackQueryPayload &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadData &object) { + auto jo = jv.enter_object(); + jo("@type", "callbackQueryPayloadData"); + jo("data", base64_encode(object.data_)); +} + +void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadDataWithPassword &object) { + auto jo = jv.enter_object(); + jo("@type", "callbackQueryPayloadDataWithPassword"); + jo("password", object.password_); + jo("data", base64_encode(object.data_)); +} + +void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadGame &object) { + auto jo = jv.enter_object(); + jo("@type", "callbackQueryPayloadGame"); + jo("game_short_name", object.game_short_name_); +} + +void to_json(JsonValueScope &jv, const td_api::CanTransferOwnershipResult &object) { + td_api::downcast_call(const_cast<td_api::CanTransferOwnershipResult &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultOk &object) { + auto jo = jv.enter_object(); + jo("@type", "canTransferOwnershipResultOk"); +} + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordNeeded &object) { + auto jo = jv.enter_object(); + jo("@type", "canTransferOwnershipResultPasswordNeeded"); +} + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordTooFresh &object) { + auto jo = jv.enter_object(); + jo("@type", "canTransferOwnershipResultPasswordTooFresh"); + jo("retry_after", object.retry_after_); +} + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultSessionTooFresh &object) { + auto jo = jv.enter_object(); + jo("@type", "canTransferOwnershipResultSessionTooFresh"); + jo("retry_after", object.retry_after_); +} + +void to_json(JsonValueScope &jv, const td_api::chat &object) { + auto jo = jv.enter_object(); + jo("@type", "chat"); + jo("id", object.id_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("title", object.title_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + if (object.permissions_) { + jo("permissions", ToJson(*object.permissions_)); + } + if (object.last_message_) { + jo("last_message", ToJson(*object.last_message_)); + } + jo("positions", ToJson(object.positions_)); + if (object.message_sender_id_) { + jo("message_sender_id", ToJson(*object.message_sender_id_)); + } + jo("has_protected_content", JsonBool{object.has_protected_content_}); + jo("is_marked_as_unread", JsonBool{object.is_marked_as_unread_}); + jo("is_blocked", JsonBool{object.is_blocked_}); + jo("has_scheduled_messages", JsonBool{object.has_scheduled_messages_}); + jo("can_be_deleted_only_for_self", JsonBool{object.can_be_deleted_only_for_self_}); + jo("can_be_deleted_for_all_users", JsonBool{object.can_be_deleted_for_all_users_}); + jo("can_be_reported", JsonBool{object.can_be_reported_}); + jo("default_disable_notification", JsonBool{object.default_disable_notification_}); + jo("unread_count", object.unread_count_); + jo("last_read_inbox_message_id", object.last_read_inbox_message_id_); + jo("last_read_outbox_message_id", object.last_read_outbox_message_id_); + jo("unread_mention_count", object.unread_mention_count_); + jo("unread_reaction_count", object.unread_reaction_count_); + if (object.notification_settings_) { + jo("notification_settings", ToJson(*object.notification_settings_)); + } + if (object.available_reactions_) { + jo("available_reactions", ToJson(*object.available_reactions_)); + } + jo("message_ttl", object.message_ttl_); + jo("theme_name", object.theme_name_); + if (object.action_bar_) { + jo("action_bar", ToJson(*object.action_bar_)); + } + if (object.video_chat_) { + jo("video_chat", ToJson(*object.video_chat_)); + } + if (object.pending_join_requests_) { + jo("pending_join_requests", ToJson(*object.pending_join_requests_)); + } + jo("reply_markup_message_id", object.reply_markup_message_id_); + if (object.draft_message_) { + jo("draft_message", ToJson(*object.draft_message_)); + } + jo("client_data", object.client_data_); +} + +void to_json(JsonValueScope &jv, const td_api::ChatAction &object) { + td_api::downcast_call(const_cast<td_api::ChatAction &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionTyping &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionTyping"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionRecordingVideo"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionUploadingVideo"); + jo("progress", object.progress_); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionRecordingVoiceNote"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionUploadingVoiceNote"); + jo("progress", object.progress_); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionUploadingPhoto"); + jo("progress", object.progress_); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionUploadingDocument"); + jo("progress", object.progress_); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionChoosingSticker &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionChoosingSticker"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionChoosingLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionChoosingLocation"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionChoosingContact &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionChoosingContact"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionStartPlayingGame &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionStartPlayingGame"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideoNote &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionRecordingVideoNote"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideoNote &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionUploadingVideoNote"); + jo("progress", object.progress_); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionWatchingAnimations &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionWatchingAnimations"); + jo("emoji", object.emoji_); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionCancel &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionCancel"); +} + +void to_json(JsonValueScope &jv, const td_api::ChatActionBar &object) { + td_api::downcast_call(const_cast<td_api::ChatActionBar &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionBarReportSpam &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionBarReportSpam"); + jo("can_unarchive", JsonBool{object.can_unarchive_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionBarReportUnrelatedLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionBarReportUnrelatedLocation"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionBarInviteMembers &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionBarInviteMembers"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionBarReportAddBlock &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionBarReportAddBlock"); + jo("can_unarchive", JsonBool{object.can_unarchive_}); + jo("distance", object.distance_); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionBarAddContact &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionBarAddContact"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionBarSharePhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionBarSharePhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::chatActionBarJoinRequest &object) { + auto jo = jv.enter_object(); + jo("@type", "chatActionBarJoinRequest"); + jo("title", object.title_); + jo("is_channel", JsonBool{object.is_channel_}); + jo("request_date", object.request_date_); +} + +void to_json(JsonValueScope &jv, const td_api::chatAdministrator &object) { + auto jo = jv.enter_object(); + jo("@type", "chatAdministrator"); + jo("user_id", object.user_id_); + jo("custom_title", object.custom_title_); + jo("is_owner", JsonBool{object.is_owner_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatAdministratorRights &object) { + auto jo = jv.enter_object(); + jo("@type", "chatAdministratorRights"); + jo("can_manage_chat", JsonBool{object.can_manage_chat_}); + jo("can_change_info", JsonBool{object.can_change_info_}); + jo("can_post_messages", JsonBool{object.can_post_messages_}); + jo("can_edit_messages", JsonBool{object.can_edit_messages_}); + jo("can_delete_messages", JsonBool{object.can_delete_messages_}); + jo("can_invite_users", JsonBool{object.can_invite_users_}); + jo("can_restrict_members", JsonBool{object.can_restrict_members_}); + jo("can_pin_messages", JsonBool{object.can_pin_messages_}); + jo("can_manage_topics", JsonBool{object.can_manage_topics_}); + jo("can_promote_members", JsonBool{object.can_promote_members_}); + jo("can_manage_video_chats", JsonBool{object.can_manage_video_chats_}); + jo("is_anonymous", JsonBool{object.is_anonymous_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatAdministrators &object) { + auto jo = jv.enter_object(); + jo("@type", "chatAdministrators"); + jo("administrators", ToJson(object.administrators_)); +} + +void to_json(JsonValueScope &jv, const td_api::ChatAvailableReactions &object) { + td_api::downcast_call(const_cast<td_api::ChatAvailableReactions &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsAll &object) { + auto jo = jv.enter_object(); + jo("@type", "chatAvailableReactionsAll"); +} + +void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsSome &object) { + auto jo = jv.enter_object(); + jo("@type", "chatAvailableReactionsSome"); + jo("reactions", ToJson(object.reactions_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatEvent &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEvent"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("date", object.date_); + if (object.member_id_) { + jo("member_id", ToJson(*object.member_id_)); + } + if (object.action_) { + jo("action", ToJson(*object.action_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::ChatEventAction &object) { + td_api::downcast_call(const_cast<td_api::ChatEventAction &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageEdited &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMessageEdited"); + if (object.old_message_) { + jo("old_message", ToJson(*object.old_message_)); + } + if (object.new_message_) { + jo("new_message", ToJson(*object.new_message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageDeleted &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMessageDeleted"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMessagePinned &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMessagePinned"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageUnpinned &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMessageUnpinned"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventPollStopped &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventPollStopped"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoined &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMemberJoined"); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByInviteLink &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMemberJoinedByInviteLink"); + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByRequest &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMemberJoinedByRequest"); + jo("approver_user_id", object.approver_user_id_); + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberInvited &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMemberInvited"); + jo("user_id", object.user_id_); + if (object.status_) { + jo("status", ToJson(*object.status_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberLeft &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMemberLeft"); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberPromoted &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMemberPromoted"); + jo("user_id", object.user_id_); + if (object.old_status_) { + jo("old_status", ToJson(*object.old_status_)); + } + if (object.new_status_) { + jo("new_status", ToJson(*object.new_status_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberRestricted &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMemberRestricted"); + if (object.member_id_) { + jo("member_id", ToJson(*object.member_id_)); + } + if (object.old_status_) { + jo("old_status", ToJson(*object.old_status_)); + } + if (object.new_status_) { + jo("new_status", ToJson(*object.new_status_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventAvailableReactionsChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventAvailableReactionsChanged"); + if (object.old_available_reactions_) { + jo("old_available_reactions", ToJson(*object.old_available_reactions_)); + } + if (object.new_available_reactions_) { + jo("new_available_reactions", ToJson(*object.new_available_reactions_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventDescriptionChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventDescriptionChanged"); + jo("old_description", object.old_description_); + jo("new_description", object.new_description_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventLinkedChatChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventLinkedChatChanged"); + jo("old_linked_chat_id", object.old_linked_chat_id_); + jo("new_linked_chat_id", object.new_linked_chat_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventLocationChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventLocationChanged"); + if (object.old_location_) { + jo("old_location", ToJson(*object.old_location_)); + } + if (object.new_location_) { + jo("new_location", ToJson(*object.new_location_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageTtlChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventMessageTtlChanged"); + jo("old_message_ttl", object.old_message_ttl_); + jo("new_message_ttl", object.new_message_ttl_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventPermissionsChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventPermissionsChanged"); + if (object.old_permissions_) { + jo("old_permissions", ToJson(*object.old_permissions_)); + } + if (object.new_permissions_) { + jo("new_permissions", ToJson(*object.new_permissions_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventPhotoChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventPhotoChanged"); + if (object.old_photo_) { + jo("old_photo", ToJson(*object.old_photo_)); + } + if (object.new_photo_) { + jo("new_photo", ToJson(*object.new_photo_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventSlowModeDelayChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventSlowModeDelayChanged"); + jo("old_slow_mode_delay", object.old_slow_mode_delay_); + jo("new_slow_mode_delay", object.new_slow_mode_delay_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventStickerSetChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventStickerSetChanged"); + jo("old_sticker_set_id", ToJson(JsonInt64{object.old_sticker_set_id_})); + jo("new_sticker_set_id", ToJson(JsonInt64{object.new_sticker_set_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventTitleChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventTitleChanged"); + jo("old_title", object.old_title_); + jo("new_title", object.new_title_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventUsernameChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventUsernameChanged"); + jo("old_username", object.old_username_); + jo("new_username", object.new_username_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventActiveUsernamesChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventActiveUsernamesChanged"); + jo("old_usernames", ToJson(object.old_usernames_)); + jo("new_usernames", ToJson(object.new_usernames_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventHasProtectedContentToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventHasProtectedContentToggled"); + jo("has_protected_content", JsonBool{object.has_protected_content_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventInvitesToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventInvitesToggled"); + jo("can_invite_users", JsonBool{object.can_invite_users_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventIsAllHistoryAvailableToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventIsAllHistoryAvailableToggled"); + jo("is_all_history_available", JsonBool{object.is_all_history_available_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventSignMessagesToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventSignMessagesToggled"); + jo("sign_messages", JsonBool{object.sign_messages_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkEdited &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventInviteLinkEdited"); + if (object.old_invite_link_) { + jo("old_invite_link", ToJson(*object.old_invite_link_)); + } + if (object.new_invite_link_) { + jo("new_invite_link", ToJson(*object.new_invite_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkRevoked &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventInviteLinkRevoked"); + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkDeleted &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventInviteLinkDeleted"); + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatCreated &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventVideoChatCreated"); + jo("group_call_id", object.group_call_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatEnded &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventVideoChatEnded"); + jo("group_call_id", object.group_call_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatMuteNewParticipantsToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventVideoChatMuteNewParticipantsToggled"); + jo("mute_new_participants", JsonBool{object.mute_new_participants_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantIsMutedToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventVideoChatParticipantIsMutedToggled"); + if (object.participant_id_) { + jo("participant_id", ToJson(*object.participant_id_)); + } + jo("is_muted", JsonBool{object.is_muted_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantVolumeLevelChanged &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventVideoChatParticipantVolumeLevelChanged"); + if (object.participant_id_) { + jo("participant_id", ToJson(*object.participant_id_)); + } + jo("volume_level", object.volume_level_); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventIsForumToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventIsForumToggled"); + jo("is_forum", JsonBool{object.is_forum_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicCreated &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventForumTopicCreated"); + if (object.topic_info_) { + jo("topic_info", ToJson(*object.topic_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicEdited &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventForumTopicEdited"); + if (object.old_topic_info_) { + jo("old_topic_info", ToJson(*object.old_topic_info_)); + } + if (object.new_topic_info_) { + jo("new_topic_info", ToJson(*object.new_topic_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicToggleIsClosed &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventForumTopicToggleIsClosed"); + if (object.topic_info_) { + jo("topic_info", ToJson(*object.topic_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicDeleted &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventForumTopicDeleted"); + if (object.topic_info_) { + jo("topic_info", ToJson(*object.topic_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicPinned &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEventForumTopicPinned"); + if (object.old_topic_info_) { + jo("old_topic_info", ToJson(*object.old_topic_info_)); + } + if (object.new_topic_info_) { + jo("new_topic_info", ToJson(*object.new_topic_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatEvents &object) { + auto jo = jv.enter_object(); + jo("@type", "chatEvents"); + jo("events", ToJson(object.events_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatFilter &object) { + auto jo = jv.enter_object(); + jo("@type", "chatFilter"); + jo("title", object.title_); + jo("icon_name", object.icon_name_); + jo("pinned_chat_ids", ToJson(object.pinned_chat_ids_)); + jo("included_chat_ids", ToJson(object.included_chat_ids_)); + jo("excluded_chat_ids", ToJson(object.excluded_chat_ids_)); + jo("exclude_muted", JsonBool{object.exclude_muted_}); + jo("exclude_read", JsonBool{object.exclude_read_}); + jo("exclude_archived", JsonBool{object.exclude_archived_}); + jo("include_contacts", JsonBool{object.include_contacts_}); + jo("include_non_contacts", JsonBool{object.include_non_contacts_}); + jo("include_bots", JsonBool{object.include_bots_}); + jo("include_groups", JsonBool{object.include_groups_}); + jo("include_channels", JsonBool{object.include_channels_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatFilterInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatFilterInfo"); + jo("id", object.id_); + jo("title", object.title_); + jo("icon_name", object.icon_name_); +} + +void to_json(JsonValueScope &jv, const td_api::chatInviteLink &object) { + auto jo = jv.enter_object(); + jo("@type", "chatInviteLink"); + jo("invite_link", object.invite_link_); + jo("name", object.name_); + jo("creator_user_id", object.creator_user_id_); + jo("date", object.date_); + jo("edit_date", object.edit_date_); + jo("expiration_date", object.expiration_date_); + jo("member_limit", object.member_limit_); + jo("member_count", object.member_count_); + jo("pending_join_request_count", object.pending_join_request_count_); + jo("creates_join_request", JsonBool{object.creates_join_request_}); + jo("is_primary", JsonBool{object.is_primary_}); + jo("is_revoked", JsonBool{object.is_revoked_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCount &object) { + auto jo = jv.enter_object(); + jo("@type", "chatInviteLinkCount"); + jo("user_id", object.user_id_); + jo("invite_link_count", object.invite_link_count_); + jo("revoked_invite_link_count", object.revoked_invite_link_count_); +} + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCounts &object) { + auto jo = jv.enter_object(); + jo("@type", "chatInviteLinkCounts"); + jo("invite_link_counts", ToJson(object.invite_link_counts_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatInviteLinkInfo"); + jo("chat_id", object.chat_id_); + jo("accessible_for", object.accessible_for_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("title", object.title_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("description", object.description_); + jo("member_count", object.member_count_); + jo("member_user_ids", ToJson(object.member_user_ids_)); + jo("creates_join_request", JsonBool{object.creates_join_request_}); + jo("is_public", JsonBool{object.is_public_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMember &object) { + auto jo = jv.enter_object(); + jo("@type", "chatInviteLinkMember"); + jo("user_id", object.user_id_); + jo("joined_chat_date", object.joined_chat_date_); + jo("approver_user_id", object.approver_user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMembers &object) { + auto jo = jv.enter_object(); + jo("@type", "chatInviteLinkMembers"); + jo("total_count", object.total_count_); + jo("members", ToJson(object.members_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinks &object) { + auto jo = jv.enter_object(); + jo("@type", "chatInviteLinks"); + jo("total_count", object.total_count_); + jo("invite_links", ToJson(object.invite_links_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatJoinRequest &object) { + auto jo = jv.enter_object(); + jo("@type", "chatJoinRequest"); + jo("user_id", object.user_id_); + jo("date", object.date_); + jo("bio", object.bio_); +} + +void to_json(JsonValueScope &jv, const td_api::chatJoinRequests &object) { + auto jo = jv.enter_object(); + jo("@type", "chatJoinRequests"); + jo("total_count", object.total_count_); + jo("requests", ToJson(object.requests_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatJoinRequestsInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatJoinRequestsInfo"); + jo("total_count", object.total_count_); + jo("user_ids", ToJson(object.user_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::ChatList &object) { + td_api::downcast_call(const_cast<td_api::ChatList &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatListMain &object) { + auto jo = jv.enter_object(); + jo("@type", "chatListMain"); +} + +void to_json(JsonValueScope &jv, const td_api::chatListArchive &object) { + auto jo = jv.enter_object(); + jo("@type", "chatListArchive"); +} + +void to_json(JsonValueScope &jv, const td_api::chatListFilter &object) { + auto jo = jv.enter_object(); + jo("@type", "chatListFilter"); + jo("chat_filter_id", object.chat_filter_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chatLists &object) { + auto jo = jv.enter_object(); + jo("@type", "chatLists"); + jo("chat_lists", ToJson(object.chat_lists_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "chatLocation"); + if (object.location_) { + jo("location", ToJson(*object.location_)); + } + jo("address", object.address_); +} + +void to_json(JsonValueScope &jv, const td_api::chatMember &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMember"); + if (object.member_id_) { + jo("member_id", ToJson(*object.member_id_)); + } + jo("inviter_user_id", object.inviter_user_id_); + jo("joined_chat_date", object.joined_chat_date_); + if (object.status_) { + jo("status", ToJson(*object.status_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::ChatMemberStatus &object) { + td_api::downcast_call(const_cast<td_api::ChatMemberStatus &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusCreator &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMemberStatusCreator"); + jo("custom_title", object.custom_title_); + jo("is_anonymous", JsonBool{object.is_anonymous_}); + jo("is_member", JsonBool{object.is_member_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusAdministrator &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMemberStatusAdministrator"); + jo("custom_title", object.custom_title_); + jo("can_be_edited", JsonBool{object.can_be_edited_}); + if (object.rights_) { + jo("rights", ToJson(*object.rights_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusMember &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMemberStatusMember"); +} + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusRestricted &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMemberStatusRestricted"); + jo("is_member", JsonBool{object.is_member_}); + jo("restricted_until_date", object.restricted_until_date_); + if (object.permissions_) { + jo("permissions", ToJson(*object.permissions_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusLeft &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMemberStatusLeft"); +} + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusBanned &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMemberStatusBanned"); + jo("banned_until_date", object.banned_until_date_); +} + +void to_json(JsonValueScope &jv, const td_api::chatMembers &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMembers"); + jo("total_count", object.total_count_); + jo("members", ToJson(object.members_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatMessageSender &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMessageSender"); + if (object.sender_) { + jo("sender", ToJson(*object.sender_)); + } + jo("needs_premium", JsonBool{object.needs_premium_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatMessageSenders &object) { + auto jo = jv.enter_object(); + jo("@type", "chatMessageSenders"); + jo("senders", ToJson(object.senders_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatNearby &object) { + auto jo = jv.enter_object(); + jo("@type", "chatNearby"); + jo("chat_id", object.chat_id_); + jo("distance", object.distance_); +} + +void to_json(JsonValueScope &jv, const td_api::chatNotificationSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "chatNotificationSettings"); + jo("use_default_mute_for", JsonBool{object.use_default_mute_for_}); + jo("mute_for", object.mute_for_); + jo("use_default_sound", JsonBool{object.use_default_sound_}); + jo("sound_id", ToJson(JsonInt64{object.sound_id_})); + jo("use_default_show_preview", JsonBool{object.use_default_show_preview_}); + jo("show_preview", JsonBool{object.show_preview_}); + jo("use_default_disable_pinned_message_notifications", JsonBool{object.use_default_disable_pinned_message_notifications_}); + jo("disable_pinned_message_notifications", JsonBool{object.disable_pinned_message_notifications_}); + jo("use_default_disable_mention_notifications", JsonBool{object.use_default_disable_mention_notifications_}); + jo("disable_mention_notifications", JsonBool{object.disable_mention_notifications_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatPermissions &object) { + auto jo = jv.enter_object(); + jo("@type", "chatPermissions"); + jo("can_send_messages", JsonBool{object.can_send_messages_}); + jo("can_send_media_messages", JsonBool{object.can_send_media_messages_}); + jo("can_send_polls", JsonBool{object.can_send_polls_}); + jo("can_send_other_messages", JsonBool{object.can_send_other_messages_}); + jo("can_add_web_page_previews", JsonBool{object.can_add_web_page_previews_}); + jo("can_change_info", JsonBool{object.can_change_info_}); + jo("can_invite_users", JsonBool{object.can_invite_users_}); + jo("can_pin_messages", JsonBool{object.can_pin_messages_}); + jo("can_manage_topics", JsonBool{object.can_manage_topics_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "chatPhoto"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("added_date", object.added_date_); + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + jo("sizes", ToJson(object.sizes_)); + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + if (object.small_animation_) { + jo("small_animation", ToJson(*object.small_animation_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::chatPhotoInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatPhotoInfo"); + if (object.small_) { + jo("small", ToJson(*object.small_)); + } + if (object.big_) { + jo("big", ToJson(*object.big_)); + } + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + jo("has_animation", JsonBool{object.has_animation_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatPhotos &object) { + auto jo = jv.enter_object(); + jo("@type", "chatPhotos"); + jo("total_count", object.total_count_); + jo("photos", ToJson(object.photos_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatPosition &object) { + auto jo = jv.enter_object(); + jo("@type", "chatPosition"); + if (object.list_) { + jo("list", ToJson(*object.list_)); + } + jo("order", ToJson(JsonInt64{object.order_})); + jo("is_pinned", JsonBool{object.is_pinned_}); + if (object.source_) { + jo("source", ToJson(*object.source_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::ChatSource &object) { + td_api::downcast_call(const_cast<td_api::ChatSource &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatSourceMtprotoProxy &object) { + auto jo = jv.enter_object(); + jo("@type", "chatSourceMtprotoProxy"); +} + +void to_json(JsonValueScope &jv, const td_api::chatSourcePublicServiceAnnouncement &object) { + auto jo = jv.enter_object(); + jo("@type", "chatSourcePublicServiceAnnouncement"); + jo("type", object.type_); + jo("text", object.text_); +} + +void to_json(JsonValueScope &jv, const td_api::ChatStatistics &object) { + td_api::downcast_call(const_cast<td_api::ChatStatistics &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsSupergroup &object) { + auto jo = jv.enter_object(); + jo("@type", "chatStatisticsSupergroup"); + if (object.period_) { + jo("period", ToJson(*object.period_)); + } + if (object.member_count_) { + jo("member_count", ToJson(*object.member_count_)); + } + if (object.message_count_) { + jo("message_count", ToJson(*object.message_count_)); + } + if (object.viewer_count_) { + jo("viewer_count", ToJson(*object.viewer_count_)); + } + if (object.sender_count_) { + jo("sender_count", ToJson(*object.sender_count_)); + } + if (object.member_count_graph_) { + jo("member_count_graph", ToJson(*object.member_count_graph_)); + } + if (object.join_graph_) { + jo("join_graph", ToJson(*object.join_graph_)); + } + if (object.join_by_source_graph_) { + jo("join_by_source_graph", ToJson(*object.join_by_source_graph_)); + } + if (object.language_graph_) { + jo("language_graph", ToJson(*object.language_graph_)); + } + if (object.message_content_graph_) { + jo("message_content_graph", ToJson(*object.message_content_graph_)); + } + if (object.action_graph_) { + jo("action_graph", ToJson(*object.action_graph_)); + } + if (object.day_graph_) { + jo("day_graph", ToJson(*object.day_graph_)); + } + if (object.week_graph_) { + jo("week_graph", ToJson(*object.week_graph_)); + } + jo("top_senders", ToJson(object.top_senders_)); + jo("top_administrators", ToJson(object.top_administrators_)); + jo("top_inviters", ToJson(object.top_inviters_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsChannel &object) { + auto jo = jv.enter_object(); + jo("@type", "chatStatisticsChannel"); + if (object.period_) { + jo("period", ToJson(*object.period_)); + } + if (object.member_count_) { + jo("member_count", ToJson(*object.member_count_)); + } + if (object.mean_view_count_) { + jo("mean_view_count", ToJson(*object.mean_view_count_)); + } + if (object.mean_share_count_) { + jo("mean_share_count", ToJson(*object.mean_share_count_)); + } + jo("enabled_notifications_percentage", object.enabled_notifications_percentage_); + if (object.member_count_graph_) { + jo("member_count_graph", ToJson(*object.member_count_graph_)); + } + if (object.join_graph_) { + jo("join_graph", ToJson(*object.join_graph_)); + } + if (object.mute_graph_) { + jo("mute_graph", ToJson(*object.mute_graph_)); + } + if (object.view_count_by_hour_graph_) { + jo("view_count_by_hour_graph", ToJson(*object.view_count_by_hour_graph_)); + } + if (object.view_count_by_source_graph_) { + jo("view_count_by_source_graph", ToJson(*object.view_count_by_source_graph_)); + } + if (object.join_by_source_graph_) { + jo("join_by_source_graph", ToJson(*object.join_by_source_graph_)); + } + if (object.language_graph_) { + jo("language_graph", ToJson(*object.language_graph_)); + } + if (object.message_interaction_graph_) { + jo("message_interaction_graph", ToJson(*object.message_interaction_graph_)); + } + if (object.instant_view_interaction_graph_) { + jo("instant_view_interaction_graph", ToJson(*object.instant_view_interaction_graph_)); + } + jo("recent_message_interactions", ToJson(object.recent_message_interactions_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsAdministratorActionsInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatStatisticsAdministratorActionsInfo"); + jo("user_id", object.user_id_); + jo("deleted_message_count", object.deleted_message_count_); + jo("banned_user_count", object.banned_user_count_); + jo("restricted_user_count", object.restricted_user_count_); +} + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsInviterInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatStatisticsInviterInfo"); + jo("user_id", object.user_id_); + jo("added_member_count", object.added_member_count_); +} + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageInteractionInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatStatisticsMessageInteractionInfo"); + jo("message_id", object.message_id_); + jo("view_count", object.view_count_); + jo("forward_count", object.forward_count_); +} + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageSenderInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "chatStatisticsMessageSenderInfo"); + jo("user_id", object.user_id_); + jo("sent_message_count", object.sent_message_count_); + jo("average_character_count", object.average_character_count_); +} + +void to_json(JsonValueScope &jv, const td_api::chatTheme &object) { + auto jo = jv.enter_object(); + jo("@type", "chatTheme"); + jo("name", object.name_); + if (object.light_settings_) { + jo("light_settings", ToJson(*object.light_settings_)); + } + if (object.dark_settings_) { + jo("dark_settings", ToJson(*object.dark_settings_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::ChatType &object) { + td_api::downcast_call(const_cast<td_api::ChatType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::chatTypePrivate &object) { + auto jo = jv.enter_object(); + jo("@type", "chatTypePrivate"); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chatTypeBasicGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "chatTypeBasicGroup"); + jo("basic_group_id", object.basic_group_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chatTypeSupergroup &object) { + auto jo = jv.enter_object(); + jo("@type", "chatTypeSupergroup"); + jo("supergroup_id", object.supergroup_id_); + jo("is_channel", JsonBool{object.is_channel_}); +} + +void to_json(JsonValueScope &jv, const td_api::chatTypeSecret &object) { + auto jo = jv.enter_object(); + jo("@type", "chatTypeSecret"); + jo("secret_chat_id", object.secret_chat_id_); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::chats &object) { + auto jo = jv.enter_object(); + jo("@type", "chats"); + jo("total_count", object.total_count_); + jo("chat_ids", ToJson(object.chat_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::chatsNearby &object) { + auto jo = jv.enter_object(); + jo("@type", "chatsNearby"); + jo("users_nearby", ToJson(object.users_nearby_)); + jo("supergroups_nearby", ToJson(object.supergroups_nearby_)); +} + +void to_json(JsonValueScope &jv, const td_api::CheckChatUsernameResult &object) { + td_api::downcast_call(const_cast<td_api::CheckChatUsernameResult &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultOk &object) { + auto jo = jv.enter_object(); + jo("@type", "checkChatUsernameResultOk"); +} + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameInvalid &object) { + auto jo = jv.enter_object(); + jo("@type", "checkChatUsernameResultUsernameInvalid"); +} + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameOccupied &object) { + auto jo = jv.enter_object(); + jo("@type", "checkChatUsernameResultUsernameOccupied"); +} + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicChatsTooMuch &object) { + auto jo = jv.enter_object(); + jo("@type", "checkChatUsernameResultPublicChatsTooMuch"); +} + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicGroupsUnavailable &object) { + auto jo = jv.enter_object(); + jo("@type", "checkChatUsernameResultPublicGroupsUnavailable"); +} + +void to_json(JsonValueScope &jv, const td_api::CheckStickerSetNameResult &object) { + td_api::downcast_call(const_cast<td_api::CheckStickerSetNameResult &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultOk &object) { + auto jo = jv.enter_object(); + jo("@type", "checkStickerSetNameResultOk"); +} + +void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameInvalid &object) { + auto jo = jv.enter_object(); + jo("@type", "checkStickerSetNameResultNameInvalid"); +} + +void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameOccupied &object) { + auto jo = jv.enter_object(); + jo("@type", "checkStickerSetNameResultNameOccupied"); +} + +void to_json(JsonValueScope &jv, const td_api::closedVectorPath &object) { + auto jo = jv.enter_object(); + jo("@type", "closedVectorPath"); + jo("commands", ToJson(object.commands_)); +} + +void to_json(JsonValueScope &jv, const td_api::connectedWebsite &object) { + auto jo = jv.enter_object(); + jo("@type", "connectedWebsite"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("domain_name", object.domain_name_); + jo("bot_user_id", object.bot_user_id_); + jo("browser", object.browser_); + jo("platform", object.platform_); + jo("log_in_date", object.log_in_date_); + jo("last_active_date", object.last_active_date_); + jo("ip", object.ip_); + jo("location", object.location_); +} + +void to_json(JsonValueScope &jv, const td_api::connectedWebsites &object) { + auto jo = jv.enter_object(); + jo("@type", "connectedWebsites"); + jo("websites", ToJson(object.websites_)); +} + +void to_json(JsonValueScope &jv, const td_api::ConnectionState &object) { + td_api::downcast_call(const_cast<td_api::ConnectionState &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::connectionStateWaitingForNetwork &object) { + auto jo = jv.enter_object(); + jo("@type", "connectionStateWaitingForNetwork"); +} + +void to_json(JsonValueScope &jv, const td_api::connectionStateConnectingToProxy &object) { + auto jo = jv.enter_object(); + jo("@type", "connectionStateConnectingToProxy"); +} + +void to_json(JsonValueScope &jv, const td_api::connectionStateConnecting &object) { + auto jo = jv.enter_object(); + jo("@type", "connectionStateConnecting"); +} + +void to_json(JsonValueScope &jv, const td_api::connectionStateUpdating &object) { + auto jo = jv.enter_object(); + jo("@type", "connectionStateUpdating"); +} + +void to_json(JsonValueScope &jv, const td_api::connectionStateReady &object) { + auto jo = jv.enter_object(); + jo("@type", "connectionStateReady"); +} + +void to_json(JsonValueScope &jv, const td_api::contact &object) { + auto jo = jv.enter_object(); + jo("@type", "contact"); + jo("phone_number", object.phone_number_); + jo("first_name", object.first_name_); + jo("last_name", object.last_name_); + jo("vcard", object.vcard_); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::count &object) { + auto jo = jv.enter_object(); + jo("@type", "count"); + jo("count", object.count_); +} + +void to_json(JsonValueScope &jv, const td_api::countries &object) { + auto jo = jv.enter_object(); + jo("@type", "countries"); + jo("countries", ToJson(object.countries_)); +} + +void to_json(JsonValueScope &jv, const td_api::countryInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "countryInfo"); + jo("country_code", object.country_code_); + jo("name", object.name_); + jo("english_name", object.english_name_); + jo("is_hidden", JsonBool{object.is_hidden_}); + jo("calling_codes", ToJson(object.calling_codes_)); +} + +void to_json(JsonValueScope &jv, const td_api::customRequestResult &object) { + auto jo = jv.enter_object(); + jo("@type", "customRequestResult"); + jo("result", object.result_); +} + +void to_json(JsonValueScope &jv, const td_api::databaseStatistics &object) { + auto jo = jv.enter_object(); + jo("@type", "databaseStatistics"); + jo("statistics", object.statistics_); +} + +void to_json(JsonValueScope &jv, const td_api::date &object) { + auto jo = jv.enter_object(); + jo("@type", "date"); + jo("day", object.day_); + jo("month", object.month_); + jo("year", object.year_); +} + +void to_json(JsonValueScope &jv, const td_api::dateRange &object) { + auto jo = jv.enter_object(); + jo("@type", "dateRange"); + jo("start_date", object.start_date_); + jo("end_date", object.end_date_); +} + +void to_json(JsonValueScope &jv, const td_api::datedFile &object) { + auto jo = jv.enter_object(); + jo("@type", "datedFile"); + if (object.file_) { + jo("file", ToJson(*object.file_)); + } + jo("date", object.date_); +} + +void to_json(JsonValueScope &jv, const td_api::deepLinkInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "deepLinkInfo"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("need_update_application", JsonBool{object.need_update_application_}); +} + +void to_json(JsonValueScope &jv, const td_api::DiceStickers &object) { + td_api::downcast_call(const_cast<td_api::DiceStickers &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::diceStickersRegular &object) { + auto jo = jv.enter_object(); + jo("@type", "diceStickersRegular"); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::diceStickersSlotMachine &object) { + auto jo = jv.enter_object(); + jo("@type", "diceStickersSlotMachine"); + if (object.background_) { + jo("background", ToJson(*object.background_)); + } + if (object.lever_) { + jo("lever", ToJson(*object.lever_)); + } + if (object.left_reel_) { + jo("left_reel", ToJson(*object.left_reel_)); + } + if (object.center_reel_) { + jo("center_reel", ToJson(*object.center_reel_)); + } + if (object.right_reel_) { + jo("right_reel", ToJson(*object.right_reel_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::document &object) { + auto jo = jv.enter_object(); + jo("@type", "document"); + jo("file_name", object.file_name_); + jo("mime_type", object.mime_type_); + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + if (object.document_) { + jo("document", ToJson(*object.document_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::downloadedFileCounts &object) { + auto jo = jv.enter_object(); + jo("@type", "downloadedFileCounts"); + jo("active_count", object.active_count_); + jo("paused_count", object.paused_count_); + jo("completed_count", object.completed_count_); +} + +void to_json(JsonValueScope &jv, const td_api::draftMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "draftMessage"); + jo("reply_to_message_id", object.reply_to_message_id_); + jo("date", object.date_); + if (object.input_message_text_) { + jo("input_message_text", ToJson(*object.input_message_text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::emailAddressAuthenticationCodeInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "emailAddressAuthenticationCodeInfo"); + jo("email_address_pattern", object.email_address_pattern_); + jo("length", object.length_); +} + +void to_json(JsonValueScope &jv, const td_api::emojiReaction &object) { + auto jo = jv.enter_object(); + jo("@type", "emojiReaction"); + jo("emoji", object.emoji_); + jo("title", object.title_); + jo("is_active", JsonBool{object.is_active_}); + if (object.static_icon_) { + jo("static_icon", ToJson(*object.static_icon_)); + } + if (object.appear_animation_) { + jo("appear_animation", ToJson(*object.appear_animation_)); + } + if (object.select_animation_) { + jo("select_animation", ToJson(*object.select_animation_)); + } + if (object.activate_animation_) { + jo("activate_animation", ToJson(*object.activate_animation_)); + } + if (object.effect_animation_) { + jo("effect_animation", ToJson(*object.effect_animation_)); + } + if (object.around_animation_) { + jo("around_animation", ToJson(*object.around_animation_)); + } + if (object.center_animation_) { + jo("center_animation", ToJson(*object.center_animation_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::emojiStatus &object) { + auto jo = jv.enter_object(); + jo("@type", "emojiStatus"); + jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::emojiStatuses &object) { + auto jo = jv.enter_object(); + jo("@type", "emojiStatuses"); + jo("emoji_statuses", ToJson(object.emoji_statuses_)); +} + +void to_json(JsonValueScope &jv, const td_api::emojis &object) { + auto jo = jv.enter_object(); + jo("@type", "emojis"); + jo("emojis", ToJson(object.emojis_)); +} + +void to_json(JsonValueScope &jv, const td_api::encryptedCredentials &object) { + auto jo = jv.enter_object(); + jo("@type", "encryptedCredentials"); + jo("data", base64_encode(object.data_)); + jo("hash", base64_encode(object.hash_)); + jo("secret", base64_encode(object.secret_)); +} + +void to_json(JsonValueScope &jv, const td_api::encryptedPassportElement &object) { + auto jo = jv.enter_object(); + jo("@type", "encryptedPassportElement"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("data", base64_encode(object.data_)); + if (object.front_side_) { + jo("front_side", ToJson(*object.front_side_)); + } + if (object.reverse_side_) { + jo("reverse_side", ToJson(*object.reverse_side_)); + } + if (object.selfie_) { + jo("selfie", ToJson(*object.selfie_)); + } + jo("translation", ToJson(object.translation_)); + jo("files", ToJson(object.files_)); + jo("value", object.value_); + jo("hash", object.hash_); +} + +void to_json(JsonValueScope &jv, const td_api::error &object) { + auto jo = jv.enter_object(); + jo("@type", "error"); + jo("code", object.code_); + jo("message", object.message_); +} + +void to_json(JsonValueScope &jv, const td_api::file &object) { + auto jo = jv.enter_object(); + jo("@type", "file"); + jo("id", object.id_); + jo("size", object.size_); + jo("expected_size", object.expected_size_); + if (object.local_) { + jo("local", ToJson(*object.local_)); + } + if (object.remote_) { + jo("remote", ToJson(*object.remote_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::fileDownload &object) { + auto jo = jv.enter_object(); + jo("@type", "fileDownload"); + jo("file_id", object.file_id_); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } + jo("add_date", object.add_date_); + jo("complete_date", object.complete_date_); + jo("is_paused", JsonBool{object.is_paused_}); +} + +void to_json(JsonValueScope &jv, const td_api::fileDownloadedPrefixSize &object) { + auto jo = jv.enter_object(); + jo("@type", "fileDownloadedPrefixSize"); + jo("size", object.size_); +} + +void to_json(JsonValueScope &jv, const td_api::filePart &object) { + auto jo = jv.enter_object(); + jo("@type", "filePart"); + jo("data", base64_encode(object.data_)); +} + +void to_json(JsonValueScope &jv, const td_api::FileType &object) { + td_api::downcast_call(const_cast<td_api::FileType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeNone &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeNone"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeAnimation &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeAnimation"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeAudio &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeAudio"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeDocument"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeNotificationSound &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeNotificationSound"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypePhoto"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeProfilePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeProfilePhoto"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeSecret &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeSecret"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeSecretThumbnail &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeSecretThumbnail"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeSecure &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeSecure"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeSticker &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeSticker"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeThumbnail &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeThumbnail"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeUnknown &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeUnknown"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeVideo"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeVideoNote &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeVideoNote"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeVoiceNote"); +} + +void to_json(JsonValueScope &jv, const td_api::fileTypeWallpaper &object) { + auto jo = jv.enter_object(); + jo("@type", "fileTypeWallpaper"); +} + +void to_json(JsonValueScope &jv, const td_api::formattedText &object) { + auto jo = jv.enter_object(); + jo("@type", "formattedText"); + jo("text", object.text_); + jo("entities", ToJson(object.entities_)); +} + +void to_json(JsonValueScope &jv, const td_api::forumTopicIcon &object) { + auto jo = jv.enter_object(); + jo("@type", "forumTopicIcon"); + jo("color", object.color_); + jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::forumTopicInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "forumTopicInfo"); + jo("message_thread_id", object.message_thread_id_); + jo("name", object.name_); + if (object.icon_) { + jo("icon", ToJson(*object.icon_)); + } + jo("creation_date", object.creation_date_); + if (object.creator_id_) { + jo("creator_id", ToJson(*object.creator_id_)); + } + jo("is_outgoing", JsonBool{object.is_outgoing_}); + jo("is_closed", JsonBool{object.is_closed_}); +} + +void to_json(JsonValueScope &jv, const td_api::foundFileDownloads &object) { + auto jo = jv.enter_object(); + jo("@type", "foundFileDownloads"); + if (object.total_counts_) { + jo("total_counts", ToJson(*object.total_counts_)); + } + jo("files", ToJson(object.files_)); + jo("next_offset", object.next_offset_); +} + +void to_json(JsonValueScope &jv, const td_api::foundMessages &object) { + auto jo = jv.enter_object(); + jo("@type", "foundMessages"); + jo("total_count", object.total_count_); + jo("messages", ToJson(object.messages_)); + jo("next_offset", object.next_offset_); +} + +void to_json(JsonValueScope &jv, const td_api::game &object) { + auto jo = jv.enter_object(); + jo("@type", "game"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("short_name", object.short_name_); + jo("title", object.title_); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("description", object.description_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::gameHighScore &object) { + auto jo = jv.enter_object(); + jo("@type", "gameHighScore"); + jo("position", object.position_); + jo("user_id", object.user_id_); + jo("score", object.score_); +} + +void to_json(JsonValueScope &jv, const td_api::gameHighScores &object) { + auto jo = jv.enter_object(); + jo("@type", "gameHighScores"); + jo("scores", ToJson(object.scores_)); +} + +void to_json(JsonValueScope &jv, const td_api::groupCall &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCall"); + jo("id", object.id_); + jo("title", object.title_); + jo("scheduled_start_date", object.scheduled_start_date_); + jo("enabled_start_notification", JsonBool{object.enabled_start_notification_}); + jo("is_active", JsonBool{object.is_active_}); + jo("is_rtmp_stream", JsonBool{object.is_rtmp_stream_}); + jo("is_joined", JsonBool{object.is_joined_}); + jo("need_rejoin", JsonBool{object.need_rejoin_}); + jo("can_be_managed", JsonBool{object.can_be_managed_}); + jo("participant_count", object.participant_count_); + jo("has_hidden_listeners", JsonBool{object.has_hidden_listeners_}); + jo("loaded_all_participants", JsonBool{object.loaded_all_participants_}); + jo("recent_speakers", ToJson(object.recent_speakers_)); + jo("is_my_video_enabled", JsonBool{object.is_my_video_enabled_}); + jo("is_my_video_paused", JsonBool{object.is_my_video_paused_}); + jo("can_enable_video", JsonBool{object.can_enable_video_}); + jo("mute_new_participants", JsonBool{object.mute_new_participants_}); + jo("can_toggle_mute_new_participants", JsonBool{object.can_toggle_mute_new_participants_}); + jo("record_duration", object.record_duration_); + jo("is_video_recorded", JsonBool{object.is_video_recorded_}); + jo("duration", object.duration_); +} + +void to_json(JsonValueScope &jv, const td_api::groupCallId &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCallId"); + jo("id", object.id_); +} + +void to_json(JsonValueScope &jv, const td_api::groupCallParticipant &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCallParticipant"); + if (object.participant_id_) { + jo("participant_id", ToJson(*object.participant_id_)); + } + jo("audio_source_id", object.audio_source_id_); + jo("screen_sharing_audio_source_id", object.screen_sharing_audio_source_id_); + if (object.video_info_) { + jo("video_info", ToJson(*object.video_info_)); + } + if (object.screen_sharing_video_info_) { + jo("screen_sharing_video_info", ToJson(*object.screen_sharing_video_info_)); + } + jo("bio", object.bio_); + jo("is_current_user", JsonBool{object.is_current_user_}); + jo("is_speaking", JsonBool{object.is_speaking_}); + jo("is_hand_raised", JsonBool{object.is_hand_raised_}); + jo("can_be_muted_for_all_users", JsonBool{object.can_be_muted_for_all_users_}); + jo("can_be_unmuted_for_all_users", JsonBool{object.can_be_unmuted_for_all_users_}); + jo("can_be_muted_for_current_user", JsonBool{object.can_be_muted_for_current_user_}); + jo("can_be_unmuted_for_current_user", JsonBool{object.can_be_unmuted_for_current_user_}); + jo("is_muted_for_all_users", JsonBool{object.is_muted_for_all_users_}); + jo("is_muted_for_current_user", JsonBool{object.is_muted_for_current_user_}); + jo("can_unmute_self", JsonBool{object.can_unmute_self_}); + jo("volume_level", object.volume_level_); + jo("order", object.order_); +} + +void to_json(JsonValueScope &jv, const td_api::groupCallParticipantVideoInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCallParticipantVideoInfo"); + jo("source_groups", ToJson(object.source_groups_)); + jo("endpoint_id", object.endpoint_id_); + jo("is_paused", JsonBool{object.is_paused_}); +} + +void to_json(JsonValueScope &jv, const td_api::groupCallRecentSpeaker &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCallRecentSpeaker"); + if (object.participant_id_) { + jo("participant_id", ToJson(*object.participant_id_)); + } + jo("is_speaking", JsonBool{object.is_speaking_}); +} + +void to_json(JsonValueScope &jv, const td_api::groupCallStream &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCallStream"); + jo("channel_id", object.channel_id_); + jo("scale", object.scale_); + jo("time_offset", object.time_offset_); +} + +void to_json(JsonValueScope &jv, const td_api::groupCallStreams &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCallStreams"); + jo("streams", ToJson(object.streams_)); +} + +void to_json(JsonValueScope &jv, const td_api::groupCallVideoSourceGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "groupCallVideoSourceGroup"); + jo("semantics", object.semantics_); + jo("source_ids", ToJson(object.source_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::hashtags &object) { + auto jo = jv.enter_object(); + jo("@type", "hashtags"); + jo("hashtags", ToJson(object.hashtags_)); +} + +void to_json(JsonValueScope &jv, const td_api::httpUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "httpUrl"); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::identityDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "identityDocument"); + jo("number", object.number_); + if (object.expiry_date_) { + jo("expiry_date", ToJson(*object.expiry_date_)); + } + if (object.front_side_) { + jo("front_side", ToJson(*object.front_side_)); + } + if (object.reverse_side_) { + jo("reverse_side", ToJson(*object.reverse_side_)); + } + if (object.selfie_) { + jo("selfie", ToJson(*object.selfie_)); + } + jo("translation", ToJson(object.translation_)); +} + +void to_json(JsonValueScope &jv, const td_api::importedContacts &object) { + auto jo = jv.enter_object(); + jo("@type", "importedContacts"); + jo("user_ids", ToJson(object.user_ids_)); + jo("importer_count", ToJson(object.importer_count_)); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButton &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButton"); + jo("text", object.text_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::InlineKeyboardButtonType &object) { + td_api::downcast_call(const_cast<td_api::InlineKeyboardButtonType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeUrl"); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeLoginUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeLoginUrl"); + jo("url", object.url_); + jo("id", object.id_); + jo("forward_text", object.forward_text_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeWebApp &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeWebApp"); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallback &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeCallback"); + jo("data", base64_encode(object.data_)); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackWithPassword &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeCallbackWithPassword"); + jo("data", base64_encode(object.data_)); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackGame &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeCallbackGame"); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeSwitchInline &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeSwitchInline"); + jo("query", object.query_); + jo("in_current_chat", JsonBool{object.in_current_chat_}); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeBuy &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeBuy"); +} + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUser &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineKeyboardButtonTypeUser"); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::InlineQueryResult &object) { + td_api::downcast_call(const_cast<td_api::InlineQueryResult &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultArticle &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultArticle"); + jo("id", object.id_); + jo("url", object.url_); + jo("hide_url", JsonBool{object.hide_url_}); + jo("title", object.title_); + jo("description", object.description_); + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultContact &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultContact"); + jo("id", object.id_); + if (object.contact_) { + jo("contact", ToJson(*object.contact_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultLocation"); + jo("id", object.id_); + if (object.location_) { + jo("location", ToJson(*object.location_)); + } + jo("title", object.title_); + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVenue &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultVenue"); + jo("id", object.id_); + if (object.venue_) { + jo("venue", ToJson(*object.venue_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultGame &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultGame"); + jo("id", object.id_); + if (object.game_) { + jo("game", ToJson(*object.game_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAnimation &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultAnimation"); + jo("id", object.id_); + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAudio &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultAudio"); + jo("id", object.id_); + if (object.audio_) { + jo("audio", ToJson(*object.audio_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultDocument"); + jo("id", object.id_); + if (object.document_) { + jo("document", ToJson(*object.document_)); + } + jo("title", object.title_); + jo("description", object.description_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultPhoto"); + jo("id", object.id_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("title", object.title_); + jo("description", object.description_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultSticker &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultSticker"); + jo("id", object.id_); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultVideo"); + jo("id", object.id_); + if (object.video_) { + jo("video", ToJson(*object.video_)); + } + jo("title", object.title_); + jo("description", object.description_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResultVoiceNote"); + jo("id", object.id_); + if (object.voice_note_) { + jo("voice_note", ToJson(*object.voice_note_)); + } + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResults &object) { + auto jo = jv.enter_object(); + jo("@type", "inlineQueryResults"); + jo("inline_query_id", ToJson(JsonInt64{object.inline_query_id_})); + jo("next_offset", object.next_offset_); + jo("results", ToJson(object.results_)); + jo("switch_pm_text", object.switch_pm_text_); + jo("switch_pm_parameter", object.switch_pm_parameter_); +} + +void to_json(JsonValueScope &jv, const td_api::InputFile &object) { + td_api::downcast_call(const_cast<td_api::InputFile &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::inputFileId &object) { + auto jo = jv.enter_object(); + jo("@type", "inputFileId"); + jo("id", object.id_); +} + +void to_json(JsonValueScope &jv, const td_api::inputFileRemote &object) { + auto jo = jv.enter_object(); + jo("@type", "inputFileRemote"); + jo("id", object.id_); +} + +void to_json(JsonValueScope &jv, const td_api::inputFileLocal &object) { + auto jo = jv.enter_object(); + jo("@type", "inputFileLocal"); + jo("path", object.path_); +} + +void to_json(JsonValueScope &jv, const td_api::inputFileGenerated &object) { + auto jo = jv.enter_object(); + jo("@type", "inputFileGenerated"); + jo("original_path", object.original_path_); + jo("conversion", object.conversion_); + jo("expected_size", object.expected_size_); +} + +void to_json(JsonValueScope &jv, const td_api::InputMessageContent &object) { + td_api::downcast_call(const_cast<td_api::InputMessageContent &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageText &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageText"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("disable_web_page_preview", JsonBool{object.disable_web_page_preview_}); + jo("clear_draft", JsonBool{object.clear_draft_}); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageAnimation &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageAnimation"); + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("added_sticker_file_ids", ToJson(object.added_sticker_file_ids_)); + jo("duration", object.duration_); + jo("width", object.width_); + jo("height", object.height_); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageAudio &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageAudio"); + if (object.audio_) { + jo("audio", ToJson(*object.audio_)); + } + if (object.album_cover_thumbnail_) { + jo("album_cover_thumbnail", ToJson(*object.album_cover_thumbnail_)); + } + jo("duration", object.duration_); + jo("title", object.title_); + jo("performer", object.performer_); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageDocument"); + if (object.document_) { + jo("document", ToJson(*object.document_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("disable_content_type_detection", JsonBool{object.disable_content_type_detection_}); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputMessagePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessagePhoto"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("added_sticker_file_ids", ToJson(object.added_sticker_file_ids_)); + jo("width", object.width_); + jo("height", object.height_); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("ttl", object.ttl_); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageSticker &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageSticker"); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("width", object.width_); + jo("height", object.height_); + jo("emoji", object.emoji_); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageVideo"); + if (object.video_) { + jo("video", ToJson(*object.video_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("added_sticker_file_ids", ToJson(object.added_sticker_file_ids_)); + jo("duration", object.duration_); + jo("width", object.width_); + jo("height", object.height_); + jo("supports_streaming", JsonBool{object.supports_streaming_}); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("ttl", object.ttl_); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageVideoNote &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageVideoNote"); + if (object.video_note_) { + jo("video_note", ToJson(*object.video_note_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("duration", object.duration_); + jo("length", object.length_); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageVoiceNote"); + if (object.voice_note_) { + jo("voice_note", ToJson(*object.voice_note_)); + } + jo("duration", object.duration_); + jo("waveform", base64_encode(object.waveform_)); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageLocation"); + if (object.location_) { + jo("location", ToJson(*object.location_)); + } + jo("live_period", object.live_period_); + jo("heading", object.heading_); + jo("proximity_alert_radius", object.proximity_alert_radius_); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageVenue &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageVenue"); + if (object.venue_) { + jo("venue", ToJson(*object.venue_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageContact &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageContact"); + if (object.contact_) { + jo("contact", ToJson(*object.contact_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageDice &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageDice"); + jo("emoji", object.emoji_); + jo("clear_draft", JsonBool{object.clear_draft_}); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageGame &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageGame"); + jo("bot_user_id", object.bot_user_id_); + jo("game_short_name", object.game_short_name_); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageInvoice &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageInvoice"); + if (object.invoice_) { + jo("invoice", ToJson(*object.invoice_)); + } + jo("title", object.title_); + jo("description", object.description_); + jo("photo_url", object.photo_url_); + jo("photo_size", object.photo_size_); + jo("photo_width", object.photo_width_); + jo("photo_height", object.photo_height_); + jo("payload", base64_encode(object.payload_)); + jo("provider_token", object.provider_token_); + jo("provider_data", object.provider_data_); + jo("start_parameter", object.start_parameter_); + if (object.extended_media_content_) { + jo("extended_media_content", ToJson(*object.extended_media_content_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputMessagePoll &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessagePoll"); + jo("question", object.question_); + jo("options", ToJson(object.options_)); + jo("is_anonymous", JsonBool{object.is_anonymous_}); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("open_period", object.open_period_); + jo("close_date", object.close_date_); + jo("is_closed", JsonBool{object.is_closed_}); +} + +void to_json(JsonValueScope &jv, const td_api::inputMessageForwarded &object) { + auto jo = jv.enter_object(); + jo("@type", "inputMessageForwarded"); + jo("from_chat_id", object.from_chat_id_); + jo("message_id", object.message_id_); + jo("in_game_share", JsonBool{object.in_game_share_}); + if (object.copy_options_) { + jo("copy_options", ToJson(*object.copy_options_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::inputThumbnail &object) { + auto jo = jv.enter_object(); + jo("@type", "inputThumbnail"); + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("width", object.width_); + jo("height", object.height_); +} + +void to_json(JsonValueScope &jv, const td_api::InternalLinkType &object) { + td_api::downcast_call(const_cast<td_api::InternalLinkType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeActiveSessions &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeActiveSessions"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAttachmentMenuBot &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeAttachmentMenuBot"); + if (object.target_chat_) { + jo("target_chat", ToJson(*object.target_chat_)); + } + jo("bot_username", object.bot_username_); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAuthenticationCode &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeAuthenticationCode"); + jo("code", object.code_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBackground &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeBackground"); + jo("background_name", object.background_name_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStart &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeBotStart"); + jo("bot_username", object.bot_username_); + jo("start_parameter", object.start_parameter_); + jo("autostart", JsonBool{object.autostart_}); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStartInGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeBotStartInGroup"); + jo("bot_username", object.bot_username_); + jo("start_parameter", object.start_parameter_); + if (object.administrator_rights_) { + jo("administrator_rights", ToJson(*object.administrator_rights_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotAddToChannel &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeBotAddToChannel"); + jo("bot_username", object.bot_username_); + if (object.administrator_rights_) { + jo("administrator_rights", ToJson(*object.administrator_rights_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChangePhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeChangePhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChatInvite &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeChatInvite"); + jo("invite_link", object.invite_link_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeFilterSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeFilterSettings"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeGame &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeGame"); + jo("bot_username", object.bot_username_); + jo("game_short_name", object.game_short_name_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInstantView &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeInstantView"); + jo("url", object.url_); + jo("fallback_url", object.fallback_url_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInvoice &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeInvoice"); + jo("invoice_name", object.invoice_name_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguagePack &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeLanguagePack"); + jo("language_pack_id", object.language_pack_id_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguageSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeLanguageSettings"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeMessage"); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessageDraft &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeMessageDraft"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("contains_link", JsonBool{object.contains_link_}); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePassportDataRequest &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypePassportDataRequest"); + jo("bot_user_id", object.bot_user_id_); + jo("scope", object.scope_); + jo("public_key", object.public_key_); + jo("nonce", object.nonce_); + jo("callback_url", object.callback_url_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePhoneNumberConfirmation &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypePhoneNumberConfirmation"); + jo("hash", object.hash_); + jo("phone_number", object.phone_number_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePremiumFeatures &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypePremiumFeatures"); + jo("referrer", object.referrer_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePrivacyAndSecuritySettings &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypePrivacyAndSecuritySettings"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeProxy &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeProxy"); + jo("server", object.server_); + jo("port", object.port_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePublicChat &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypePublicChat"); + jo("chat_username", object.chat_username_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeQrCodeAuthentication &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeQrCodeAuthentication"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeRestorePurchases &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeRestorePurchases"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeSettings"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeStickerSet &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeStickerSet"); + jo("sticker_set_name", object.sticker_set_name_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeTheme &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeTheme"); + jo("theme_name", object.theme_name_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeThemeSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeThemeSettings"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnknownDeepLink &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeUnknownDeepLink"); + jo("link", object.link_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnsupportedProxy &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeUnsupportedProxy"); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUserPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeUserPhoneNumber"); + jo("phone_number", object.phone_number_); +} + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeVideoChat &object) { + auto jo = jv.enter_object(); + jo("@type", "internalLinkTypeVideoChat"); + jo("chat_username", object.chat_username_); + jo("invite_hash", object.invite_hash_); + jo("is_live_stream", JsonBool{object.is_live_stream_}); +} + +void to_json(JsonValueScope &jv, const td_api::invoice &object) { + auto jo = jv.enter_object(); + jo("@type", "invoice"); + jo("currency", object.currency_); + jo("price_parts", ToJson(object.price_parts_)); + jo("max_tip_amount", object.max_tip_amount_); + jo("suggested_tip_amounts", ToJson(object.suggested_tip_amounts_)); + jo("recurring_payment_terms_of_service_url", object.recurring_payment_terms_of_service_url_); + jo("is_test", JsonBool{object.is_test_}); + jo("need_name", JsonBool{object.need_name_}); + jo("need_phone_number", JsonBool{object.need_phone_number_}); + jo("need_email_address", JsonBool{object.need_email_address_}); + jo("need_shipping_address", JsonBool{object.need_shipping_address_}); + jo("send_phone_number_to_provider", JsonBool{object.send_phone_number_to_provider_}); + jo("send_email_address_to_provider", JsonBool{object.send_email_address_to_provider_}); + jo("is_flexible", JsonBool{object.is_flexible_}); +} + +void to_json(JsonValueScope &jv, const td_api::jsonObjectMember &object) { + auto jo = jv.enter_object(); + jo("@type", "jsonObjectMember"); + jo("key", object.key_); + if (object.value_) { + jo("value", ToJson(*object.value_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::JsonValue &object) { + td_api::downcast_call(const_cast<td_api::JsonValue &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::jsonValueNull &object) { + auto jo = jv.enter_object(); + jo("@type", "jsonValueNull"); +} + +void to_json(JsonValueScope &jv, const td_api::jsonValueBoolean &object) { + auto jo = jv.enter_object(); + jo("@type", "jsonValueBoolean"); + jo("value", JsonBool{object.value_}); +} + +void to_json(JsonValueScope &jv, const td_api::jsonValueNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "jsonValueNumber"); + jo("value", object.value_); +} + +void to_json(JsonValueScope &jv, const td_api::jsonValueString &object) { + auto jo = jv.enter_object(); + jo("@type", "jsonValueString"); + jo("value", object.value_); +} + +void to_json(JsonValueScope &jv, const td_api::jsonValueArray &object) { + auto jo = jv.enter_object(); + jo("@type", "jsonValueArray"); + jo("values", ToJson(object.values_)); +} + +void to_json(JsonValueScope &jv, const td_api::jsonValueObject &object) { + auto jo = jv.enter_object(); + jo("@type", "jsonValueObject"); + jo("members", ToJson(object.members_)); +} + +void to_json(JsonValueScope &jv, const td_api::keyboardButton &object) { + auto jo = jv.enter_object(); + jo("@type", "keyboardButton"); + jo("text", object.text_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::KeyboardButtonType &object) { + td_api::downcast_call(const_cast<td_api::KeyboardButtonType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeText &object) { + auto jo = jv.enter_object(); + jo("@type", "keyboardButtonTypeText"); +} + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "keyboardButtonTypeRequestPhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "keyboardButtonTypeRequestLocation"); +} + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPoll &object) { + auto jo = jv.enter_object(); + jo("@type", "keyboardButtonTypeRequestPoll"); + jo("force_regular", JsonBool{object.force_regular_}); + jo("force_quiz", JsonBool{object.force_quiz_}); +} + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeWebApp &object) { + auto jo = jv.enter_object(); + jo("@type", "keyboardButtonTypeWebApp"); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::labeledPricePart &object) { + auto jo = jv.enter_object(); + jo("@type", "labeledPricePart"); + jo("label", object.label_); + jo("amount", object.amount_); +} + +void to_json(JsonValueScope &jv, const td_api::languagePackInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "languagePackInfo"); + jo("id", object.id_); + jo("base_language_pack_id", object.base_language_pack_id_); + jo("name", object.name_); + jo("native_name", object.native_name_); + jo("plural_code", object.plural_code_); + jo("is_official", JsonBool{object.is_official_}); + jo("is_rtl", JsonBool{object.is_rtl_}); + jo("is_beta", JsonBool{object.is_beta_}); + jo("is_installed", JsonBool{object.is_installed_}); + jo("total_string_count", object.total_string_count_); + jo("translated_string_count", object.translated_string_count_); + jo("local_string_count", object.local_string_count_); + jo("translation_url", object.translation_url_); +} + +void to_json(JsonValueScope &jv, const td_api::languagePackString &object) { + auto jo = jv.enter_object(); + jo("@type", "languagePackString"); + jo("key", object.key_); + if (object.value_) { + jo("value", ToJson(*object.value_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::LanguagePackStringValue &object) { + td_api::downcast_call(const_cast<td_api::LanguagePackStringValue &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::languagePackStringValueOrdinary &object) { + auto jo = jv.enter_object(); + jo("@type", "languagePackStringValueOrdinary"); + jo("value", object.value_); +} + +void to_json(JsonValueScope &jv, const td_api::languagePackStringValuePluralized &object) { + auto jo = jv.enter_object(); + jo("@type", "languagePackStringValuePluralized"); + jo("zero_value", object.zero_value_); + jo("one_value", object.one_value_); + jo("two_value", object.two_value_); + jo("few_value", object.few_value_); + jo("many_value", object.many_value_); + jo("other_value", object.other_value_); +} + +void to_json(JsonValueScope &jv, const td_api::languagePackStringValueDeleted &object) { + auto jo = jv.enter_object(); + jo("@type", "languagePackStringValueDeleted"); +} + +void to_json(JsonValueScope &jv, const td_api::languagePackStrings &object) { + auto jo = jv.enter_object(); + jo("@type", "languagePackStrings"); + jo("strings", ToJson(object.strings_)); +} + +void to_json(JsonValueScope &jv, const td_api::localFile &object) { + auto jo = jv.enter_object(); + jo("@type", "localFile"); + jo("path", object.path_); + jo("can_be_downloaded", JsonBool{object.can_be_downloaded_}); + jo("can_be_deleted", JsonBool{object.can_be_deleted_}); + jo("is_downloading_active", JsonBool{object.is_downloading_active_}); + jo("is_downloading_completed", JsonBool{object.is_downloading_completed_}); + jo("download_offset", object.download_offset_); + jo("downloaded_prefix_size", object.downloaded_prefix_size_); + jo("downloaded_size", object.downloaded_size_); +} + +void to_json(JsonValueScope &jv, const td_api::localizationTargetInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "localizationTargetInfo"); + jo("language_packs", ToJson(object.language_packs_)); +} + +void to_json(JsonValueScope &jv, const td_api::location &object) { + auto jo = jv.enter_object(); + jo("@type", "location"); + jo("latitude", object.latitude_); + jo("longitude", object.longitude_); + jo("horizontal_accuracy", object.horizontal_accuracy_); +} + +void to_json(JsonValueScope &jv, const td_api::LogStream &object) { + td_api::downcast_call(const_cast<td_api::LogStream &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::logStreamDefault &object) { + auto jo = jv.enter_object(); + jo("@type", "logStreamDefault"); +} + +void to_json(JsonValueScope &jv, const td_api::logStreamFile &object) { + auto jo = jv.enter_object(); + jo("@type", "logStreamFile"); + jo("path", object.path_); + jo("max_file_size", object.max_file_size_); + jo("redirect_stderr", JsonBool{object.redirect_stderr_}); +} + +void to_json(JsonValueScope &jv, const td_api::logStreamEmpty &object) { + auto jo = jv.enter_object(); + jo("@type", "logStreamEmpty"); +} + +void to_json(JsonValueScope &jv, const td_api::logTags &object) { + auto jo = jv.enter_object(); + jo("@type", "logTags"); + jo("tags", ToJson(object.tags_)); +} + +void to_json(JsonValueScope &jv, const td_api::logVerbosityLevel &object) { + auto jo = jv.enter_object(); + jo("@type", "logVerbosityLevel"); + jo("verbosity_level", object.verbosity_level_); +} + +void to_json(JsonValueScope &jv, const td_api::LoginUrlInfo &object) { + td_api::downcast_call(const_cast<td_api::LoginUrlInfo &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::loginUrlInfoOpen &object) { + auto jo = jv.enter_object(); + jo("@type", "loginUrlInfoOpen"); + jo("url", object.url_); + jo("skip_confirm", JsonBool{object.skip_confirm_}); +} + +void to_json(JsonValueScope &jv, const td_api::loginUrlInfoRequestConfirmation &object) { + auto jo = jv.enter_object(); + jo("@type", "loginUrlInfoRequestConfirmation"); + jo("url", object.url_); + jo("domain", object.domain_); + jo("bot_user_id", object.bot_user_id_); + jo("request_write_access", JsonBool{object.request_write_access_}); +} + +void to_json(JsonValueScope &jv, const td_api::MaskPoint &object) { + td_api::downcast_call(const_cast<td_api::MaskPoint &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::maskPointForehead &object) { + auto jo = jv.enter_object(); + jo("@type", "maskPointForehead"); +} + +void to_json(JsonValueScope &jv, const td_api::maskPointEyes &object) { + auto jo = jv.enter_object(); + jo("@type", "maskPointEyes"); +} + +void to_json(JsonValueScope &jv, const td_api::maskPointMouth &object) { + auto jo = jv.enter_object(); + jo("@type", "maskPointMouth"); +} + +void to_json(JsonValueScope &jv, const td_api::maskPointChin &object) { + auto jo = jv.enter_object(); + jo("@type", "maskPointChin"); +} + +void to_json(JsonValueScope &jv, const td_api::maskPosition &object) { + auto jo = jv.enter_object(); + jo("@type", "maskPosition"); + if (object.point_) { + jo("point", ToJson(*object.point_)); + } + jo("x_shift", object.x_shift_); + jo("y_shift", object.y_shift_); + jo("scale", object.scale_); +} + +void to_json(JsonValueScope &jv, const td_api::message &object) { + auto jo = jv.enter_object(); + jo("@type", "message"); + jo("id", object.id_); + if (object.sender_id_) { + jo("sender_id", ToJson(*object.sender_id_)); + } + jo("chat_id", object.chat_id_); + if (object.sending_state_) { + jo("sending_state", ToJson(*object.sending_state_)); + } + if (object.scheduling_state_) { + jo("scheduling_state", ToJson(*object.scheduling_state_)); + } + jo("is_outgoing", JsonBool{object.is_outgoing_}); + jo("is_pinned", JsonBool{object.is_pinned_}); + jo("can_be_edited", JsonBool{object.can_be_edited_}); + jo("can_be_forwarded", JsonBool{object.can_be_forwarded_}); + jo("can_be_saved", JsonBool{object.can_be_saved_}); + jo("can_be_deleted_only_for_self", JsonBool{object.can_be_deleted_only_for_self_}); + jo("can_be_deleted_for_all_users", JsonBool{object.can_be_deleted_for_all_users_}); + jo("can_get_added_reactions", JsonBool{object.can_get_added_reactions_}); + jo("can_get_statistics", JsonBool{object.can_get_statistics_}); + jo("can_get_message_thread", JsonBool{object.can_get_message_thread_}); + jo("can_get_viewers", JsonBool{object.can_get_viewers_}); + jo("can_get_media_timestamp_links", JsonBool{object.can_get_media_timestamp_links_}); + jo("can_report_reactions", JsonBool{object.can_report_reactions_}); + jo("has_timestamped_media", JsonBool{object.has_timestamped_media_}); + jo("is_channel_post", JsonBool{object.is_channel_post_}); + jo("is_topic_message", JsonBool{object.is_topic_message_}); + jo("contains_unread_mention", JsonBool{object.contains_unread_mention_}); + jo("date", object.date_); + jo("edit_date", object.edit_date_); + if (object.forward_info_) { + jo("forward_info", ToJson(*object.forward_info_)); + } + if (object.interaction_info_) { + jo("interaction_info", ToJson(*object.interaction_info_)); + } + jo("unread_reactions", ToJson(object.unread_reactions_)); + jo("reply_in_chat_id", object.reply_in_chat_id_); + jo("reply_to_message_id", object.reply_to_message_id_); + jo("message_thread_id", object.message_thread_id_); + jo("ttl", object.ttl_); + jo("ttl_expires_in", object.ttl_expires_in_); + jo("via_bot_user_id", object.via_bot_user_id_); + jo("author_signature", object.author_signature_); + jo("media_album_id", ToJson(JsonInt64{object.media_album_id_})); + jo("restriction_reason", object.restriction_reason_); + if (object.content_) { + jo("content", ToJson(*object.content_)); + } + if (object.reply_markup_) { + jo("reply_markup", ToJson(*object.reply_markup_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageCalendar &object) { + auto jo = jv.enter_object(); + jo("@type", "messageCalendar"); + jo("total_count", object.total_count_); + jo("days", ToJson(object.days_)); +} + +void to_json(JsonValueScope &jv, const td_api::messageCalendarDay &object) { + auto jo = jv.enter_object(); + jo("@type", "messageCalendarDay"); + jo("total_count", object.total_count_); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::MessageContent &object) { + td_api::downcast_call(const_cast<td_api::MessageContent &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::messageText &object) { + auto jo = jv.enter_object(); + jo("@type", "messageText"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + if (object.web_page_) { + jo("web_page", ToJson(*object.web_page_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageAnimation &object) { + auto jo = jv.enter_object(); + jo("@type", "messageAnimation"); + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("is_secret", JsonBool{object.is_secret_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageAudio &object) { + auto jo = jv.enter_object(); + jo("@type", "messageAudio"); + if (object.audio_) { + jo("audio", ToJson(*object.audio_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "messageDocument"); + if (object.document_) { + jo("document", ToJson(*object.document_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messagePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePhoto"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("is_secret", JsonBool{object.is_secret_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageExpiredPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "messageExpiredPhoto"); +} + +void to_json(JsonValueScope &jv, const td_api::messageSticker &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSticker"); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } + jo("is_premium", JsonBool{object.is_premium_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageVideo"); + if (object.video_) { + jo("video", ToJson(*object.video_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("is_secret", JsonBool{object.is_secret_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageExpiredVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageExpiredVideo"); +} + +void to_json(JsonValueScope &jv, const td_api::messageVideoNote &object) { + auto jo = jv.enter_object(); + jo("@type", "messageVideoNote"); + if (object.video_note_) { + jo("video_note", ToJson(*object.video_note_)); + } + jo("is_viewed", JsonBool{object.is_viewed_}); + jo("is_secret", JsonBool{object.is_secret_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "messageVoiceNote"); + if (object.voice_note_) { + jo("voice_note", ToJson(*object.voice_note_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("is_listened", JsonBool{object.is_listened_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "messageLocation"); + if (object.location_) { + jo("location", ToJson(*object.location_)); + } + jo("live_period", object.live_period_); + jo("expires_in", object.expires_in_); + jo("heading", object.heading_); + jo("proximity_alert_radius", object.proximity_alert_radius_); +} + +void to_json(JsonValueScope &jv, const td_api::messageVenue &object) { + auto jo = jv.enter_object(); + jo("@type", "messageVenue"); + if (object.venue_) { + jo("venue", ToJson(*object.venue_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageContact &object) { + auto jo = jv.enter_object(); + jo("@type", "messageContact"); + if (object.contact_) { + jo("contact", ToJson(*object.contact_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageAnimatedEmoji &object) { + auto jo = jv.enter_object(); + jo("@type", "messageAnimatedEmoji"); + if (object.animated_emoji_) { + jo("animated_emoji", ToJson(*object.animated_emoji_)); + } + jo("emoji", object.emoji_); +} + +void to_json(JsonValueScope &jv, const td_api::messageDice &object) { + auto jo = jv.enter_object(); + jo("@type", "messageDice"); + if (object.initial_state_) { + jo("initial_state", ToJson(*object.initial_state_)); + } + if (object.final_state_) { + jo("final_state", ToJson(*object.final_state_)); + } + jo("emoji", object.emoji_); + jo("value", object.value_); + jo("success_animation_frame_number", object.success_animation_frame_number_); +} + +void to_json(JsonValueScope &jv, const td_api::messageGame &object) { + auto jo = jv.enter_object(); + jo("@type", "messageGame"); + if (object.game_) { + jo("game", ToJson(*object.game_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messagePoll &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePoll"); + if (object.poll_) { + jo("poll", ToJson(*object.poll_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageInvoice &object) { + auto jo = jv.enter_object(); + jo("@type", "messageInvoice"); + jo("title", object.title_); + if (object.description_) { + jo("description", ToJson(*object.description_)); + } + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("currency", object.currency_); + jo("total_amount", object.total_amount_); + jo("start_parameter", object.start_parameter_); + jo("is_test", JsonBool{object.is_test_}); + jo("need_shipping_address", JsonBool{object.need_shipping_address_}); + jo("receipt_message_id", object.receipt_message_id_); + if (object.extended_media_) { + jo("extended_media", ToJson(*object.extended_media_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageCall &object) { + auto jo = jv.enter_object(); + jo("@type", "messageCall"); + jo("is_video", JsonBool{object.is_video_}); + if (object.discard_reason_) { + jo("discard_reason", ToJson(*object.discard_reason_)); + } + jo("duration", object.duration_); +} + +void to_json(JsonValueScope &jv, const td_api::messageVideoChatScheduled &object) { + auto jo = jv.enter_object(); + jo("@type", "messageVideoChatScheduled"); + jo("group_call_id", object.group_call_id_); + jo("start_date", object.start_date_); +} + +void to_json(JsonValueScope &jv, const td_api::messageVideoChatStarted &object) { + auto jo = jv.enter_object(); + jo("@type", "messageVideoChatStarted"); + jo("group_call_id", object.group_call_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageVideoChatEnded &object) { + auto jo = jv.enter_object(); + jo("@type", "messageVideoChatEnded"); + jo("duration", object.duration_); +} + +void to_json(JsonValueScope &jv, const td_api::messageInviteVideoChatParticipants &object) { + auto jo = jv.enter_object(); + jo("@type", "messageInviteVideoChatParticipants"); + jo("group_call_id", object.group_call_id_); + jo("user_ids", ToJson(object.user_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::messageBasicGroupChatCreate &object) { + auto jo = jv.enter_object(); + jo("@type", "messageBasicGroupChatCreate"); + jo("title", object.title_); + jo("member_user_ids", ToJson(object.member_user_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::messageSupergroupChatCreate &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSupergroupChatCreate"); + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatChangeTitle &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatChangeTitle"); + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatChangePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatChangePhoto"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageChatDeletePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatDeletePhoto"); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatAddMembers &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatAddMembers"); + jo("member_user_ids", ToJson(object.member_user_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatJoinByLink &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatJoinByLink"); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatJoinByRequest &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatJoinByRequest"); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatDeleteMember &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatDeleteMember"); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeTo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatUpgradeTo"); + jo("supergroup_id", object.supergroup_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeFrom &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatUpgradeFrom"); + jo("title", object.title_); + jo("basic_group_id", object.basic_group_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messagePinMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePinMessage"); + jo("message_id", object.message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageScreenshotTaken &object) { + auto jo = jv.enter_object(); + jo("@type", "messageScreenshotTaken"); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatSetTheme &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatSetTheme"); + jo("theme_name", object.theme_name_); +} + +void to_json(JsonValueScope &jv, const td_api::messageChatSetTtl &object) { + auto jo = jv.enter_object(); + jo("@type", "messageChatSetTtl"); + jo("ttl", object.ttl_); +} + +void to_json(JsonValueScope &jv, const td_api::messageForumTopicCreated &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForumTopicCreated"); + jo("name", object.name_); + if (object.icon_) { + jo("icon", ToJson(*object.icon_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageForumTopicEdited &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForumTopicEdited"); + jo("name", object.name_); + jo("edit_icon_custom_emoji_id", JsonBool{object.edit_icon_custom_emoji_id_}); + jo("icon_custom_emoji_id", ToJson(JsonInt64{object.icon_custom_emoji_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::messageForumTopicIsClosedToggled &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForumTopicIsClosedToggled"); + jo("is_closed", JsonBool{object.is_closed_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageCustomServiceAction &object) { + auto jo = jv.enter_object(); + jo("@type", "messageCustomServiceAction"); + jo("text", object.text_); +} + +void to_json(JsonValueScope &jv, const td_api::messageGameScore &object) { + auto jo = jv.enter_object(); + jo("@type", "messageGameScore"); + jo("game_message_id", object.game_message_id_); + jo("game_id", ToJson(JsonInt64{object.game_id_})); + jo("score", object.score_); +} + +void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessful &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePaymentSuccessful"); + jo("invoice_chat_id", object.invoice_chat_id_); + jo("invoice_message_id", object.invoice_message_id_); + jo("currency", object.currency_); + jo("total_amount", object.total_amount_); + jo("is_recurring", JsonBool{object.is_recurring_}); + jo("is_first_recurring", JsonBool{object.is_first_recurring_}); + jo("invoice_name", object.invoice_name_); +} + +void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessfulBot &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePaymentSuccessfulBot"); + jo("currency", object.currency_); + jo("total_amount", object.total_amount_); + jo("is_recurring", JsonBool{object.is_recurring_}); + jo("is_first_recurring", JsonBool{object.is_first_recurring_}); + jo("invoice_payload", base64_encode(object.invoice_payload_)); + jo("shipping_option_id", object.shipping_option_id_); + if (object.order_info_) { + jo("order_info", ToJson(*object.order_info_)); + } + jo("telegram_payment_charge_id", object.telegram_payment_charge_id_); + jo("provider_payment_charge_id", object.provider_payment_charge_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageGiftedPremium &object) { + auto jo = jv.enter_object(); + jo("@type", "messageGiftedPremium"); + jo("currency", object.currency_); + jo("amount", object.amount_); + jo("month_count", object.month_count_); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageContactRegistered &object) { + auto jo = jv.enter_object(); + jo("@type", "messageContactRegistered"); +} + +void to_json(JsonValueScope &jv, const td_api::messageWebsiteConnected &object) { + auto jo = jv.enter_object(); + jo("@type", "messageWebsiteConnected"); + jo("domain_name", object.domain_name_); +} + +void to_json(JsonValueScope &jv, const td_api::messageWebAppDataSent &object) { + auto jo = jv.enter_object(); + jo("@type", "messageWebAppDataSent"); + jo("button_text", object.button_text_); +} + +void to_json(JsonValueScope &jv, const td_api::messageWebAppDataReceived &object) { + auto jo = jv.enter_object(); + jo("@type", "messageWebAppDataReceived"); + jo("button_text", object.button_text_); + jo("data", object.data_); +} + +void to_json(JsonValueScope &jv, const td_api::messagePassportDataSent &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePassportDataSent"); + jo("types", ToJson(object.types_)); +} + +void to_json(JsonValueScope &jv, const td_api::messagePassportDataReceived &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePassportDataReceived"); + jo("elements", ToJson(object.elements_)); + if (object.credentials_) { + jo("credentials", ToJson(*object.credentials_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageProximityAlertTriggered &object) { + auto jo = jv.enter_object(); + jo("@type", "messageProximityAlertTriggered"); + if (object.traveler_id_) { + jo("traveler_id", ToJson(*object.traveler_id_)); + } + if (object.watcher_id_) { + jo("watcher_id", ToJson(*object.watcher_id_)); + } + jo("distance", object.distance_); +} + +void to_json(JsonValueScope &jv, const td_api::messageUnsupported &object) { + auto jo = jv.enter_object(); + jo("@type", "messageUnsupported"); +} + +void to_json(JsonValueScope &jv, const td_api::messageCopyOptions &object) { + auto jo = jv.enter_object(); + jo("@type", "messageCopyOptions"); + jo("send_copy", JsonBool{object.send_copy_}); + jo("replace_caption", JsonBool{object.replace_caption_}); + if (object.new_caption_) { + jo("new_caption", ToJson(*object.new_caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::MessageExtendedMedia &object) { + td_api::downcast_call(const_cast<td_api::MessageExtendedMedia &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPreview &object) { + auto jo = jv.enter_object(); + jo("@type", "messageExtendedMediaPreview"); + jo("width", object.width_); + jo("height", object.height_); + jo("duration", object.duration_); + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "messageExtendedMediaPhoto"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageExtendedMediaVideo"); + if (object.video_) { + jo("video", ToJson(*object.video_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaUnsupported &object) { + auto jo = jv.enter_object(); + jo("@type", "messageExtendedMediaUnsupported"); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::MessageFileType &object) { + td_api::downcast_call(const_cast<td_api::MessageFileType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::messageFileTypePrivate &object) { + auto jo = jv.enter_object(); + jo("@type", "messageFileTypePrivate"); + jo("name", object.name_); +} + +void to_json(JsonValueScope &jv, const td_api::messageFileTypeGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "messageFileTypeGroup"); + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::messageFileTypeUnknown &object) { + auto jo = jv.enter_object(); + jo("@type", "messageFileTypeUnknown"); +} + +void to_json(JsonValueScope &jv, const td_api::messageForwardInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForwardInfo"); + if (object.origin_) { + jo("origin", ToJson(*object.origin_)); + } + jo("date", object.date_); + jo("public_service_announcement_type", object.public_service_announcement_type_); + jo("from_chat_id", object.from_chat_id_); + jo("from_message_id", object.from_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::MessageForwardOrigin &object) { + td_api::downcast_call(const_cast<td_api::MessageForwardOrigin &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginUser &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForwardOriginUser"); + jo("sender_user_id", object.sender_user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChat &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForwardOriginChat"); + jo("sender_chat_id", object.sender_chat_id_); + jo("author_signature", object.author_signature_); +} + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginHiddenUser &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForwardOriginHiddenUser"); + jo("sender_name", object.sender_name_); +} + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChannel &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForwardOriginChannel"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + jo("author_signature", object.author_signature_); +} + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginMessageImport &object) { + auto jo = jv.enter_object(); + jo("@type", "messageForwardOriginMessageImport"); + jo("sender_name", object.sender_name_); +} + +void to_json(JsonValueScope &jv, const td_api::messageInteractionInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageInteractionInfo"); + jo("view_count", object.view_count_); + jo("forward_count", object.forward_count_); + if (object.reply_info_) { + jo("reply_info", ToJson(*object.reply_info_)); + } + jo("reactions", ToJson(object.reactions_)); +} + +void to_json(JsonValueScope &jv, const td_api::messageLink &object) { + auto jo = jv.enter_object(); + jo("@type", "messageLink"); + jo("link", object.link_); + jo("is_public", JsonBool{object.is_public_}); +} + +void to_json(JsonValueScope &jv, const td_api::messageLinkInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageLinkInfo"); + jo("is_public", JsonBool{object.is_public_}); + jo("chat_id", object.chat_id_); + jo("message_thread_id", object.message_thread_id_); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } + jo("media_timestamp", object.media_timestamp_); + jo("for_album", JsonBool{object.for_album_}); +} + +void to_json(JsonValueScope &jv, const td_api::messagePosition &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePosition"); + jo("position", object.position_); + jo("message_id", object.message_id_); + jo("date", object.date_); +} + +void to_json(JsonValueScope &jv, const td_api::messagePositions &object) { + auto jo = jv.enter_object(); + jo("@type", "messagePositions"); + jo("total_count", object.total_count_); + jo("positions", ToJson(object.positions_)); +} + +void to_json(JsonValueScope &jv, const td_api::messageReaction &object) { + auto jo = jv.enter_object(); + jo("@type", "messageReaction"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("total_count", object.total_count_); + jo("is_chosen", JsonBool{object.is_chosen_}); + jo("recent_sender_ids", ToJson(object.recent_sender_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::messageReplyInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageReplyInfo"); + jo("reply_count", object.reply_count_); + jo("recent_replier_ids", ToJson(object.recent_replier_ids_)); + jo("last_read_inbox_message_id", object.last_read_inbox_message_id_); + jo("last_read_outbox_message_id", object.last_read_outbox_message_id_); + jo("last_message_id", object.last_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::MessageSchedulingState &object) { + td_api::downcast_call(const_cast<td_api::MessageSchedulingState &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendAtDate &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSchedulingStateSendAtDate"); + jo("send_date", object.send_date_); +} + +void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendWhenOnline &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSchedulingStateSendWhenOnline"); +} + +void to_json(JsonValueScope &jv, const td_api::MessageSender &object) { + td_api::downcast_call(const_cast<td_api::MessageSender &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::messageSenderUser &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSenderUser"); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageSenderChat &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSenderChat"); + jo("chat_id", object.chat_id_); +} + +void to_json(JsonValueScope &jv, const td_api::messageSenders &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSenders"); + jo("total_count", object.total_count_); + jo("senders", ToJson(object.senders_)); +} + +void to_json(JsonValueScope &jv, const td_api::MessageSendingState &object) { + td_api::downcast_call(const_cast<td_api::MessageSendingState &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::messageSendingStatePending &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSendingStatePending"); +} + +void to_json(JsonValueScope &jv, const td_api::messageSendingStateFailed &object) { + auto jo = jv.enter_object(); + jo("@type", "messageSendingStateFailed"); + jo("error_code", object.error_code_); + jo("error_message", object.error_message_); + jo("can_retry", JsonBool{object.can_retry_}); + jo("need_another_sender", JsonBool{object.need_another_sender_}); + jo("retry_after", object.retry_after_); +} + +void to_json(JsonValueScope &jv, const td_api::messageStatistics &object) { + auto jo = jv.enter_object(); + jo("@type", "messageStatistics"); + if (object.message_interaction_graph_) { + jo("message_interaction_graph", ToJson(*object.message_interaction_graph_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messageThreadInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "messageThreadInfo"); + jo("chat_id", object.chat_id_); + jo("message_thread_id", object.message_thread_id_); + if (object.reply_info_) { + jo("reply_info", ToJson(*object.reply_info_)); + } + jo("unread_message_count", object.unread_message_count_); + jo("messages", ToJson(object.messages_)); + if (object.draft_message_) { + jo("draft_message", ToJson(*object.draft_message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::messages &object) { + auto jo = jv.enter_object(); + jo("@type", "messages"); + jo("total_count", object.total_count_); + jo("messages", ToJson(object.messages_)); +} + +void to_json(JsonValueScope &jv, const td_api::minithumbnail &object) { + auto jo = jv.enter_object(); + jo("@type", "minithumbnail"); + jo("width", object.width_); + jo("height", object.height_); + jo("data", base64_encode(object.data_)); +} + +void to_json(JsonValueScope &jv, const td_api::networkStatistics &object) { + auto jo = jv.enter_object(); + jo("@type", "networkStatistics"); + jo("since_date", object.since_date_); + jo("entries", ToJson(object.entries_)); +} + +void to_json(JsonValueScope &jv, const td_api::NetworkStatisticsEntry &object) { + td_api::downcast_call(const_cast<td_api::NetworkStatisticsEntry &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryFile &object) { + auto jo = jv.enter_object(); + jo("@type", "networkStatisticsEntryFile"); + if (object.file_type_) { + jo("file_type", ToJson(*object.file_type_)); + } + if (object.network_type_) { + jo("network_type", ToJson(*object.network_type_)); + } + jo("sent_bytes", object.sent_bytes_); + jo("received_bytes", object.received_bytes_); +} + +void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryCall &object) { + auto jo = jv.enter_object(); + jo("@type", "networkStatisticsEntryCall"); + if (object.network_type_) { + jo("network_type", ToJson(*object.network_type_)); + } + jo("sent_bytes", object.sent_bytes_); + jo("received_bytes", object.received_bytes_); + jo("duration", object.duration_); +} + +void to_json(JsonValueScope &jv, const td_api::NetworkType &object) { + td_api::downcast_call(const_cast<td_api::NetworkType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::networkTypeNone &object) { + auto jo = jv.enter_object(); + jo("@type", "networkTypeNone"); +} + +void to_json(JsonValueScope &jv, const td_api::networkTypeMobile &object) { + auto jo = jv.enter_object(); + jo("@type", "networkTypeMobile"); +} + +void to_json(JsonValueScope &jv, const td_api::networkTypeMobileRoaming &object) { + auto jo = jv.enter_object(); + jo("@type", "networkTypeMobileRoaming"); +} + +void to_json(JsonValueScope &jv, const td_api::networkTypeWiFi &object) { + auto jo = jv.enter_object(); + jo("@type", "networkTypeWiFi"); +} + +void to_json(JsonValueScope &jv, const td_api::networkTypeOther &object) { + auto jo = jv.enter_object(); + jo("@type", "networkTypeOther"); +} + +void to_json(JsonValueScope &jv, const td_api::notification &object) { + auto jo = jv.enter_object(); + jo("@type", "notification"); + jo("id", object.id_); + jo("date", object.date_); + jo("is_silent", JsonBool{object.is_silent_}); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::notificationGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationGroup"); + jo("id", object.id_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("chat_id", object.chat_id_); + jo("total_count", object.total_count_); + jo("notifications", ToJson(object.notifications_)); +} + +void to_json(JsonValueScope &jv, const td_api::NotificationGroupType &object) { + td_api::downcast_call(const_cast<td_api::NotificationGroupType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMessages &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationGroupTypeMessages"); +} + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMentions &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationGroupTypeMentions"); +} + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeSecretChat &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationGroupTypeSecretChat"); +} + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeCalls &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationGroupTypeCalls"); +} + +void to_json(JsonValueScope &jv, const td_api::NotificationSettingsScope &object) { + td_api::downcast_call(const_cast<td_api::NotificationSettingsScope &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopePrivateChats &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationSettingsScopePrivateChats"); +} + +void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeGroupChats &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationSettingsScopeGroupChats"); +} + +void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeChannelChats &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationSettingsScopeChannelChats"); +} + +void to_json(JsonValueScope &jv, const td_api::notificationSound &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationSound"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("duration", object.duration_); + jo("date", object.date_); + jo("title", object.title_); + jo("data", object.data_); + if (object.sound_) { + jo("sound", ToJson(*object.sound_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::notificationSounds &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationSounds"); + jo("notification_sounds", ToJson(object.notification_sounds_)); +} + +void to_json(JsonValueScope &jv, const td_api::NotificationType &object) { + td_api::downcast_call(const_cast<td_api::NotificationType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationTypeNewMessage"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } + jo("show_preview", JsonBool{object.show_preview_}); +} + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewSecretChat &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationTypeNewSecretChat"); +} + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewCall &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationTypeNewCall"); + jo("call_id", object.call_id_); +} + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewPushMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "notificationTypeNewPushMessage"); + jo("message_id", object.message_id_); + if (object.sender_id_) { + jo("sender_id", ToJson(*object.sender_id_)); + } + jo("sender_name", object.sender_name_); + jo("is_outgoing", JsonBool{object.is_outgoing_}); + if (object.content_) { + jo("content", ToJson(*object.content_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::ok &object) { + auto jo = jv.enter_object(); + jo("@type", "ok"); +} + +void to_json(JsonValueScope &jv, const td_api::OptionValue &object) { + td_api::downcast_call(const_cast<td_api::OptionValue &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::optionValueBoolean &object) { + auto jo = jv.enter_object(); + jo("@type", "optionValueBoolean"); + jo("value", JsonBool{object.value_}); +} + +void to_json(JsonValueScope &jv, const td_api::optionValueEmpty &object) { + auto jo = jv.enter_object(); + jo("@type", "optionValueEmpty"); +} + +void to_json(JsonValueScope &jv, const td_api::optionValueInteger &object) { + auto jo = jv.enter_object(); + jo("@type", "optionValueInteger"); + jo("value", ToJson(JsonInt64{object.value_})); +} + +void to_json(JsonValueScope &jv, const td_api::optionValueString &object) { + auto jo = jv.enter_object(); + jo("@type", "optionValueString"); + jo("value", object.value_); +} + +void to_json(JsonValueScope &jv, const td_api::orderInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "orderInfo"); + jo("name", object.name_); + jo("phone_number", object.phone_number_); + jo("email_address", object.email_address_); + if (object.shipping_address_) { + jo("shipping_address", ToJson(*object.shipping_address_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::PageBlock &object) { + td_api::downcast_call(const_cast<td_api::PageBlock &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockTitle &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockTitle"); + if (object.title_) { + jo("title", ToJson(*object.title_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockSubtitle &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockSubtitle"); + if (object.subtitle_) { + jo("subtitle", ToJson(*object.subtitle_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockAuthorDate &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockAuthorDate"); + if (object.author_) { + jo("author", ToJson(*object.author_)); + } + jo("publish_date", object.publish_date_); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockHeader &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockHeader"); + if (object.header_) { + jo("header", ToJson(*object.header_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockSubheader &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockSubheader"); + if (object.subheader_) { + jo("subheader", ToJson(*object.subheader_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockKicker &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockKicker"); + if (object.kicker_) { + jo("kicker", ToJson(*object.kicker_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockParagraph &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockParagraph"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockPreformatted &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockPreformatted"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("language", object.language_); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockFooter &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockFooter"); + if (object.footer_) { + jo("footer", ToJson(*object.footer_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockDivider &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockDivider"); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockAnchor &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockAnchor"); + jo("name", object.name_); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockList &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockList"); + jo("items", ToJson(object.items_)); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockBlockQuote &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockBlockQuote"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + if (object.credit_) { + jo("credit", ToJson(*object.credit_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockPullQuote &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockPullQuote"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + if (object.credit_) { + jo("credit", ToJson(*object.credit_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockAnimation &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockAnimation"); + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("need_autoplay", JsonBool{object.need_autoplay_}); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockAudio &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockAudio"); + if (object.audio_) { + jo("audio", ToJson(*object.audio_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockPhoto"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockVideo"); + if (object.video_) { + jo("video", ToJson(*object.video_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("need_autoplay", JsonBool{object.need_autoplay_}); + jo("is_looped", JsonBool{object.is_looped_}); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockVoiceNote"); + if (object.voice_note_) { + jo("voice_note", ToJson(*object.voice_note_)); + } + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockCover &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockCover"); + if (object.cover_) { + jo("cover", ToJson(*object.cover_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockEmbedded &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockEmbedded"); + jo("url", object.url_); + jo("html", object.html_); + if (object.poster_photo_) { + jo("poster_photo", ToJson(*object.poster_photo_)); + } + jo("width", object.width_); + jo("height", object.height_); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("is_full_width", JsonBool{object.is_full_width_}); + jo("allow_scrolling", JsonBool{object.allow_scrolling_}); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockEmbeddedPost &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockEmbeddedPost"); + jo("url", object.url_); + jo("author", object.author_); + if (object.author_photo_) { + jo("author_photo", ToJson(*object.author_photo_)); + } + jo("date", object.date_); + jo("page_blocks", ToJson(object.page_blocks_)); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockCollage &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockCollage"); + jo("page_blocks", ToJson(object.page_blocks_)); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockSlideshow &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockSlideshow"); + jo("page_blocks", ToJson(object.page_blocks_)); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockChatLink &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockChatLink"); + jo("title", object.title_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("username", object.username_); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockTable &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockTable"); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } + jo("cells", ToJson(object.cells_)); + jo("is_bordered", JsonBool{object.is_bordered_}); + jo("is_striped", JsonBool{object.is_striped_}); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockDetails &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockDetails"); + if (object.header_) { + jo("header", ToJson(*object.header_)); + } + jo("page_blocks", ToJson(object.page_blocks_)); + jo("is_open", JsonBool{object.is_open_}); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticles &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockRelatedArticles"); + if (object.header_) { + jo("header", ToJson(*object.header_)); + } + jo("articles", ToJson(object.articles_)); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockMap &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockMap"); + if (object.location_) { + jo("location", ToJson(*object.location_)); + } + jo("zoom", object.zoom_); + jo("width", object.width_); + jo("height", object.height_); + if (object.caption_) { + jo("caption", ToJson(*object.caption_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockCaption &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockCaption"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + if (object.credit_) { + jo("credit", ToJson(*object.credit_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::PageBlockHorizontalAlignment &object) { + td_api::downcast_call(const_cast<td_api::PageBlockHorizontalAlignment &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentLeft &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockHorizontalAlignmentLeft"); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentCenter &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockHorizontalAlignmentCenter"); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentRight &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockHorizontalAlignmentRight"); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockListItem &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockListItem"); + jo("label", object.label_); + jo("page_blocks", ToJson(object.page_blocks_)); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticle &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockRelatedArticle"); + jo("url", object.url_); + jo("title", object.title_); + jo("description", object.description_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("author", object.author_); + jo("publish_date", object.publish_date_); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockTableCell &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockTableCell"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("is_header", JsonBool{object.is_header_}); + jo("colspan", object.colspan_); + jo("rowspan", object.rowspan_); + if (object.align_) { + jo("align", ToJson(*object.align_)); + } + if (object.valign_) { + jo("valign", ToJson(*object.valign_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::PageBlockVerticalAlignment &object) { + td_api::downcast_call(const_cast<td_api::PageBlockVerticalAlignment &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentTop &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockVerticalAlignmentTop"); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentMiddle &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockVerticalAlignmentMiddle"); +} + +void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentBottom &object) { + auto jo = jv.enter_object(); + jo("@type", "pageBlockVerticalAlignmentBottom"); +} + +void to_json(JsonValueScope &jv, const td_api::passportAuthorizationForm &object) { + auto jo = jv.enter_object(); + jo("@type", "passportAuthorizationForm"); + jo("id", object.id_); + jo("required_elements", ToJson(object.required_elements_)); + jo("privacy_policy_url", object.privacy_policy_url_); +} + +void to_json(JsonValueScope &jv, const td_api::PassportElement &object) { + td_api::downcast_call(const_cast<td_api::PassportElement &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementPersonalDetails &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementPersonalDetails"); + if (object.personal_details_) { + jo("personal_details", ToJson(*object.personal_details_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementPassport &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementPassport"); + if (object.passport_) { + jo("passport", ToJson(*object.passport_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementDriverLicense &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementDriverLicense"); + if (object.driver_license_) { + jo("driver_license", ToJson(*object.driver_license_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementIdentityCard &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementIdentityCard"); + if (object.identity_card_) { + jo("identity_card", ToJson(*object.identity_card_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementInternalPassport &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementInternalPassport"); + if (object.internal_passport_) { + jo("internal_passport", ToJson(*object.internal_passport_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementAddress"); + if (object.address_) { + jo("address", ToJson(*object.address_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementUtilityBill &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementUtilityBill"); + if (object.utility_bill_) { + jo("utility_bill", ToJson(*object.utility_bill_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementBankStatement &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementBankStatement"); + if (object.bank_statement_) { + jo("bank_statement", ToJson(*object.bank_statement_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementRentalAgreement &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementRentalAgreement"); + if (object.rental_agreement_) { + jo("rental_agreement", ToJson(*object.rental_agreement_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementPassportRegistration &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementPassportRegistration"); + if (object.passport_registration_) { + jo("passport_registration", ToJson(*object.passport_registration_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTemporaryRegistration &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTemporaryRegistration"); + if (object.temporary_registration_) { + jo("temporary_registration", ToJson(*object.temporary_registration_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::passportElementPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementPhoneNumber"); + jo("phone_number", object.phone_number_); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementEmailAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementEmailAddress"); + jo("email_address", object.email_address_); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementError &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementError"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("message", object.message_); + if (object.source_) { + jo("source", ToJson(*object.source_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::PassportElementErrorSource &object) { + td_api::downcast_call(const_cast<td_api::PassportElementErrorSource &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceUnspecified &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceUnspecified"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceDataField &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceDataField"); + jo("field_name", object.field_name_); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFrontSide &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceFrontSide"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceReverseSide &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceReverseSide"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceSelfie &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceSelfie"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFile &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceTranslationFile"); + jo("file_index", object.file_index_); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFiles &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceTranslationFiles"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFile &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceFile"); + jo("file_index", object.file_index_); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFiles &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementErrorSourceFiles"); +} + +void to_json(JsonValueScope &jv, const td_api::PassportElementType &object) { + td_api::downcast_call(const_cast<td_api::PassportElementType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePersonalDetails &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypePersonalDetails"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePassport &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypePassport"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeDriverLicense &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeDriverLicense"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeIdentityCard &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeIdentityCard"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeInternalPassport &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeInternalPassport"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeAddress"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeUtilityBill &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeUtilityBill"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeBankStatement &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeBankStatement"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeRentalAgreement &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeRentalAgreement"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePassportRegistration &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypePassportRegistration"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeTemporaryRegistration &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeTemporaryRegistration"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypePhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeEmailAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementTypeEmailAddress"); +} + +void to_json(JsonValueScope &jv, const td_api::passportElements &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElements"); + jo("elements", ToJson(object.elements_)); +} + +void to_json(JsonValueScope &jv, const td_api::passportElementsWithErrors &object) { + auto jo = jv.enter_object(); + jo("@type", "passportElementsWithErrors"); + jo("elements", ToJson(object.elements_)); + jo("errors", ToJson(object.errors_)); +} + +void to_json(JsonValueScope &jv, const td_api::passportRequiredElement &object) { + auto jo = jv.enter_object(); + jo("@type", "passportRequiredElement"); + jo("suitable_elements", ToJson(object.suitable_elements_)); +} + +void to_json(JsonValueScope &jv, const td_api::passportSuitableElement &object) { + auto jo = jv.enter_object(); + jo("@type", "passportSuitableElement"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("is_selfie_required", JsonBool{object.is_selfie_required_}); + jo("is_translation_required", JsonBool{object.is_translation_required_}); + jo("is_native_name_required", JsonBool{object.is_native_name_required_}); +} + +void to_json(JsonValueScope &jv, const td_api::passwordState &object) { + auto jo = jv.enter_object(); + jo("@type", "passwordState"); + jo("has_password", JsonBool{object.has_password_}); + jo("password_hint", object.password_hint_); + jo("has_recovery_email_address", JsonBool{object.has_recovery_email_address_}); + jo("has_passport_data", JsonBool{object.has_passport_data_}); + if (object.recovery_email_address_code_info_) { + jo("recovery_email_address_code_info", ToJson(*object.recovery_email_address_code_info_)); + } + jo("login_email_address_pattern", object.login_email_address_pattern_); + jo("pending_reset_date", object.pending_reset_date_); +} + +void to_json(JsonValueScope &jv, const td_api::paymentForm &object) { + auto jo = jv.enter_object(); + jo("@type", "paymentForm"); + jo("id", ToJson(JsonInt64{object.id_})); + if (object.invoice_) { + jo("invoice", ToJson(*object.invoice_)); + } + jo("seller_bot_user_id", object.seller_bot_user_id_); + jo("payment_provider_user_id", object.payment_provider_user_id_); + if (object.payment_provider_) { + jo("payment_provider", ToJson(*object.payment_provider_)); + } + jo("additional_payment_options", ToJson(object.additional_payment_options_)); + if (object.saved_order_info_) { + jo("saved_order_info", ToJson(*object.saved_order_info_)); + } + jo("saved_credentials", ToJson(object.saved_credentials_)); + jo("can_save_credentials", JsonBool{object.can_save_credentials_}); + jo("need_password", JsonBool{object.need_password_}); + jo("product_title", object.product_title_); + if (object.product_description_) { + jo("product_description", ToJson(*object.product_description_)); + } + if (object.product_photo_) { + jo("product_photo", ToJson(*object.product_photo_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::paymentOption &object) { + auto jo = jv.enter_object(); + jo("@type", "paymentOption"); + jo("title", object.title_); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::PaymentProvider &object) { + td_api::downcast_call(const_cast<td_api::PaymentProvider &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::paymentProviderSmartGlocal &object) { + auto jo = jv.enter_object(); + jo("@type", "paymentProviderSmartGlocal"); + jo("public_token", object.public_token_); +} + +void to_json(JsonValueScope &jv, const td_api::paymentProviderStripe &object) { + auto jo = jv.enter_object(); + jo("@type", "paymentProviderStripe"); + jo("publishable_key", object.publishable_key_); + jo("need_country", JsonBool{object.need_country_}); + jo("need_postal_code", JsonBool{object.need_postal_code_}); + jo("need_cardholder_name", JsonBool{object.need_cardholder_name_}); +} + +void to_json(JsonValueScope &jv, const td_api::paymentProviderOther &object) { + auto jo = jv.enter_object(); + jo("@type", "paymentProviderOther"); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::paymentReceipt &object) { + auto jo = jv.enter_object(); + jo("@type", "paymentReceipt"); + jo("title", object.title_); + if (object.description_) { + jo("description", ToJson(*object.description_)); + } + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("date", object.date_); + jo("seller_bot_user_id", object.seller_bot_user_id_); + jo("payment_provider_user_id", object.payment_provider_user_id_); + if (object.invoice_) { + jo("invoice", ToJson(*object.invoice_)); + } + if (object.order_info_) { + jo("order_info", ToJson(*object.order_info_)); + } + if (object.shipping_option_) { + jo("shipping_option", ToJson(*object.shipping_option_)); + } + jo("credentials_title", object.credentials_title_); + jo("tip_amount", object.tip_amount_); +} + +void to_json(JsonValueScope &jv, const td_api::paymentResult &object) { + auto jo = jv.enter_object(); + jo("@type", "paymentResult"); + jo("success", JsonBool{object.success_}); + jo("verification_url", object.verification_url_); +} + +void to_json(JsonValueScope &jv, const td_api::personalDetails &object) { + auto jo = jv.enter_object(); + jo("@type", "personalDetails"); + jo("first_name", object.first_name_); + jo("middle_name", object.middle_name_); + jo("last_name", object.last_name_); + jo("native_first_name", object.native_first_name_); + jo("native_middle_name", object.native_middle_name_); + jo("native_last_name", object.native_last_name_); + if (object.birthdate_) { + jo("birthdate", ToJson(*object.birthdate_)); + } + jo("gender", object.gender_); + jo("country_code", object.country_code_); + jo("residence_country_code", object.residence_country_code_); +} + +void to_json(JsonValueScope &jv, const td_api::personalDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "personalDocument"); + jo("files", ToJson(object.files_)); + jo("translation", ToJson(object.translation_)); +} + +void to_json(JsonValueScope &jv, const td_api::phoneNumberInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "phoneNumberInfo"); + if (object.country_) { + jo("country", ToJson(*object.country_)); + } + jo("country_calling_code", object.country_calling_code_); + jo("formatted_phone_number", object.formatted_phone_number_); +} + +void to_json(JsonValueScope &jv, const td_api::photo &object) { + auto jo = jv.enter_object(); + jo("@type", "photo"); + jo("has_stickers", JsonBool{object.has_stickers_}); + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + jo("sizes", ToJson(object.sizes_)); +} + +void to_json(JsonValueScope &jv, const td_api::photoSize &object) { + auto jo = jv.enter_object(); + jo("@type", "photoSize"); + jo("type", object.type_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("width", object.width_); + jo("height", object.height_); + jo("progressive_sizes", ToJson(object.progressive_sizes_)); +} + +void to_json(JsonValueScope &jv, const td_api::point &object) { + auto jo = jv.enter_object(); + jo("@type", "point"); + jo("x", object.x_); + jo("y", object.y_); +} + +void to_json(JsonValueScope &jv, const td_api::poll &object) { + auto jo = jv.enter_object(); + jo("@type", "poll"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("question", object.question_); + jo("options", ToJson(object.options_)); + jo("total_voter_count", object.total_voter_count_); + jo("recent_voter_user_ids", ToJson(object.recent_voter_user_ids_)); + jo("is_anonymous", JsonBool{object.is_anonymous_}); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("open_period", object.open_period_); + jo("close_date", object.close_date_); + jo("is_closed", JsonBool{object.is_closed_}); +} + +void to_json(JsonValueScope &jv, const td_api::pollOption &object) { + auto jo = jv.enter_object(); + jo("@type", "pollOption"); + jo("text", object.text_); + jo("voter_count", object.voter_count_); + jo("vote_percentage", object.vote_percentage_); + jo("is_chosen", JsonBool{object.is_chosen_}); + jo("is_being_chosen", JsonBool{object.is_being_chosen_}); +} + +void to_json(JsonValueScope &jv, const td_api::PollType &object) { + td_api::downcast_call(const_cast<td_api::PollType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::pollTypeRegular &object) { + auto jo = jv.enter_object(); + jo("@type", "pollTypeRegular"); + jo("allow_multiple_answers", JsonBool{object.allow_multiple_answers_}); +} + +void to_json(JsonValueScope &jv, const td_api::pollTypeQuiz &object) { + auto jo = jv.enter_object(); + jo("@type", "pollTypeQuiz"); + jo("correct_option_id", object.correct_option_id_); + if (object.explanation_) { + jo("explanation", ToJson(*object.explanation_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::PremiumFeature &object) { + td_api::downcast_call(const_cast<td_api::PremiumFeature &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedLimits &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureIncreasedLimits"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedUploadFileSize &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureIncreasedUploadFileSize"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureImprovedDownloadSpeed &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureImprovedDownloadSpeed"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureVoiceRecognition &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureVoiceRecognition"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureDisabledAds &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureDisabledAds"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueReactions &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureUniqueReactions"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueStickers &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureUniqueStickers"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureCustomEmoji &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureCustomEmoji"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureAdvancedChatManagement &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureAdvancedChatManagement"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureProfileBadge &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureProfileBadge"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureEmojiStatus &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureEmojiStatus"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureAnimatedProfilePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureAnimatedProfilePhoto"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureForumTopicIcon &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureForumTopicIcon"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureAppIcons &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatureAppIcons"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeaturePromotionAnimation &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeaturePromotionAnimation"); + if (object.feature_) { + jo("feature", ToJson(*object.feature_)); + } + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::premiumFeatures &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumFeatures"); + jo("features", ToJson(object.features_)); + jo("limits", ToJson(object.limits_)); + if (object.payment_link_) { + jo("payment_link", ToJson(*object.payment_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimit &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimit"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("default_value", object.default_value_); + jo("premium_value", object.premium_value_); +} + +void to_json(JsonValueScope &jv, const td_api::PremiumLimitType &object) { + td_api::downcast_call(const_cast<td_api::PremiumLimitType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSupergroupCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeSupergroupCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedChatCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypePinnedChatCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCreatedPublicChatCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeCreatedPublicChatCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSavedAnimationCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeSavedAnimationCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeFavoriteStickerCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeFavoriteStickerCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeChatFilterCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterChosenChatCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeChatFilterChosenChatCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedArchivedChatCount &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypePinnedArchivedChatCount"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCaptionLength &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeCaptionLength"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeBioLength &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumLimitTypeBioLength"); +} + +void to_json(JsonValueScope &jv, const td_api::premiumPaymentOption &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumPaymentOption"); + jo("currency", object.currency_); + jo("amount", object.amount_); + jo("discount_percentage", object.discount_percentage_); + jo("month_count", object.month_count_); + jo("store_product_id", object.store_product_id_); + if (object.payment_link_) { + jo("payment_link", ToJson(*object.payment_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::premiumState &object) { + auto jo = jv.enter_object(); + jo("@type", "premiumState"); + if (object.state_) { + jo("state", ToJson(*object.state_)); + } + jo("payment_options", ToJson(object.payment_options_)); + jo("animations", ToJson(object.animations_)); +} + +void to_json(JsonValueScope &jv, const td_api::profilePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "profilePhoto"); + jo("id", ToJson(JsonInt64{object.id_})); + if (object.small_) { + jo("small", ToJson(*object.small_)); + } + if (object.big_) { + jo("big", ToJson(*object.big_)); + } + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + jo("has_animation", JsonBool{object.has_animation_}); +} + +void to_json(JsonValueScope &jv, const td_api::proxies &object) { + auto jo = jv.enter_object(); + jo("@type", "proxies"); + jo("proxies", ToJson(object.proxies_)); +} + +void to_json(JsonValueScope &jv, const td_api::proxy &object) { + auto jo = jv.enter_object(); + jo("@type", "proxy"); + jo("id", object.id_); + jo("server", object.server_); + jo("port", object.port_); + jo("last_used_date", object.last_used_date_); + jo("is_enabled", JsonBool{object.is_enabled_}); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::ProxyType &object) { + td_api::downcast_call(const_cast<td_api::ProxyType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::proxyTypeSocks5 &object) { + auto jo = jv.enter_object(); + jo("@type", "proxyTypeSocks5"); + jo("username", object.username_); + jo("password", object.password_); +} + +void to_json(JsonValueScope &jv, const td_api::proxyTypeHttp &object) { + auto jo = jv.enter_object(); + jo("@type", "proxyTypeHttp"); + jo("username", object.username_); + jo("password", object.password_); + jo("http_only", JsonBool{object.http_only_}); +} + +void to_json(JsonValueScope &jv, const td_api::proxyTypeMtproto &object) { + auto jo = jv.enter_object(); + jo("@type", "proxyTypeMtproto"); + jo("secret", object.secret_); +} + +void to_json(JsonValueScope &jv, const td_api::PushMessageContent &object) { + td_api::downcast_call(const_cast<td_api::PushMessageContent &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentHidden &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentHidden"); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentAnimation &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentAnimation"); + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + jo("caption", object.caption_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentAudio &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentAudio"); + if (object.audio_) { + jo("audio", ToJson(*object.audio_)); + } + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentContact &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentContact"); + jo("name", object.name_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentContactRegistered &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentContactRegistered"); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentDocument &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentDocument"); + if (object.document_) { + jo("document", ToJson(*object.document_)); + } + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentGame &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentGame"); + jo("title", object.title_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentGameScore &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentGameScore"); + jo("title", object.title_); + jo("score", object.score_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentInvoice &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentInvoice"); + jo("price", object.price_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentLocation &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentLocation"); + jo("is_live", JsonBool{object.is_live_}); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentPhoto"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("caption", object.caption_); + jo("is_secret", JsonBool{object.is_secret_}); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentPoll &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentPoll"); + jo("question", object.question_); + jo("is_regular", JsonBool{object.is_regular_}); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentScreenshotTaken &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentScreenshotTaken"); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentSticker &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentSticker"); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } + jo("emoji", object.emoji_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentText &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentText"); + jo("text", object.text_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideo &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentVideo"); + if (object.video_) { + jo("video", ToJson(*object.video_)); + } + jo("caption", object.caption_); + jo("is_secret", JsonBool{object.is_secret_}); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideoNote &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentVideoNote"); + if (object.video_note_) { + jo("video_note", ToJson(*object.video_note_)); + } + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentVoiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentVoiceNote"); + if (object.voice_note_) { + jo("voice_note", ToJson(*object.voice_note_)); + } + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentBasicGroupChatCreate &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentBasicGroupChatCreate"); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatAddMembers &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentChatAddMembers"); + jo("member_name", object.member_name_); + jo("is_current_user", JsonBool{object.is_current_user_}); + jo("is_returned", JsonBool{object.is_returned_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentChatChangePhoto"); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangeTitle &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentChatChangeTitle"); + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatSetTheme &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentChatSetTheme"); + jo("theme_name", object.theme_name_); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatDeleteMember &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentChatDeleteMember"); + jo("member_name", object.member_name_); + jo("is_current_user", JsonBool{object.is_current_user_}); + jo("is_left", JsonBool{object.is_left_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByLink &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentChatJoinByLink"); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByRequest &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentChatJoinByRequest"); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentRecurringPayment &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentRecurringPayment"); + jo("amount", object.amount_); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentMessageForwards &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentMessageForwards"); + jo("total_count", object.total_count_); +} + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentMediaAlbum &object) { + auto jo = jv.enter_object(); + jo("@type", "pushMessageContentMediaAlbum"); + jo("total_count", object.total_count_); + jo("has_photos", JsonBool{object.has_photos_}); + jo("has_videos", JsonBool{object.has_videos_}); + jo("has_audios", JsonBool{object.has_audios_}); + jo("has_documents", JsonBool{object.has_documents_}); +} + +void to_json(JsonValueScope &jv, const td_api::pushReceiverId &object) { + auto jo = jv.enter_object(); + jo("@type", "pushReceiverId"); + jo("id", ToJson(JsonInt64{object.id_})); +} + +void to_json(JsonValueScope &jv, const td_api::ReactionType &object) { + td_api::downcast_call(const_cast<td_api::ReactionType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::reactionTypeEmoji &object) { + auto jo = jv.enter_object(); + jo("@type", "reactionTypeEmoji"); + jo("emoji", object.emoji_); +} + +void to_json(JsonValueScope &jv, const td_api::reactionTypeCustomEmoji &object) { + auto jo = jv.enter_object(); + jo("@type", "reactionTypeCustomEmoji"); + jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::recommendedChatFilter &object) { + auto jo = jv.enter_object(); + jo("@type", "recommendedChatFilter"); + if (object.filter_) { + jo("filter", ToJson(*object.filter_)); + } + jo("description", object.description_); +} + +void to_json(JsonValueScope &jv, const td_api::recommendedChatFilters &object) { + auto jo = jv.enter_object(); + jo("@type", "recommendedChatFilters"); + jo("chat_filters", ToJson(object.chat_filters_)); +} + +void to_json(JsonValueScope &jv, const td_api::recoveryEmailAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "recoveryEmailAddress"); + jo("recovery_email_address", object.recovery_email_address_); +} + +void to_json(JsonValueScope &jv, const td_api::remoteFile &object) { + auto jo = jv.enter_object(); + jo("@type", "remoteFile"); + jo("id", object.id_); + jo("unique_id", object.unique_id_); + jo("is_uploading_active", JsonBool{object.is_uploading_active_}); + jo("is_uploading_completed", JsonBool{object.is_uploading_completed_}); + jo("uploaded_size", object.uploaded_size_); +} + +void to_json(JsonValueScope &jv, const td_api::ReplyMarkup &object) { + td_api::downcast_call(const_cast<td_api::ReplyMarkup &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::replyMarkupRemoveKeyboard &object) { + auto jo = jv.enter_object(); + jo("@type", "replyMarkupRemoveKeyboard"); + jo("is_personal", JsonBool{object.is_personal_}); +} + +void to_json(JsonValueScope &jv, const td_api::replyMarkupForceReply &object) { + auto jo = jv.enter_object(); + jo("@type", "replyMarkupForceReply"); + jo("is_personal", JsonBool{object.is_personal_}); + jo("input_field_placeholder", object.input_field_placeholder_); +} + +void to_json(JsonValueScope &jv, const td_api::replyMarkupShowKeyboard &object) { + auto jo = jv.enter_object(); + jo("@type", "replyMarkupShowKeyboard"); + jo("rows", ToJson(object.rows_)); + jo("resize_keyboard", JsonBool{object.resize_keyboard_}); + jo("one_time", JsonBool{object.one_time_}); + jo("is_personal", JsonBool{object.is_personal_}); + jo("input_field_placeholder", object.input_field_placeholder_); +} + +void to_json(JsonValueScope &jv, const td_api::replyMarkupInlineKeyboard &object) { + auto jo = jv.enter_object(); + jo("@type", "replyMarkupInlineKeyboard"); + jo("rows", ToJson(object.rows_)); +} + +void to_json(JsonValueScope &jv, const td_api::ResetPasswordResult &object) { + td_api::downcast_call(const_cast<td_api::ResetPasswordResult &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::resetPasswordResultOk &object) { + auto jo = jv.enter_object(); + jo("@type", "resetPasswordResultOk"); +} + +void to_json(JsonValueScope &jv, const td_api::resetPasswordResultPending &object) { + auto jo = jv.enter_object(); + jo("@type", "resetPasswordResultPending"); + jo("pending_reset_date", object.pending_reset_date_); +} + +void to_json(JsonValueScope &jv, const td_api::resetPasswordResultDeclined &object) { + auto jo = jv.enter_object(); + jo("@type", "resetPasswordResultDeclined"); + jo("retry_date", object.retry_date_); +} + +void to_json(JsonValueScope &jv, const td_api::RichText &object) { + td_api::downcast_call(const_cast<td_api::RichText &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::richTextPlain &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextPlain"); + jo("text", object.text_); +} + +void to_json(JsonValueScope &jv, const td_api::richTextBold &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextBold"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextItalic &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextItalic"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextUnderline &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextUnderline"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextStrikethrough &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextStrikethrough"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextFixed &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextFixed"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextUrl"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("url", object.url_); + jo("is_cached", JsonBool{object.is_cached_}); +} + +void to_json(JsonValueScope &jv, const td_api::richTextEmailAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextEmailAddress"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("email_address", object.email_address_); +} + +void to_json(JsonValueScope &jv, const td_api::richTextSubscript &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextSubscript"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextSuperscript &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextSuperscript"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextMarked &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextMarked"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::richTextPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextPhoneNumber"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("phone_number", object.phone_number_); +} + +void to_json(JsonValueScope &jv, const td_api::richTextIcon &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextIcon"); + if (object.document_) { + jo("document", ToJson(*object.document_)); + } + jo("width", object.width_); + jo("height", object.height_); +} + +void to_json(JsonValueScope &jv, const td_api::richTextReference &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextReference"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("anchor_name", object.anchor_name_); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::richTextAnchor &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextAnchor"); + jo("name", object.name_); +} + +void to_json(JsonValueScope &jv, const td_api::richTextAnchorLink &object) { + auto jo = jv.enter_object(); + jo("@type", "richTextAnchorLink"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("anchor_name", object.anchor_name_); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::richTexts &object) { + auto jo = jv.enter_object(); + jo("@type", "richTexts"); + jo("texts", ToJson(object.texts_)); +} + +void to_json(JsonValueScope &jv, const td_api::rtmpUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "rtmpUrl"); + jo("url", object.url_); + jo("stream_key", object.stream_key_); +} + +void to_json(JsonValueScope &jv, const td_api::savedCredentials &object) { + auto jo = jv.enter_object(); + jo("@type", "savedCredentials"); + jo("id", object.id_); + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::scopeNotificationSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "scopeNotificationSettings"); + jo("mute_for", object.mute_for_); + jo("sound_id", ToJson(JsonInt64{object.sound_id_})); + jo("show_preview", JsonBool{object.show_preview_}); + jo("disable_pinned_message_notifications", JsonBool{object.disable_pinned_message_notifications_}); + jo("disable_mention_notifications", JsonBool{object.disable_mention_notifications_}); +} + +void to_json(JsonValueScope &jv, const td_api::seconds &object) { + auto jo = jv.enter_object(); + jo("@type", "seconds"); + jo("seconds", object.seconds_); +} + +void to_json(JsonValueScope &jv, const td_api::secretChat &object) { + auto jo = jv.enter_object(); + jo("@type", "secretChat"); + jo("id", object.id_); + jo("user_id", object.user_id_); + if (object.state_) { + jo("state", ToJson(*object.state_)); + } + jo("is_outbound", JsonBool{object.is_outbound_}); + jo("key_hash", base64_encode(object.key_hash_)); + jo("layer", object.layer_); +} + +void to_json(JsonValueScope &jv, const td_api::SecretChatState &object) { + td_api::downcast_call(const_cast<td_api::SecretChatState &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::secretChatStatePending &object) { + auto jo = jv.enter_object(); + jo("@type", "secretChatStatePending"); +} + +void to_json(JsonValueScope &jv, const td_api::secretChatStateReady &object) { + auto jo = jv.enter_object(); + jo("@type", "secretChatStateReady"); +} + +void to_json(JsonValueScope &jv, const td_api::secretChatStateClosed &object) { + auto jo = jv.enter_object(); + jo("@type", "secretChatStateClosed"); +} + +void to_json(JsonValueScope &jv, const td_api::sentWebAppMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "sentWebAppMessage"); + jo("inline_message_id", object.inline_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::session &object) { + auto jo = jv.enter_object(); + jo("@type", "session"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("is_current", JsonBool{object.is_current_}); + jo("is_password_pending", JsonBool{object.is_password_pending_}); + jo("can_accept_secret_chats", JsonBool{object.can_accept_secret_chats_}); + jo("can_accept_calls", JsonBool{object.can_accept_calls_}); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("api_id", object.api_id_); + jo("application_name", object.application_name_); + jo("application_version", object.application_version_); + jo("is_official_application", JsonBool{object.is_official_application_}); + jo("device_model", object.device_model_); + jo("platform", object.platform_); + jo("system_version", object.system_version_); + jo("log_in_date", object.log_in_date_); + jo("last_active_date", object.last_active_date_); + jo("ip", object.ip_); + jo("country", object.country_); + jo("region", object.region_); +} + +void to_json(JsonValueScope &jv, const td_api::SessionType &object) { + td_api::downcast_call(const_cast<td_api::SessionType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeAndroid &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeAndroid"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeApple &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeApple"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeBrave &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeBrave"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeChrome &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeChrome"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeEdge &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeEdge"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeFirefox &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeFirefox"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeIpad &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeIpad"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeIphone &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeIphone"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeLinux &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeLinux"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeMac &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeMac"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeOpera &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeOpera"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeSafari &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeSafari"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeUbuntu &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeUbuntu"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeUnknown &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeUnknown"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeVivaldi &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeVivaldi"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeWindows &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeWindows"); +} + +void to_json(JsonValueScope &jv, const td_api::sessionTypeXbox &object) { + auto jo = jv.enter_object(); + jo("@type", "sessionTypeXbox"); +} + +void to_json(JsonValueScope &jv, const td_api::sessions &object) { + auto jo = jv.enter_object(); + jo("@type", "sessions"); + jo("sessions", ToJson(object.sessions_)); + jo("inactive_session_ttl_days", object.inactive_session_ttl_days_); +} + +void to_json(JsonValueScope &jv, const td_api::shippingOption &object) { + auto jo = jv.enter_object(); + jo("@type", "shippingOption"); + jo("id", object.id_); + jo("title", object.title_); + jo("price_parts", ToJson(object.price_parts_)); +} + +void to_json(JsonValueScope &jv, const td_api::SpeechRecognitionResult &object) { + td_api::downcast_call(const_cast<td_api::SpeechRecognitionResult &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultPending &object) { + auto jo = jv.enter_object(); + jo("@type", "speechRecognitionResultPending"); + jo("partial_text", object.partial_text_); +} + +void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultText &object) { + auto jo = jv.enter_object(); + jo("@type", "speechRecognitionResultText"); + jo("text", object.text_); +} + +void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultError &object) { + auto jo = jv.enter_object(); + jo("@type", "speechRecognitionResultError"); + if (object.error_) { + jo("error", ToJson(*object.error_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::sponsoredMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "sponsoredMessage"); + jo("message_id", object.message_id_); + jo("is_recommended", JsonBool{object.is_recommended_}); + jo("sponsor_chat_id", object.sponsor_chat_id_); + if (object.sponsor_chat_info_) { + jo("sponsor_chat_info", ToJson(*object.sponsor_chat_info_)); + } + jo("show_chat_photo", JsonBool{object.show_chat_photo_}); + if (object.link_) { + jo("link", ToJson(*object.link_)); + } + if (object.content_) { + jo("content", ToJson(*object.content_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::sponsoredMessages &object) { + auto jo = jv.enter_object(); + jo("@type", "sponsoredMessages"); + jo("messages", ToJson(object.messages_)); + jo("messages_between", object.messages_between_); +} + +void to_json(JsonValueScope &jv, const td_api::StatisticalGraph &object) { + td_api::downcast_call(const_cast<td_api::StatisticalGraph &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::statisticalGraphData &object) { + auto jo = jv.enter_object(); + jo("@type", "statisticalGraphData"); + jo("json_data", object.json_data_); + jo("zoom_token", object.zoom_token_); +} + +void to_json(JsonValueScope &jv, const td_api::statisticalGraphAsync &object) { + auto jo = jv.enter_object(); + jo("@type", "statisticalGraphAsync"); + jo("token", object.token_); +} + +void to_json(JsonValueScope &jv, const td_api::statisticalGraphError &object) { + auto jo = jv.enter_object(); + jo("@type", "statisticalGraphError"); + jo("error_message", object.error_message_); +} + +void to_json(JsonValueScope &jv, const td_api::statisticalValue &object) { + auto jo = jv.enter_object(); + jo("@type", "statisticalValue"); + jo("value", object.value_); + jo("previous_value", object.previous_value_); + jo("growth_rate_percentage", object.growth_rate_percentage_); +} + +void to_json(JsonValueScope &jv, const td_api::sticker &object) { + auto jo = jv.enter_object(); + jo("@type", "sticker"); + jo("set_id", ToJson(JsonInt64{object.set_id_})); + jo("width", object.width_); + jo("height", object.height_); + jo("emoji", object.emoji_); + if (object.format_) { + jo("format", ToJson(*object.format_)); + } + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + if (object.mask_position_) { + jo("mask_position", ToJson(*object.mask_position_)); + } + jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_})); + jo("outline", ToJson(object.outline_)); + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("is_premium", JsonBool{object.is_premium_}); + if (object.premium_animation_) { + jo("premium_animation", ToJson(*object.premium_animation_)); + } + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::StickerFormat &object) { + td_api::downcast_call(const_cast<td_api::StickerFormat &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::stickerFormatWebp &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerFormatWebp"); +} + +void to_json(JsonValueScope &jv, const td_api::stickerFormatTgs &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerFormatTgs"); +} + +void to_json(JsonValueScope &jv, const td_api::stickerFormatWebm &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerFormatWebm"); +} + +void to_json(JsonValueScope &jv, const td_api::stickerSet &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerSet"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("title", object.title_); + jo("name", object.name_); + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("thumbnail_outline", ToJson(object.thumbnail_outline_)); + jo("is_installed", JsonBool{object.is_installed_}); + jo("is_archived", JsonBool{object.is_archived_}); + jo("is_official", JsonBool{object.is_official_}); + if (object.sticker_format_) { + jo("sticker_format", ToJson(*object.sticker_format_)); + } + if (object.sticker_type_) { + jo("sticker_type", ToJson(*object.sticker_type_)); + } + jo("is_viewed", JsonBool{object.is_viewed_}); + jo("stickers", ToJson(object.stickers_)); + jo("emojis", ToJson(object.emojis_)); +} + +void to_json(JsonValueScope &jv, const td_api::stickerSetInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerSetInfo"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("title", object.title_); + jo("name", object.name_); + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + jo("thumbnail_outline", ToJson(object.thumbnail_outline_)); + jo("is_installed", JsonBool{object.is_installed_}); + jo("is_archived", JsonBool{object.is_archived_}); + jo("is_official", JsonBool{object.is_official_}); + if (object.sticker_format_) { + jo("sticker_format", ToJson(*object.sticker_format_)); + } + if (object.sticker_type_) { + jo("sticker_type", ToJson(*object.sticker_type_)); + } + jo("is_viewed", JsonBool{object.is_viewed_}); + jo("size", object.size_); + jo("covers", ToJson(object.covers_)); +} + +void to_json(JsonValueScope &jv, const td_api::stickerSets &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerSets"); + jo("total_count", object.total_count_); + jo("sets", ToJson(object.sets_)); +} + +void to_json(JsonValueScope &jv, const td_api::StickerType &object) { + td_api::downcast_call(const_cast<td_api::StickerType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::stickerTypeRegular &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerTypeRegular"); +} + +void to_json(JsonValueScope &jv, const td_api::stickerTypeMask &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerTypeMask"); +} + +void to_json(JsonValueScope &jv, const td_api::stickerTypeCustomEmoji &object) { + auto jo = jv.enter_object(); + jo("@type", "stickerTypeCustomEmoji"); +} + +void to_json(JsonValueScope &jv, const td_api::stickers &object) { + auto jo = jv.enter_object(); + jo("@type", "stickers"); + jo("stickers", ToJson(object.stickers_)); +} + +void to_json(JsonValueScope &jv, const td_api::storageStatistics &object) { + auto jo = jv.enter_object(); + jo("@type", "storageStatistics"); + jo("size", object.size_); + jo("count", object.count_); + jo("by_chat", ToJson(object.by_chat_)); +} + +void to_json(JsonValueScope &jv, const td_api::storageStatisticsByChat &object) { + auto jo = jv.enter_object(); + jo("@type", "storageStatisticsByChat"); + jo("chat_id", object.chat_id_); + jo("size", object.size_); + jo("count", object.count_); + jo("by_file_type", ToJson(object.by_file_type_)); +} + +void to_json(JsonValueScope &jv, const td_api::storageStatisticsByFileType &object) { + auto jo = jv.enter_object(); + jo("@type", "storageStatisticsByFileType"); + if (object.file_type_) { + jo("file_type", ToJson(*object.file_type_)); + } + jo("size", object.size_); + jo("count", object.count_); +} + +void to_json(JsonValueScope &jv, const td_api::storageStatisticsFast &object) { + auto jo = jv.enter_object(); + jo("@type", "storageStatisticsFast"); + jo("files_size", object.files_size_); + jo("file_count", object.file_count_); + jo("database_size", object.database_size_); + jo("language_pack_database_size", object.language_pack_database_size_); + jo("log_size", object.log_size_); +} + +void to_json(JsonValueScope &jv, const td_api::SuggestedAction &object) { + td_api::downcast_call(const_cast<td_api::SuggestedAction &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::suggestedActionEnableArchiveAndMuteNewChats &object) { + auto jo = jv.enter_object(); + jo("@type", "suggestedActionEnableArchiveAndMuteNewChats"); +} + +void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPassword &object) { + auto jo = jv.enter_object(); + jo("@type", "suggestedActionCheckPassword"); +} + +void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "suggestedActionCheckPhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::suggestedActionViewChecksHint &object) { + auto jo = jv.enter_object(); + jo("@type", "suggestedActionViewChecksHint"); +} + +void to_json(JsonValueScope &jv, const td_api::suggestedActionConvertToBroadcastGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "suggestedActionConvertToBroadcastGroup"); + jo("supergroup_id", object.supergroup_id_); +} + +void to_json(JsonValueScope &jv, const td_api::suggestedActionSetPassword &object) { + auto jo = jv.enter_object(); + jo("@type", "suggestedActionSetPassword"); + jo("authorization_delay", object.authorization_delay_); +} + +void to_json(JsonValueScope &jv, const td_api::supergroup &object) { + auto jo = jv.enter_object(); + jo("@type", "supergroup"); + jo("id", object.id_); + if (object.usernames_) { + jo("usernames", ToJson(*object.usernames_)); + } + jo("date", object.date_); + if (object.status_) { + jo("status", ToJson(*object.status_)); + } + jo("member_count", object.member_count_); + jo("has_linked_chat", JsonBool{object.has_linked_chat_}); + jo("has_location", JsonBool{object.has_location_}); + jo("sign_messages", JsonBool{object.sign_messages_}); + jo("join_to_send_messages", JsonBool{object.join_to_send_messages_}); + jo("join_by_request", JsonBool{object.join_by_request_}); + jo("is_slow_mode_enabled", JsonBool{object.is_slow_mode_enabled_}); + jo("is_channel", JsonBool{object.is_channel_}); + jo("is_broadcast_group", JsonBool{object.is_broadcast_group_}); + jo("is_forum", JsonBool{object.is_forum_}); + jo("is_verified", JsonBool{object.is_verified_}); + jo("restriction_reason", object.restriction_reason_); + jo("is_scam", JsonBool{object.is_scam_}); + jo("is_fake", JsonBool{object.is_fake_}); +} + +void to_json(JsonValueScope &jv, const td_api::supergroupFullInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "supergroupFullInfo"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("description", object.description_); + jo("member_count", object.member_count_); + jo("administrator_count", object.administrator_count_); + jo("restricted_count", object.restricted_count_); + jo("banned_count", object.banned_count_); + jo("linked_chat_id", object.linked_chat_id_); + jo("slow_mode_delay", object.slow_mode_delay_); + jo("slow_mode_delay_expires_in", object.slow_mode_delay_expires_in_); + jo("can_get_members", JsonBool{object.can_get_members_}); + jo("can_set_username", JsonBool{object.can_set_username_}); + jo("can_set_sticker_set", JsonBool{object.can_set_sticker_set_}); + jo("can_set_location", JsonBool{object.can_set_location_}); + jo("can_get_statistics", JsonBool{object.can_get_statistics_}); + jo("is_all_history_available", JsonBool{object.is_all_history_available_}); + jo("sticker_set_id", ToJson(JsonInt64{object.sticker_set_id_})); + if (object.location_) { + jo("location", ToJson(*object.location_)); + } + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } + jo("bot_commands", ToJson(object.bot_commands_)); + jo("upgraded_from_basic_group_id", object.upgraded_from_basic_group_id_); + jo("upgraded_from_max_message_id", object.upgraded_from_max_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::tMeUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "tMeUrl"); + jo("url", object.url_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::TMeUrlType &object) { + td_api::downcast_call(const_cast<td_api::TMeUrlType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeUser &object) { + auto jo = jv.enter_object(); + jo("@type", "tMeUrlTypeUser"); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeSupergroup &object) { + auto jo = jv.enter_object(); + jo("@type", "tMeUrlTypeSupergroup"); + jo("supergroup_id", object.supergroup_id_); +} + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeChatInvite &object) { + auto jo = jv.enter_object(); + jo("@type", "tMeUrlTypeChatInvite"); + if (object.info_) { + jo("info", ToJson(*object.info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeStickerSet &object) { + auto jo = jv.enter_object(); + jo("@type", "tMeUrlTypeStickerSet"); + jo("sticker_set_id", ToJson(JsonInt64{object.sticker_set_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::tMeUrls &object) { + auto jo = jv.enter_object(); + jo("@type", "tMeUrls"); + jo("urls", ToJson(object.urls_)); +} + +void to_json(JsonValueScope &jv, const td_api::TargetChat &object) { + td_api::downcast_call(const_cast<td_api::TargetChat &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::targetChatCurrent &object) { + auto jo = jv.enter_object(); + jo("@type", "targetChatCurrent"); +} + +void to_json(JsonValueScope &jv, const td_api::targetChatChosen &object) { + auto jo = jv.enter_object(); + jo("@type", "targetChatChosen"); + jo("allow_user_chats", JsonBool{object.allow_user_chats_}); + jo("allow_bot_chats", JsonBool{object.allow_bot_chats_}); + jo("allow_group_chats", JsonBool{object.allow_group_chats_}); + jo("allow_channel_chats", JsonBool{object.allow_channel_chats_}); +} + +void to_json(JsonValueScope &jv, const td_api::targetChatInternalLink &object) { + auto jo = jv.enter_object(); + jo("@type", "targetChatInternalLink"); + if (object.link_) { + jo("link", ToJson(*object.link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::temporaryPasswordState &object) { + auto jo = jv.enter_object(); + jo("@type", "temporaryPasswordState"); + jo("has_password", JsonBool{object.has_password_}); + jo("valid_for", object.valid_for_); +} + +void to_json(JsonValueScope &jv, const td_api::termsOfService &object) { + auto jo = jv.enter_object(); + jo("@type", "termsOfService"); + if (object.text_) { + jo("text", ToJson(*object.text_)); + } + jo("min_user_age", object.min_user_age_); + jo("show_popup", JsonBool{object.show_popup_}); +} + +void to_json(JsonValueScope &jv, const td_api::testBytes &object) { + auto jo = jv.enter_object(); + jo("@type", "testBytes"); + jo("value", base64_encode(object.value_)); +} + +void to_json(JsonValueScope &jv, const td_api::testInt &object) { + auto jo = jv.enter_object(); + jo("@type", "testInt"); + jo("value", object.value_); +} + +void to_json(JsonValueScope &jv, const td_api::testString &object) { + auto jo = jv.enter_object(); + jo("@type", "testString"); + jo("value", object.value_); +} + +void to_json(JsonValueScope &jv, const td_api::testVectorInt &object) { + auto jo = jv.enter_object(); + jo("@type", "testVectorInt"); + jo("value", ToJson(object.value_)); +} + +void to_json(JsonValueScope &jv, const td_api::testVectorIntObject &object) { + auto jo = jv.enter_object(); + jo("@type", "testVectorIntObject"); + jo("value", ToJson(object.value_)); +} + +void to_json(JsonValueScope &jv, const td_api::testVectorString &object) { + auto jo = jv.enter_object(); + jo("@type", "testVectorString"); + jo("value", ToJson(object.value_)); +} + +void to_json(JsonValueScope &jv, const td_api::testVectorStringObject &object) { + auto jo = jv.enter_object(); + jo("@type", "testVectorStringObject"); + jo("value", ToJson(object.value_)); +} + +void to_json(JsonValueScope &jv, const td_api::text &object) { + auto jo = jv.enter_object(); + jo("@type", "text"); + jo("text", object.text_); +} + +void to_json(JsonValueScope &jv, const td_api::textEntities &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntities"); + jo("entities", ToJson(object.entities_)); +} + +void to_json(JsonValueScope &jv, const td_api::textEntity &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntity"); + jo("offset", object.offset_); + jo("length", object.length_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::TextEntityType &object) { + td_api::downcast_call(const_cast<td_api::TextEntityType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeMention &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeMention"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeHashtag &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeHashtag"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeCashtag &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeCashtag"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeBotCommand &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeBotCommand"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeUrl"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeEmailAddress &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeEmailAddress"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypePhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypePhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeBankCardNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeBankCardNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeBold &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeBold"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeItalic &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeItalic"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeUnderline &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeUnderline"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeStrikethrough &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeStrikethrough"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeSpoiler &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeSpoiler"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeCode &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeCode"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypePre &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypePre"); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypePreCode &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypePreCode"); + jo("language", object.language_); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeTextUrl &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeTextUrl"); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeMentionName &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeMentionName"); + jo("user_id", object.user_id_); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeCustomEmoji &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeCustomEmoji"); + jo("custom_emoji_id", ToJson(JsonInt64{object.custom_emoji_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeMediaTimestamp &object) { + auto jo = jv.enter_object(); + jo("@type", "textEntityTypeMediaTimestamp"); + jo("media_timestamp", object.media_timestamp_); +} + +void to_json(JsonValueScope &jv, const td_api::themeSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "themeSettings"); + jo("accent_color", object.accent_color_); + if (object.background_) { + jo("background", ToJson(*object.background_)); + } + if (object.outgoing_message_fill_) { + jo("outgoing_message_fill", ToJson(*object.outgoing_message_fill_)); + } + jo("animate_outgoing_message_fill", JsonBool{object.animate_outgoing_message_fill_}); + jo("outgoing_message_accent_color", object.outgoing_message_accent_color_); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnail &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnail"); + if (object.format_) { + jo("format", ToJson(*object.format_)); + } + jo("width", object.width_); + jo("height", object.height_); + if (object.file_) { + jo("file", ToJson(*object.file_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::ThumbnailFormat &object) { + td_api::downcast_call(const_cast<td_api::ThumbnailFormat &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatJpeg &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnailFormatJpeg"); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatGif &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnailFormatGif"); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatMpeg4 &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnailFormatMpeg4"); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatPng &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnailFormatPng"); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatTgs &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnailFormatTgs"); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebm &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnailFormatWebm"); +} + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebp &object) { + auto jo = jv.enter_object(); + jo("@type", "thumbnailFormatWebp"); +} + +void to_json(JsonValueScope &jv, const td_api::trendingStickerSets &object) { + auto jo = jv.enter_object(); + jo("@type", "trendingStickerSets"); + jo("total_count", object.total_count_); + jo("sets", ToJson(object.sets_)); + jo("is_premium", JsonBool{object.is_premium_}); +} + +void to_json(JsonValueScope &jv, const td_api::unreadReaction &object) { + auto jo = jv.enter_object(); + jo("@type", "unreadReaction"); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + if (object.sender_id_) { + jo("sender_id", ToJson(*object.sender_id_)); + } + jo("is_big", JsonBool{object.is_big_}); +} + +void to_json(JsonValueScope &jv, const td_api::Update &object) { + td_api::downcast_call(const_cast<td_api::Update &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::updateAuthorizationState &object) { + auto jo = jv.enter_object(); + jo("@type", "updateAuthorizationState"); + if (object.authorization_state_) { + jo("authorization_state", ToJson(*object.authorization_state_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNewMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewMessage"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageSendAcknowledged &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageSendAcknowledged"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageSendSucceeded &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageSendSucceeded"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } + jo("old_message_id", object.old_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageSendFailed &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageSendFailed"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } + jo("old_message_id", object.old_message_id_); + jo("error_code", object.error_code_); + jo("error_message", object.error_message_); +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageContent &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageContent"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + if (object.new_content_) { + jo("new_content", ToJson(*object.new_content_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageEdited &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageEdited"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + jo("edit_date", object.edit_date_); + if (object.reply_markup_) { + jo("reply_markup", ToJson(*object.reply_markup_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageIsPinned &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageIsPinned"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + jo("is_pinned", JsonBool{object.is_pinned_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageInteractionInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageInteractionInfo"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + if (object.interaction_info_) { + jo("interaction_info", ToJson(*object.interaction_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageContentOpened &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageContentOpened"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageMentionRead &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageMentionRead"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + jo("unread_mention_count", object.unread_mention_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageUnreadReactions &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageUnreadReactions"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + jo("unread_reactions", ToJson(object.unread_reactions_)); + jo("unread_reaction_count", object.unread_reaction_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateMessageLiveLocationViewed &object) { + auto jo = jv.enter_object(); + jo("@type", "updateMessageLiveLocationViewed"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::updateNewChat &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewChat"); + if (object.chat_) { + jo("chat", ToJson(*object.chat_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatTitle &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatTitle"); + jo("chat_id", object.chat_id_); + jo("title", object.title_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatPhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatPhoto"); + jo("chat_id", object.chat_id_); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatPermissions &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatPermissions"); + jo("chat_id", object.chat_id_); + if (object.permissions_) { + jo("permissions", ToJson(*object.permissions_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatLastMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatLastMessage"); + jo("chat_id", object.chat_id_); + if (object.last_message_) { + jo("last_message", ToJson(*object.last_message_)); + } + jo("positions", ToJson(object.positions_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatPosition &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatPosition"); + jo("chat_id", object.chat_id_); + if (object.position_) { + jo("position", ToJson(*object.position_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatReadInbox &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatReadInbox"); + jo("chat_id", object.chat_id_); + jo("last_read_inbox_message_id", object.last_read_inbox_message_id_); + jo("unread_count", object.unread_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatReadOutbox &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatReadOutbox"); + jo("chat_id", object.chat_id_); + jo("last_read_outbox_message_id", object.last_read_outbox_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatActionBar &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatActionBar"); + jo("chat_id", object.chat_id_); + if (object.action_bar_) { + jo("action_bar", ToJson(*object.action_bar_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatAvailableReactions &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatAvailableReactions"); + jo("chat_id", object.chat_id_); + if (object.available_reactions_) { + jo("available_reactions", ToJson(*object.available_reactions_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatDraftMessage &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatDraftMessage"); + jo("chat_id", object.chat_id_); + if (object.draft_message_) { + jo("draft_message", ToJson(*object.draft_message_)); + } + jo("positions", ToJson(object.positions_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatMessageSender &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatMessageSender"); + jo("chat_id", object.chat_id_); + if (object.message_sender_id_) { + jo("message_sender_id", ToJson(*object.message_sender_id_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatMessageTtl &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatMessageTtl"); + jo("chat_id", object.chat_id_); + jo("message_ttl", object.message_ttl_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatNotificationSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatNotificationSettings"); + jo("chat_id", object.chat_id_); + if (object.notification_settings_) { + jo("notification_settings", ToJson(*object.notification_settings_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatPendingJoinRequests &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatPendingJoinRequests"); + jo("chat_id", object.chat_id_); + if (object.pending_join_requests_) { + jo("pending_join_requests", ToJson(*object.pending_join_requests_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatReplyMarkup &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatReplyMarkup"); + jo("chat_id", object.chat_id_); + jo("reply_markup_message_id", object.reply_markup_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatTheme &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatTheme"); + jo("chat_id", object.chat_id_); + jo("theme_name", object.theme_name_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatUnreadMentionCount &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatUnreadMentionCount"); + jo("chat_id", object.chat_id_); + jo("unread_mention_count", object.unread_mention_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatUnreadReactionCount &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatUnreadReactionCount"); + jo("chat_id", object.chat_id_); + jo("unread_reaction_count", object.unread_reaction_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatVideoChat &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatVideoChat"); + jo("chat_id", object.chat_id_); + if (object.video_chat_) { + jo("video_chat", ToJson(*object.video_chat_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatDefaultDisableNotification &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatDefaultDisableNotification"); + jo("chat_id", object.chat_id_); + jo("default_disable_notification", JsonBool{object.default_disable_notification_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatHasProtectedContent &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatHasProtectedContent"); + jo("chat_id", object.chat_id_); + jo("has_protected_content", JsonBool{object.has_protected_content_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatHasScheduledMessages &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatHasScheduledMessages"); + jo("chat_id", object.chat_id_); + jo("has_scheduled_messages", JsonBool{object.has_scheduled_messages_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatIsBlocked &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatIsBlocked"); + jo("chat_id", object.chat_id_); + jo("is_blocked", JsonBool{object.is_blocked_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatIsMarkedAsUnread &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatIsMarkedAsUnread"); + jo("chat_id", object.chat_id_); + jo("is_marked_as_unread", JsonBool{object.is_marked_as_unread_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatFilters &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatFilters"); + jo("chat_filters", ToJson(object.chat_filters_)); + jo("main_chat_list_position", object.main_chat_list_position_); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatOnlineMemberCount &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatOnlineMemberCount"); + jo("chat_id", object.chat_id_); + jo("online_member_count", object.online_member_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateForumTopicInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "updateForumTopicInfo"); + jo("chat_id", object.chat_id_); + if (object.info_) { + jo("info", ToJson(*object.info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateScopeNotificationSettings &object) { + auto jo = jv.enter_object(); + jo("@type", "updateScopeNotificationSettings"); + if (object.scope_) { + jo("scope", ToJson(*object.scope_)); + } + if (object.notification_settings_) { + jo("notification_settings", ToJson(*object.notification_settings_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNotification &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNotification"); + jo("notification_group_id", object.notification_group_id_); + if (object.notification_) { + jo("notification", ToJson(*object.notification_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNotificationGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNotificationGroup"); + jo("notification_group_id", object.notification_group_id_); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("chat_id", object.chat_id_); + jo("notification_settings_chat_id", object.notification_settings_chat_id_); + jo("notification_sound_id", ToJson(JsonInt64{object.notification_sound_id_})); + jo("total_count", object.total_count_); + jo("added_notifications", ToJson(object.added_notifications_)); + jo("removed_notification_ids", ToJson(object.removed_notification_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateActiveNotifications &object) { + auto jo = jv.enter_object(); + jo("@type", "updateActiveNotifications"); + jo("groups", ToJson(object.groups_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateHavePendingNotifications &object) { + auto jo = jv.enter_object(); + jo("@type", "updateHavePendingNotifications"); + jo("have_delayed_notifications", JsonBool{object.have_delayed_notifications_}); + jo("have_unreceived_notifications", JsonBool{object.have_unreceived_notifications_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateDeleteMessages &object) { + auto jo = jv.enter_object(); + jo("@type", "updateDeleteMessages"); + jo("chat_id", object.chat_id_); + jo("message_ids", ToJson(object.message_ids_)); + jo("is_permanent", JsonBool{object.is_permanent_}); + jo("from_cache", JsonBool{object.from_cache_}); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatAction &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatAction"); + jo("chat_id", object.chat_id_); + jo("message_thread_id", object.message_thread_id_); + if (object.sender_id_) { + jo("sender_id", ToJson(*object.sender_id_)); + } + if (object.action_) { + jo("action", ToJson(*object.action_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateUserStatus &object) { + auto jo = jv.enter_object(); + jo("@type", "updateUserStatus"); + jo("user_id", object.user_id_); + if (object.status_) { + jo("status", ToJson(*object.status_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateUser &object) { + auto jo = jv.enter_object(); + jo("@type", "updateUser"); + if (object.user_) { + jo("user", ToJson(*object.user_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateBasicGroup &object) { + auto jo = jv.enter_object(); + jo("@type", "updateBasicGroup"); + if (object.basic_group_) { + jo("basic_group", ToJson(*object.basic_group_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateSupergroup &object) { + auto jo = jv.enter_object(); + jo("@type", "updateSupergroup"); + if (object.supergroup_) { + jo("supergroup", ToJson(*object.supergroup_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateSecretChat &object) { + auto jo = jv.enter_object(); + jo("@type", "updateSecretChat"); + if (object.secret_chat_) { + jo("secret_chat", ToJson(*object.secret_chat_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateUserFullInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "updateUserFullInfo"); + jo("user_id", object.user_id_); + if (object.user_full_info_) { + jo("user_full_info", ToJson(*object.user_full_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateBasicGroupFullInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "updateBasicGroupFullInfo"); + jo("basic_group_id", object.basic_group_id_); + if (object.basic_group_full_info_) { + jo("basic_group_full_info", ToJson(*object.basic_group_full_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateSupergroupFullInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "updateSupergroupFullInfo"); + jo("supergroup_id", object.supergroup_id_); + if (object.supergroup_full_info_) { + jo("supergroup_full_info", ToJson(*object.supergroup_full_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateServiceNotification &object) { + auto jo = jv.enter_object(); + jo("@type", "updateServiceNotification"); + jo("type", object.type_); + if (object.content_) { + jo("content", ToJson(*object.content_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateFile &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFile"); + if (object.file_) { + jo("file", ToJson(*object.file_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStart &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFileGenerationStart"); + jo("generation_id", ToJson(JsonInt64{object.generation_id_})); + jo("original_path", object.original_path_); + jo("destination_path", object.destination_path_); + jo("conversion", object.conversion_); +} + +void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStop &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFileGenerationStop"); + jo("generation_id", ToJson(JsonInt64{object.generation_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::updateFileDownloads &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFileDownloads"); + jo("total_size", object.total_size_); + jo("total_count", object.total_count_); + jo("downloaded_size", object.downloaded_size_); +} + +void to_json(JsonValueScope &jv, const td_api::updateFileAddedToDownloads &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFileAddedToDownloads"); + if (object.file_download_) { + jo("file_download", ToJson(*object.file_download_)); + } + if (object.counts_) { + jo("counts", ToJson(*object.counts_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateFileDownload &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFileDownload"); + jo("file_id", object.file_id_); + jo("complete_date", object.complete_date_); + jo("is_paused", JsonBool{object.is_paused_}); + if (object.counts_) { + jo("counts", ToJson(*object.counts_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateFileRemovedFromDownloads &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFileRemovedFromDownloads"); + jo("file_id", object.file_id_); + if (object.counts_) { + jo("counts", ToJson(*object.counts_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateCall &object) { + auto jo = jv.enter_object(); + jo("@type", "updateCall"); + if (object.call_) { + jo("call", ToJson(*object.call_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateGroupCall &object) { + auto jo = jv.enter_object(); + jo("@type", "updateGroupCall"); + if (object.group_call_) { + jo("group_call", ToJson(*object.group_call_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateGroupCallParticipant &object) { + auto jo = jv.enter_object(); + jo("@type", "updateGroupCallParticipant"); + jo("group_call_id", object.group_call_id_); + if (object.participant_) { + jo("participant", ToJson(*object.participant_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNewCallSignalingData &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewCallSignalingData"); + jo("call_id", object.call_id_); + jo("data", base64_encode(object.data_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateUserPrivacySettingRules &object) { + auto jo = jv.enter_object(); + jo("@type", "updateUserPrivacySettingRules"); + if (object.setting_) { + jo("setting", ToJson(*object.setting_)); + } + if (object.rules_) { + jo("rules", ToJson(*object.rules_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateUnreadMessageCount &object) { + auto jo = jv.enter_object(); + jo("@type", "updateUnreadMessageCount"); + if (object.chat_list_) { + jo("chat_list", ToJson(*object.chat_list_)); + } + jo("unread_count", object.unread_count_); + jo("unread_unmuted_count", object.unread_unmuted_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateUnreadChatCount &object) { + auto jo = jv.enter_object(); + jo("@type", "updateUnreadChatCount"); + if (object.chat_list_) { + jo("chat_list", ToJson(*object.chat_list_)); + } + jo("total_count", object.total_count_); + jo("unread_count", object.unread_count_); + jo("unread_unmuted_count", object.unread_unmuted_count_); + jo("marked_as_unread_count", object.marked_as_unread_count_); + jo("marked_as_unread_unmuted_count", object.marked_as_unread_unmuted_count_); +} + +void to_json(JsonValueScope &jv, const td_api::updateOption &object) { + auto jo = jv.enter_object(); + jo("@type", "updateOption"); + jo("name", object.name_); + if (object.value_) { + jo("value", ToJson(*object.value_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateStickerSet &object) { + auto jo = jv.enter_object(); + jo("@type", "updateStickerSet"); + if (object.sticker_set_) { + jo("sticker_set", ToJson(*object.sticker_set_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateInstalledStickerSets &object) { + auto jo = jv.enter_object(); + jo("@type", "updateInstalledStickerSets"); + if (object.sticker_type_) { + jo("sticker_type", ToJson(*object.sticker_type_)); + } + jo("sticker_set_ids", ToJson(JsonVectorInt64{object.sticker_set_ids_})); +} + +void to_json(JsonValueScope &jv, const td_api::updateTrendingStickerSets &object) { + auto jo = jv.enter_object(); + jo("@type", "updateTrendingStickerSets"); + if (object.sticker_type_) { + jo("sticker_type", ToJson(*object.sticker_type_)); + } + if (object.sticker_sets_) { + jo("sticker_sets", ToJson(*object.sticker_sets_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateRecentStickers &object) { + auto jo = jv.enter_object(); + jo("@type", "updateRecentStickers"); + jo("is_attached", JsonBool{object.is_attached_}); + jo("sticker_ids", ToJson(object.sticker_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateFavoriteStickers &object) { + auto jo = jv.enter_object(); + jo("@type", "updateFavoriteStickers"); + jo("sticker_ids", ToJson(object.sticker_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateSavedAnimations &object) { + auto jo = jv.enter_object(); + jo("@type", "updateSavedAnimations"); + jo("animation_ids", ToJson(object.animation_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateSavedNotificationSounds &object) { + auto jo = jv.enter_object(); + jo("@type", "updateSavedNotificationSounds"); + jo("notification_sound_ids", ToJson(JsonVectorInt64{object.notification_sound_ids_})); +} + +void to_json(JsonValueScope &jv, const td_api::updateSelectedBackground &object) { + auto jo = jv.enter_object(); + jo("@type", "updateSelectedBackground"); + jo("for_dark_theme", JsonBool{object.for_dark_theme_}); + if (object.background_) { + jo("background", ToJson(*object.background_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateChatThemes &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatThemes"); + jo("chat_themes", ToJson(object.chat_themes_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateLanguagePackStrings &object) { + auto jo = jv.enter_object(); + jo("@type", "updateLanguagePackStrings"); + jo("localization_target", object.localization_target_); + jo("language_pack_id", object.language_pack_id_); + jo("strings", ToJson(object.strings_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateConnectionState &object) { + auto jo = jv.enter_object(); + jo("@type", "updateConnectionState"); + if (object.state_) { + jo("state", ToJson(*object.state_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateTermsOfService &object) { + auto jo = jv.enter_object(); + jo("@type", "updateTermsOfService"); + jo("terms_of_service_id", object.terms_of_service_id_); + if (object.terms_of_service_) { + jo("terms_of_service", ToJson(*object.terms_of_service_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateUsersNearby &object) { + auto jo = jv.enter_object(); + jo("@type", "updateUsersNearby"); + jo("users_nearby", ToJson(object.users_nearby_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateAttachmentMenuBots &object) { + auto jo = jv.enter_object(); + jo("@type", "updateAttachmentMenuBots"); + jo("bots", ToJson(object.bots_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateWebAppMessageSent &object) { + auto jo = jv.enter_object(); + jo("@type", "updateWebAppMessageSent"); + jo("web_app_launch_id", ToJson(JsonInt64{object.web_app_launch_id_})); +} + +void to_json(JsonValueScope &jv, const td_api::updateActiveEmojiReactions &object) { + auto jo = jv.enter_object(); + jo("@type", "updateActiveEmojiReactions"); + jo("emojis", ToJson(object.emojis_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateDefaultReactionType &object) { + auto jo = jv.enter_object(); + jo("@type", "updateDefaultReactionType"); + if (object.reaction_type_) { + jo("reaction_type", ToJson(*object.reaction_type_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateDiceEmojis &object) { + auto jo = jv.enter_object(); + jo("@type", "updateDiceEmojis"); + jo("emojis", ToJson(object.emojis_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateAnimatedEmojiMessageClicked &object) { + auto jo = jv.enter_object(); + jo("@type", "updateAnimatedEmojiMessageClicked"); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateAnimationSearchParameters &object) { + auto jo = jv.enter_object(); + jo("@type", "updateAnimationSearchParameters"); + jo("provider", object.provider_); + jo("emojis", ToJson(object.emojis_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateSuggestedActions &object) { + auto jo = jv.enter_object(); + jo("@type", "updateSuggestedActions"); + jo("added_actions", ToJson(object.added_actions_)); + jo("removed_actions", ToJson(object.removed_actions_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateNewInlineQuery &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewInlineQuery"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("sender_user_id", object.sender_user_id_); + if (object.user_location_) { + jo("user_location", ToJson(*object.user_location_)); + } + if (object.chat_type_) { + jo("chat_type", ToJson(*object.chat_type_)); + } + jo("query", object.query_); + jo("offset", object.offset_); +} + +void to_json(JsonValueScope &jv, const td_api::updateNewChosenInlineResult &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewChosenInlineResult"); + jo("sender_user_id", object.sender_user_id_); + if (object.user_location_) { + jo("user_location", ToJson(*object.user_location_)); + } + jo("query", object.query_); + jo("result_id", object.result_id_); + jo("inline_message_id", object.inline_message_id_); +} + +void to_json(JsonValueScope &jv, const td_api::updateNewCallbackQuery &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewCallbackQuery"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("sender_user_id", object.sender_user_id_); + jo("chat_id", object.chat_id_); + jo("message_id", object.message_id_); + jo("chat_instance", ToJson(JsonInt64{object.chat_instance_})); + if (object.payload_) { + jo("payload", ToJson(*object.payload_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNewInlineCallbackQuery &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewInlineCallbackQuery"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("sender_user_id", object.sender_user_id_); + jo("inline_message_id", object.inline_message_id_); + jo("chat_instance", ToJson(JsonInt64{object.chat_instance_})); + if (object.payload_) { + jo("payload", ToJson(*object.payload_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNewShippingQuery &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewShippingQuery"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("sender_user_id", object.sender_user_id_); + jo("invoice_payload", object.invoice_payload_); + if (object.shipping_address_) { + jo("shipping_address", ToJson(*object.shipping_address_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNewPreCheckoutQuery &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewPreCheckoutQuery"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("sender_user_id", object.sender_user_id_); + jo("currency", object.currency_); + jo("total_amount", object.total_amount_); + jo("invoice_payload", base64_encode(object.invoice_payload_)); + jo("shipping_option_id", object.shipping_option_id_); + if (object.order_info_) { + jo("order_info", ToJson(*object.order_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNewCustomEvent &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewCustomEvent"); + jo("event", object.event_); +} + +void to_json(JsonValueScope &jv, const td_api::updateNewCustomQuery &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewCustomQuery"); + jo("id", ToJson(JsonInt64{object.id_})); + jo("data", object.data_); + jo("timeout", object.timeout_); +} + +void to_json(JsonValueScope &jv, const td_api::updatePoll &object) { + auto jo = jv.enter_object(); + jo("@type", "updatePoll"); + if (object.poll_) { + jo("poll", ToJson(*object.poll_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updatePollAnswer &object) { + auto jo = jv.enter_object(); + jo("@type", "updatePollAnswer"); + jo("poll_id", ToJson(JsonInt64{object.poll_id_})); + jo("user_id", object.user_id_); + jo("option_ids", ToJson(object.option_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::updateChatMember &object) { + auto jo = jv.enter_object(); + jo("@type", "updateChatMember"); + jo("chat_id", object.chat_id_); + jo("actor_user_id", object.actor_user_id_); + jo("date", object.date_); + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } + if (object.old_chat_member_) { + jo("old_chat_member", ToJson(*object.old_chat_member_)); + } + if (object.new_chat_member_) { + jo("new_chat_member", ToJson(*object.new_chat_member_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updateNewChatJoinRequest &object) { + auto jo = jv.enter_object(); + jo("@type", "updateNewChatJoinRequest"); + jo("chat_id", object.chat_id_); + if (object.request_) { + jo("request", ToJson(*object.request_)); + } + if (object.invite_link_) { + jo("invite_link", ToJson(*object.invite_link_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::updates &object) { + auto jo = jv.enter_object(); + jo("@type", "updates"); + jo("updates", ToJson(object.updates_)); +} + +void to_json(JsonValueScope &jv, const td_api::user &object) { + auto jo = jv.enter_object(); + jo("@type", "user"); + jo("id", object.id_); + jo("first_name", object.first_name_); + jo("last_name", object.last_name_); + if (object.usernames_) { + jo("usernames", ToJson(*object.usernames_)); + } + jo("phone_number", object.phone_number_); + if (object.status_) { + jo("status", ToJson(*object.status_)); + } + if (object.profile_photo_) { + jo("profile_photo", ToJson(*object.profile_photo_)); + } + if (object.emoji_status_) { + jo("emoji_status", ToJson(*object.emoji_status_)); + } + jo("is_contact", JsonBool{object.is_contact_}); + jo("is_mutual_contact", JsonBool{object.is_mutual_contact_}); + jo("is_verified", JsonBool{object.is_verified_}); + jo("is_premium", JsonBool{object.is_premium_}); + jo("is_support", JsonBool{object.is_support_}); + jo("restriction_reason", object.restriction_reason_); + jo("is_scam", JsonBool{object.is_scam_}); + jo("is_fake", JsonBool{object.is_fake_}); + jo("have_access", JsonBool{object.have_access_}); + if (object.type_) { + jo("type", ToJson(*object.type_)); + } + jo("language_code", object.language_code_); + jo("added_to_attachment_menu", JsonBool{object.added_to_attachment_menu_}); +} + +void to_json(JsonValueScope &jv, const td_api::userFullInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "userFullInfo"); + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("is_blocked", JsonBool{object.is_blocked_}); + jo("can_be_called", JsonBool{object.can_be_called_}); + jo("supports_video_calls", JsonBool{object.supports_video_calls_}); + jo("has_private_calls", JsonBool{object.has_private_calls_}); + jo("has_private_forwards", JsonBool{object.has_private_forwards_}); + jo("has_restricted_voice_and_video_note_messages", JsonBool{object.has_restricted_voice_and_video_note_messages_}); + jo("need_phone_number_privacy_exception", JsonBool{object.need_phone_number_privacy_exception_}); + if (object.bio_) { + jo("bio", ToJson(*object.bio_)); + } + jo("premium_gift_options", ToJson(object.premium_gift_options_)); + jo("group_in_common_count", object.group_in_common_count_); + if (object.bot_info_) { + jo("bot_info", ToJson(*object.bot_info_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::UserPrivacySetting &object) { + td_api::downcast_call(const_cast<td_api::UserPrivacySetting &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowStatus &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingShowStatus"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowProfilePhoto &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingShowProfilePhoto"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowLinkInForwardedMessages &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingShowLinkInForwardedMessages"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingShowPhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowChatInvites &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingAllowChatInvites"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowCalls &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingAllowCalls"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPeerToPeerCalls &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingAllowPeerToPeerCalls"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowFindingByPhoneNumber &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingAllowFindingByPhoneNumber"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages"); +} + +void to_json(JsonValueScope &jv, const td_api::UserPrivacySettingRule &object) { + td_api::downcast_call(const_cast<td_api::UserPrivacySettingRule &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowAll &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleAllowAll"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowContacts &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleAllowContacts"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowUsers &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleAllowUsers"); + jo("user_ids", ToJson(object.user_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowChatMembers &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleAllowChatMembers"); + jo("chat_ids", ToJson(object.chat_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictAll &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleRestrictAll"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictContacts &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleRestrictContacts"); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictUsers &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleRestrictUsers"); + jo("user_ids", ToJson(object.user_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictChatMembers &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRuleRestrictChatMembers"); + jo("chat_ids", ToJson(object.chat_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRules &object) { + auto jo = jv.enter_object(); + jo("@type", "userPrivacySettingRules"); + jo("rules", ToJson(object.rules_)); +} + +void to_json(JsonValueScope &jv, const td_api::UserStatus &object) { + td_api::downcast_call(const_cast<td_api::UserStatus &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::userStatusEmpty &object) { + auto jo = jv.enter_object(); + jo("@type", "userStatusEmpty"); +} + +void to_json(JsonValueScope &jv, const td_api::userStatusOnline &object) { + auto jo = jv.enter_object(); + jo("@type", "userStatusOnline"); + jo("expires", object.expires_); +} + +void to_json(JsonValueScope &jv, const td_api::userStatusOffline &object) { + auto jo = jv.enter_object(); + jo("@type", "userStatusOffline"); + jo("was_online", object.was_online_); +} + +void to_json(JsonValueScope &jv, const td_api::userStatusRecently &object) { + auto jo = jv.enter_object(); + jo("@type", "userStatusRecently"); +} + +void to_json(JsonValueScope &jv, const td_api::userStatusLastWeek &object) { + auto jo = jv.enter_object(); + jo("@type", "userStatusLastWeek"); +} + +void to_json(JsonValueScope &jv, const td_api::userStatusLastMonth &object) { + auto jo = jv.enter_object(); + jo("@type", "userStatusLastMonth"); +} + +void to_json(JsonValueScope &jv, const td_api::userSupportInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "userSupportInfo"); + if (object.message_) { + jo("message", ToJson(*object.message_)); + } + jo("author", object.author_); + jo("date", object.date_); +} + +void to_json(JsonValueScope &jv, const td_api::UserType &object) { + td_api::downcast_call(const_cast<td_api::UserType &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::userTypeRegular &object) { + auto jo = jv.enter_object(); + jo("@type", "userTypeRegular"); +} + +void to_json(JsonValueScope &jv, const td_api::userTypeDeleted &object) { + auto jo = jv.enter_object(); + jo("@type", "userTypeDeleted"); +} + +void to_json(JsonValueScope &jv, const td_api::userTypeBot &object) { + auto jo = jv.enter_object(); + jo("@type", "userTypeBot"); + jo("can_join_groups", JsonBool{object.can_join_groups_}); + jo("can_read_all_group_messages", JsonBool{object.can_read_all_group_messages_}); + jo("is_inline", JsonBool{object.is_inline_}); + jo("inline_query_placeholder", object.inline_query_placeholder_); + jo("need_location", JsonBool{object.need_location_}); + jo("can_be_added_to_attachment_menu", JsonBool{object.can_be_added_to_attachment_menu_}); +} + +void to_json(JsonValueScope &jv, const td_api::userTypeUnknown &object) { + auto jo = jv.enter_object(); + jo("@type", "userTypeUnknown"); +} + +void to_json(JsonValueScope &jv, const td_api::usernames &object) { + auto jo = jv.enter_object(); + jo("@type", "usernames"); + jo("active_usernames", ToJson(object.active_usernames_)); + jo("disabled_usernames", ToJson(object.disabled_usernames_)); + jo("editable_username", object.editable_username_); +} + +void to_json(JsonValueScope &jv, const td_api::users &object) { + auto jo = jv.enter_object(); + jo("@type", "users"); + jo("total_count", object.total_count_); + jo("user_ids", ToJson(object.user_ids_)); +} + +void to_json(JsonValueScope &jv, const td_api::validatedOrderInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "validatedOrderInfo"); + jo("order_info_id", object.order_info_id_); + jo("shipping_options", ToJson(object.shipping_options_)); +} + +void to_json(JsonValueScope &jv, const td_api::VectorPathCommand &object) { + td_api::downcast_call(const_cast<td_api::VectorPathCommand &>(object), [&jv](const auto &object) { to_json(jv, object); }); +} + +void to_json(JsonValueScope &jv, const td_api::vectorPathCommandLine &object) { + auto jo = jv.enter_object(); + jo("@type", "vectorPathCommandLine"); + if (object.end_point_) { + jo("end_point", ToJson(*object.end_point_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::vectorPathCommandCubicBezierCurve &object) { + auto jo = jv.enter_object(); + jo("@type", "vectorPathCommandCubicBezierCurve"); + if (object.start_control_point_) { + jo("start_control_point", ToJson(*object.start_control_point_)); + } + if (object.end_control_point_) { + jo("end_control_point", ToJson(*object.end_control_point_)); + } + if (object.end_point_) { + jo("end_point", ToJson(*object.end_point_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::venue &object) { + auto jo = jv.enter_object(); + jo("@type", "venue"); + if (object.location_) { + jo("location", ToJson(*object.location_)); + } + jo("title", object.title_); + jo("address", object.address_); + jo("provider", object.provider_); + jo("id", object.id_); + jo("type", object.type_); +} + +void to_json(JsonValueScope &jv, const td_api::video &object) { + auto jo = jv.enter_object(); + jo("@type", "video"); + jo("duration", object.duration_); + jo("width", object.width_); + jo("height", object.height_); + jo("file_name", object.file_name_); + jo("mime_type", object.mime_type_); + jo("has_stickers", JsonBool{object.has_stickers_}); + jo("supports_streaming", JsonBool{object.supports_streaming_}); + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + if (object.video_) { + jo("video", ToJson(*object.video_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::videoChat &object) { + auto jo = jv.enter_object(); + jo("@type", "videoChat"); + jo("group_call_id", object.group_call_id_); + jo("has_participants", JsonBool{object.has_participants_}); + if (object.default_participant_id_) { + jo("default_participant_id", ToJson(*object.default_participant_id_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::videoNote &object) { + auto jo = jv.enter_object(); + jo("@type", "videoNote"); + jo("duration", object.duration_); + jo("waveform", base64_encode(object.waveform_)); + jo("length", object.length_); + if (object.minithumbnail_) { + jo("minithumbnail", ToJson(*object.minithumbnail_)); + } + if (object.thumbnail_) { + jo("thumbnail", ToJson(*object.thumbnail_)); + } + if (object.speech_recognition_result_) { + jo("speech_recognition_result", ToJson(*object.speech_recognition_result_)); + } + if (object.video_) { + jo("video", ToJson(*object.video_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::voiceNote &object) { + auto jo = jv.enter_object(); + jo("@type", "voiceNote"); + jo("duration", object.duration_); + jo("waveform", base64_encode(object.waveform_)); + jo("mime_type", object.mime_type_); + if (object.speech_recognition_result_) { + jo("speech_recognition_result", ToJson(*object.speech_recognition_result_)); + } + if (object.voice_) { + jo("voice", ToJson(*object.voice_)); + } +} + +void to_json(JsonValueScope &jv, const td_api::webAppInfo &object) { + auto jo = jv.enter_object(); + jo("@type", "webAppInfo"); + jo("launch_id", ToJson(JsonInt64{object.launch_id_})); + jo("url", object.url_); +} + +void to_json(JsonValueScope &jv, const td_api::webPage &object) { + auto jo = jv.enter_object(); + jo("@type", "webPage"); + jo("url", object.url_); + jo("display_url", object.display_url_); + jo("type", object.type_); + jo("site_name", object.site_name_); + jo("title", object.title_); + if (object.description_) { + jo("description", ToJson(*object.description_)); + } + if (object.photo_) { + jo("photo", ToJson(*object.photo_)); + } + jo("embed_url", object.embed_url_); + jo("embed_type", object.embed_type_); + jo("embed_width", object.embed_width_); + jo("embed_height", object.embed_height_); + jo("duration", object.duration_); + jo("author", object.author_); + if (object.animation_) { + jo("animation", ToJson(*object.animation_)); + } + if (object.audio_) { + jo("audio", ToJson(*object.audio_)); + } + if (object.document_) { + jo("document", ToJson(*object.document_)); + } + if (object.sticker_) { + jo("sticker", ToJson(*object.sticker_)); + } + if (object.video_) { + jo("video", ToJson(*object.video_)); + } + if (object.video_note_) { + jo("video_note", ToJson(*object.video_note_)); + } + if (object.voice_note_) { + jo("voice_note", ToJson(*object.voice_note_)); + } + jo("instant_view_version", object.instant_view_version_); +} + +void to_json(JsonValueScope &jv, const td_api::webPageInstantView &object) { + auto jo = jv.enter_object(); + jo("@type", "webPageInstantView"); + jo("page_blocks", ToJson(object.page_blocks_)); + jo("view_count", object.view_count_); + jo("version", object.version_); + jo("is_rtl", JsonBool{object.is_rtl_}); + jo("is_full", JsonBool{object.is_full_}); + if (object.feedback_link_) { + jo("feedback_link", ToJson(*object.feedback_link_)); + } +} + +} // namespace td_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.h new file mode 100644 index 0000000000..5da241eeec --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/td_api_json.h @@ -0,0 +1,4122 @@ +#pragma once + +#include "td/telegram/td_api.h" + +#include "td/utils/JsonBuilder.h" +#include "td/utils/Status.h" + +namespace td { +namespace td_api { + +void to_json(JsonValueScope &jv, const tl_object_ptr<Object> &value); + +Status from_json(tl_object_ptr<Function> &to, td::JsonValue from); + +void to_json(JsonValueScope &jv, const Object &object); + +void to_json(JsonValueScope &jv, const Function &object); + +Result<int32> tl_constructor_from_string(td_api::BackgroundFill *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::BackgroundType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::BotCommandScope *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::CallProblem *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::CallbackQueryPayload *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ChatAction *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ChatAvailableReactions *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ChatList *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ChatMemberStatus *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ChatMembersFilter *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ChatReportReason *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::DeviceToken *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::EmailAddressAuthentication *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::FileType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::GroupCallVideoQuality *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InlineKeyboardButtonType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputBackground *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputChatPhoto *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputCredentials *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputFile *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputInlineQueryResult *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputInvoice *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputMessageContent *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputPassportElement *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::InputPassportElementErrorSource *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::JsonValue *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::KeyboardButtonType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::LanguagePackStringValue *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::LogStream *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::MaskPoint *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::MessageSchedulingState *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::MessageSender *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::NetworkStatisticsEntry *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::NetworkType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::NotificationSettingsScope *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::OptionValue *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::PassportElementType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::PollType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::PremiumFeature *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::PremiumLimitType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::PremiumSource *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ProxyType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::PublicChatType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ReactionType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::ReplyMarkup *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::SearchMessagesFilter *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::StickerFormat *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::StickerType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::StorePaymentPurpose *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::SuggestedAction *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::SupergroupMembersFilter *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::TextEntityType *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::TextParseMode *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::TopChatCategory *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::UserPrivacySetting *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::UserPrivacySettingRule *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::Object *object, const std::string &str); + +Result<int32> tl_constructor_from_string(td_api::Function *object, const std::string &str); + +Status from_json(td_api::accountTtl &to, JsonObject &from); + +Status from_json(td_api::address &to, JsonObject &from); + +Status from_json(td_api::autoDownloadSettings &to, JsonObject &from); + +Status from_json(td_api::backgroundFillSolid &to, JsonObject &from); + +Status from_json(td_api::backgroundFillGradient &to, JsonObject &from); + +Status from_json(td_api::backgroundFillFreeformGradient &to, JsonObject &from); + +Status from_json(td_api::backgroundTypeWallpaper &to, JsonObject &from); + +Status from_json(td_api::backgroundTypePattern &to, JsonObject &from); + +Status from_json(td_api::backgroundTypeFill &to, JsonObject &from); + +Status from_json(td_api::botCommand &to, JsonObject &from); + +Status from_json(td_api::botCommandScopeDefault &to, JsonObject &from); + +Status from_json(td_api::botCommandScopeAllPrivateChats &to, JsonObject &from); + +Status from_json(td_api::botCommandScopeAllGroupChats &to, JsonObject &from); + +Status from_json(td_api::botCommandScopeAllChatAdministrators &to, JsonObject &from); + +Status from_json(td_api::botCommandScopeChat &to, JsonObject &from); + +Status from_json(td_api::botCommandScopeChatAdministrators &to, JsonObject &from); + +Status from_json(td_api::botCommandScopeChatMember &to, JsonObject &from); + +Status from_json(td_api::botMenuButton &to, JsonObject &from); + +Status from_json(td_api::callProblemEcho &to, JsonObject &from); + +Status from_json(td_api::callProblemNoise &to, JsonObject &from); + +Status from_json(td_api::callProblemInterruptions &to, JsonObject &from); + +Status from_json(td_api::callProblemDistortedSpeech &to, JsonObject &from); + +Status from_json(td_api::callProblemSilentLocal &to, JsonObject &from); + +Status from_json(td_api::callProblemSilentRemote &to, JsonObject &from); + +Status from_json(td_api::callProblemDropped &to, JsonObject &from); + +Status from_json(td_api::callProblemDistortedVideo &to, JsonObject &from); + +Status from_json(td_api::callProblemPixelatedVideo &to, JsonObject &from); + +Status from_json(td_api::callProtocol &to, JsonObject &from); + +Status from_json(td_api::callbackQueryPayloadData &to, JsonObject &from); + +Status from_json(td_api::callbackQueryPayloadDataWithPassword &to, JsonObject &from); + +Status from_json(td_api::callbackQueryPayloadGame &to, JsonObject &from); + +Status from_json(td_api::chatActionTyping &to, JsonObject &from); + +Status from_json(td_api::chatActionRecordingVideo &to, JsonObject &from); + +Status from_json(td_api::chatActionUploadingVideo &to, JsonObject &from); + +Status from_json(td_api::chatActionRecordingVoiceNote &to, JsonObject &from); + +Status from_json(td_api::chatActionUploadingVoiceNote &to, JsonObject &from); + +Status from_json(td_api::chatActionUploadingPhoto &to, JsonObject &from); + +Status from_json(td_api::chatActionUploadingDocument &to, JsonObject &from); + +Status from_json(td_api::chatActionChoosingSticker &to, JsonObject &from); + +Status from_json(td_api::chatActionChoosingLocation &to, JsonObject &from); + +Status from_json(td_api::chatActionChoosingContact &to, JsonObject &from); + +Status from_json(td_api::chatActionStartPlayingGame &to, JsonObject &from); + +Status from_json(td_api::chatActionRecordingVideoNote &to, JsonObject &from); + +Status from_json(td_api::chatActionUploadingVideoNote &to, JsonObject &from); + +Status from_json(td_api::chatActionWatchingAnimations &to, JsonObject &from); + +Status from_json(td_api::chatActionCancel &to, JsonObject &from); + +Status from_json(td_api::chatAdministratorRights &to, JsonObject &from); + +Status from_json(td_api::chatAvailableReactionsAll &to, JsonObject &from); + +Status from_json(td_api::chatAvailableReactionsSome &to, JsonObject &from); + +Status from_json(td_api::chatEventLogFilters &to, JsonObject &from); + +Status from_json(td_api::chatFilter &to, JsonObject &from); + +Status from_json(td_api::chatInviteLinkMember &to, JsonObject &from); + +Status from_json(td_api::chatJoinRequest &to, JsonObject &from); + +Status from_json(td_api::chatListMain &to, JsonObject &from); + +Status from_json(td_api::chatListArchive &to, JsonObject &from); + +Status from_json(td_api::chatListFilter &to, JsonObject &from); + +Status from_json(td_api::chatLocation &to, JsonObject &from); + +Status from_json(td_api::chatMemberStatusCreator &to, JsonObject &from); + +Status from_json(td_api::chatMemberStatusAdministrator &to, JsonObject &from); + +Status from_json(td_api::chatMemberStatusMember &to, JsonObject &from); + +Status from_json(td_api::chatMemberStatusRestricted &to, JsonObject &from); + +Status from_json(td_api::chatMemberStatusLeft &to, JsonObject &from); + +Status from_json(td_api::chatMemberStatusBanned &to, JsonObject &from); + +Status from_json(td_api::chatMembersFilterContacts &to, JsonObject &from); + +Status from_json(td_api::chatMembersFilterAdministrators &to, JsonObject &from); + +Status from_json(td_api::chatMembersFilterMembers &to, JsonObject &from); + +Status from_json(td_api::chatMembersFilterMention &to, JsonObject &from); + +Status from_json(td_api::chatMembersFilterRestricted &to, JsonObject &from); + +Status from_json(td_api::chatMembersFilterBanned &to, JsonObject &from); + +Status from_json(td_api::chatMembersFilterBots &to, JsonObject &from); + +Status from_json(td_api::chatNotificationSettings &to, JsonObject &from); + +Status from_json(td_api::chatPermissions &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonSpam &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonViolence &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonPornography &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonChildAbuse &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonCopyright &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonUnrelatedLocation &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonFake &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonIllegalDrugs &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonPersonalDetails &to, JsonObject &from); + +Status from_json(td_api::chatReportReasonCustom &to, JsonObject &from); + +Status from_json(td_api::contact &to, JsonObject &from); + +Status from_json(td_api::date &to, JsonObject &from); + +Status from_json(td_api::deviceTokenFirebaseCloudMessaging &to, JsonObject &from); + +Status from_json(td_api::deviceTokenApplePush &to, JsonObject &from); + +Status from_json(td_api::deviceTokenApplePushVoIP &to, JsonObject &from); + +Status from_json(td_api::deviceTokenWindowsPush &to, JsonObject &from); + +Status from_json(td_api::deviceTokenMicrosoftPush &to, JsonObject &from); + +Status from_json(td_api::deviceTokenMicrosoftPushVoIP &to, JsonObject &from); + +Status from_json(td_api::deviceTokenWebPush &to, JsonObject &from); + +Status from_json(td_api::deviceTokenSimplePush &to, JsonObject &from); + +Status from_json(td_api::deviceTokenUbuntuPush &to, JsonObject &from); + +Status from_json(td_api::deviceTokenBlackBerryPush &to, JsonObject &from); + +Status from_json(td_api::deviceTokenTizenPush &to, JsonObject &from); + +Status from_json(td_api::draftMessage &to, JsonObject &from); + +Status from_json(td_api::emailAddressAuthenticationCode &to, JsonObject &from); + +Status from_json(td_api::emailAddressAuthenticationAppleId &to, JsonObject &from); + +Status from_json(td_api::emailAddressAuthenticationGoogleId &to, JsonObject &from); + +Status from_json(td_api::emojiStatus &to, JsonObject &from); + +Status from_json(td_api::error &to, JsonObject &from); + +Status from_json(td_api::fileTypeNone &to, JsonObject &from); + +Status from_json(td_api::fileTypeAnimation &to, JsonObject &from); + +Status from_json(td_api::fileTypeAudio &to, JsonObject &from); + +Status from_json(td_api::fileTypeDocument &to, JsonObject &from); + +Status from_json(td_api::fileTypeNotificationSound &to, JsonObject &from); + +Status from_json(td_api::fileTypePhoto &to, JsonObject &from); + +Status from_json(td_api::fileTypeProfilePhoto &to, JsonObject &from); + +Status from_json(td_api::fileTypeSecret &to, JsonObject &from); + +Status from_json(td_api::fileTypeSecretThumbnail &to, JsonObject &from); + +Status from_json(td_api::fileTypeSecure &to, JsonObject &from); + +Status from_json(td_api::fileTypeSticker &to, JsonObject &from); + +Status from_json(td_api::fileTypeThumbnail &to, JsonObject &from); + +Status from_json(td_api::fileTypeUnknown &to, JsonObject &from); + +Status from_json(td_api::fileTypeVideo &to, JsonObject &from); + +Status from_json(td_api::fileTypeVideoNote &to, JsonObject &from); + +Status from_json(td_api::fileTypeVoiceNote &to, JsonObject &from); + +Status from_json(td_api::fileTypeWallpaper &to, JsonObject &from); + +Status from_json(td_api::formattedText &to, JsonObject &from); + +Status from_json(td_api::forumTopicIcon &to, JsonObject &from); + +Status from_json(td_api::groupCallVideoQualityThumbnail &to, JsonObject &from); + +Status from_json(td_api::groupCallVideoQualityMedium &to, JsonObject &from); + +Status from_json(td_api::groupCallVideoQualityFull &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButton &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeUrl &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeLoginUrl &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeWebApp &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeCallback &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeCallbackWithPassword &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeCallbackGame &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeSwitchInline &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeBuy &to, JsonObject &from); + +Status from_json(td_api::inlineKeyboardButtonTypeUser &to, JsonObject &from); + +Status from_json(td_api::inputBackgroundLocal &to, JsonObject &from); + +Status from_json(td_api::inputBackgroundRemote &to, JsonObject &from); + +Status from_json(td_api::inputChatPhotoPrevious &to, JsonObject &from); + +Status from_json(td_api::inputChatPhotoStatic &to, JsonObject &from); + +Status from_json(td_api::inputChatPhotoAnimation &to, JsonObject &from); + +Status from_json(td_api::inputCredentialsSaved &to, JsonObject &from); + +Status from_json(td_api::inputCredentialsNew &to, JsonObject &from); + +Status from_json(td_api::inputCredentialsApplePay &to, JsonObject &from); + +Status from_json(td_api::inputCredentialsGooglePay &to, JsonObject &from); + +Status from_json(td_api::inputFileId &to, JsonObject &from); + +Status from_json(td_api::inputFileRemote &to, JsonObject &from); + +Status from_json(td_api::inputFileLocal &to, JsonObject &from); + +Status from_json(td_api::inputFileGenerated &to, JsonObject &from); + +Status from_json(td_api::inputIdentityDocument &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultAnimation &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultArticle &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultAudio &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultContact &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultDocument &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultGame &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultLocation &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultPhoto &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultSticker &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultVenue &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultVideo &to, JsonObject &from); + +Status from_json(td_api::inputInlineQueryResultVoiceNote &to, JsonObject &from); + +Status from_json(td_api::inputInvoiceMessage &to, JsonObject &from); + +Status from_json(td_api::inputInvoiceName &to, JsonObject &from); + +Status from_json(td_api::inputMessageText &to, JsonObject &from); + +Status from_json(td_api::inputMessageAnimation &to, JsonObject &from); + +Status from_json(td_api::inputMessageAudio &to, JsonObject &from); + +Status from_json(td_api::inputMessageDocument &to, JsonObject &from); + +Status from_json(td_api::inputMessagePhoto &to, JsonObject &from); + +Status from_json(td_api::inputMessageSticker &to, JsonObject &from); + +Status from_json(td_api::inputMessageVideo &to, JsonObject &from); + +Status from_json(td_api::inputMessageVideoNote &to, JsonObject &from); + +Status from_json(td_api::inputMessageVoiceNote &to, JsonObject &from); + +Status from_json(td_api::inputMessageLocation &to, JsonObject &from); + +Status from_json(td_api::inputMessageVenue &to, JsonObject &from); + +Status from_json(td_api::inputMessageContact &to, JsonObject &from); + +Status from_json(td_api::inputMessageDice &to, JsonObject &from); + +Status from_json(td_api::inputMessageGame &to, JsonObject &from); + +Status from_json(td_api::inputMessageInvoice &to, JsonObject &from); + +Status from_json(td_api::inputMessagePoll &to, JsonObject &from); + +Status from_json(td_api::inputMessageForwarded &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementPersonalDetails &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementPassport &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementDriverLicense &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementIdentityCard &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementInternalPassport &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementAddress &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementUtilityBill &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementBankStatement &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementRentalAgreement &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementPassportRegistration &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementTemporaryRegistration &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementPhoneNumber &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementEmailAddress &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementError &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceUnspecified &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceDataField &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceFrontSide &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceReverseSide &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceSelfie &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceTranslationFile &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceTranslationFiles &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceFile &to, JsonObject &from); + +Status from_json(td_api::inputPassportElementErrorSourceFiles &to, JsonObject &from); + +Status from_json(td_api::inputPersonalDocument &to, JsonObject &from); + +Status from_json(td_api::inputSticker &to, JsonObject &from); + +Status from_json(td_api::inputThumbnail &to, JsonObject &from); + +Status from_json(td_api::invoice &to, JsonObject &from); + +Status from_json(td_api::jsonObjectMember &to, JsonObject &from); + +Status from_json(td_api::jsonValueNull &to, JsonObject &from); + +Status from_json(td_api::jsonValueBoolean &to, JsonObject &from); + +Status from_json(td_api::jsonValueNumber &to, JsonObject &from); + +Status from_json(td_api::jsonValueString &to, JsonObject &from); + +Status from_json(td_api::jsonValueArray &to, JsonObject &from); + +Status from_json(td_api::jsonValueObject &to, JsonObject &from); + +Status from_json(td_api::keyboardButton &to, JsonObject &from); + +Status from_json(td_api::keyboardButtonTypeText &to, JsonObject &from); + +Status from_json(td_api::keyboardButtonTypeRequestPhoneNumber &to, JsonObject &from); + +Status from_json(td_api::keyboardButtonTypeRequestLocation &to, JsonObject &from); + +Status from_json(td_api::keyboardButtonTypeRequestPoll &to, JsonObject &from); + +Status from_json(td_api::keyboardButtonTypeWebApp &to, JsonObject &from); + +Status from_json(td_api::labeledPricePart &to, JsonObject &from); + +Status from_json(td_api::languagePackInfo &to, JsonObject &from); + +Status from_json(td_api::languagePackString &to, JsonObject &from); + +Status from_json(td_api::languagePackStringValueOrdinary &to, JsonObject &from); + +Status from_json(td_api::languagePackStringValuePluralized &to, JsonObject &from); + +Status from_json(td_api::languagePackStringValueDeleted &to, JsonObject &from); + +Status from_json(td_api::location &to, JsonObject &from); + +Status from_json(td_api::logStreamDefault &to, JsonObject &from); + +Status from_json(td_api::logStreamFile &to, JsonObject &from); + +Status from_json(td_api::logStreamEmpty &to, JsonObject &from); + +Status from_json(td_api::maskPointForehead &to, JsonObject &from); + +Status from_json(td_api::maskPointEyes &to, JsonObject &from); + +Status from_json(td_api::maskPointMouth &to, JsonObject &from); + +Status from_json(td_api::maskPointChin &to, JsonObject &from); + +Status from_json(td_api::maskPosition &to, JsonObject &from); + +Status from_json(td_api::messageCopyOptions &to, JsonObject &from); + +Status from_json(td_api::messageSchedulingStateSendAtDate &to, JsonObject &from); + +Status from_json(td_api::messageSchedulingStateSendWhenOnline &to, JsonObject &from); + +Status from_json(td_api::messageSendOptions &to, JsonObject &from); + +Status from_json(td_api::messageSenderUser &to, JsonObject &from); + +Status from_json(td_api::messageSenderChat &to, JsonObject &from); + +Status from_json(td_api::networkStatisticsEntryFile &to, JsonObject &from); + +Status from_json(td_api::networkStatisticsEntryCall &to, JsonObject &from); + +Status from_json(td_api::networkTypeNone &to, JsonObject &from); + +Status from_json(td_api::networkTypeMobile &to, JsonObject &from); + +Status from_json(td_api::networkTypeMobileRoaming &to, JsonObject &from); + +Status from_json(td_api::networkTypeWiFi &to, JsonObject &from); + +Status from_json(td_api::networkTypeOther &to, JsonObject &from); + +Status from_json(td_api::notificationSettingsScopePrivateChats &to, JsonObject &from); + +Status from_json(td_api::notificationSettingsScopeGroupChats &to, JsonObject &from); + +Status from_json(td_api::notificationSettingsScopeChannelChats &to, JsonObject &from); + +Status from_json(td_api::optionValueBoolean &to, JsonObject &from); + +Status from_json(td_api::optionValueEmpty &to, JsonObject &from); + +Status from_json(td_api::optionValueInteger &to, JsonObject &from); + +Status from_json(td_api::optionValueString &to, JsonObject &from); + +Status from_json(td_api::orderInfo &to, JsonObject &from); + +Status from_json(td_api::passportElementTypePersonalDetails &to, JsonObject &from); + +Status from_json(td_api::passportElementTypePassport &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeDriverLicense &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeIdentityCard &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeInternalPassport &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeAddress &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeUtilityBill &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeBankStatement &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeRentalAgreement &to, JsonObject &from); + +Status from_json(td_api::passportElementTypePassportRegistration &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeTemporaryRegistration &to, JsonObject &from); + +Status from_json(td_api::passportElementTypePhoneNumber &to, JsonObject &from); + +Status from_json(td_api::passportElementTypeEmailAddress &to, JsonObject &from); + +Status from_json(td_api::personalDetails &to, JsonObject &from); + +Status from_json(td_api::phoneNumberAuthenticationSettings &to, JsonObject &from); + +Status from_json(td_api::pollTypeRegular &to, JsonObject &from); + +Status from_json(td_api::pollTypeQuiz &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureIncreasedLimits &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureIncreasedUploadFileSize &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureImprovedDownloadSpeed &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureVoiceRecognition &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureDisabledAds &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureUniqueReactions &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureUniqueStickers &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureCustomEmoji &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureAdvancedChatManagement &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureProfileBadge &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureEmojiStatus &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureAnimatedProfilePhoto &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureForumTopicIcon &to, JsonObject &from); + +Status from_json(td_api::premiumFeatureAppIcons &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeSupergroupCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypePinnedChatCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeCreatedPublicChatCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeSavedAnimationCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeFavoriteStickerCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeChatFilterCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeChatFilterChosenChatCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypePinnedArchivedChatCount &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeCaptionLength &to, JsonObject &from); + +Status from_json(td_api::premiumLimitTypeBioLength &to, JsonObject &from); + +Status from_json(td_api::premiumSourceLimitExceeded &to, JsonObject &from); + +Status from_json(td_api::premiumSourceFeature &to, JsonObject &from); + +Status from_json(td_api::premiumSourceLink &to, JsonObject &from); + +Status from_json(td_api::premiumSourceSettings &to, JsonObject &from); + +Status from_json(td_api::proxyTypeSocks5 &to, JsonObject &from); + +Status from_json(td_api::proxyTypeHttp &to, JsonObject &from); + +Status from_json(td_api::proxyTypeMtproto &to, JsonObject &from); + +Status from_json(td_api::publicChatTypeHasUsername &to, JsonObject &from); + +Status from_json(td_api::publicChatTypeIsLocationBased &to, JsonObject &from); + +Status from_json(td_api::reactionTypeEmoji &to, JsonObject &from); + +Status from_json(td_api::reactionTypeCustomEmoji &to, JsonObject &from); + +Status from_json(td_api::replyMarkupRemoveKeyboard &to, JsonObject &from); + +Status from_json(td_api::replyMarkupForceReply &to, JsonObject &from); + +Status from_json(td_api::replyMarkupShowKeyboard &to, JsonObject &from); + +Status from_json(td_api::replyMarkupInlineKeyboard &to, JsonObject &from); + +Status from_json(td_api::scopeNotificationSettings &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterEmpty &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterAnimation &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterAudio &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterDocument &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterPhoto &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterVideo &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterVoiceNote &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterPhotoAndVideo &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterUrl &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterChatPhoto &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterVideoNote &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterVoiceAndVideoNote &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterMention &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterUnreadMention &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterUnreadReaction &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterFailedToSend &to, JsonObject &from); + +Status from_json(td_api::searchMessagesFilterPinned &to, JsonObject &from); + +Status from_json(td_api::shippingOption &to, JsonObject &from); + +Status from_json(td_api::stickerFormatWebp &to, JsonObject &from); + +Status from_json(td_api::stickerFormatTgs &to, JsonObject &from); + +Status from_json(td_api::stickerFormatWebm &to, JsonObject &from); + +Status from_json(td_api::stickerTypeRegular &to, JsonObject &from); + +Status from_json(td_api::stickerTypeMask &to, JsonObject &from); + +Status from_json(td_api::stickerTypeCustomEmoji &to, JsonObject &from); + +Status from_json(td_api::storePaymentPurposePremiumSubscription &to, JsonObject &from); + +Status from_json(td_api::storePaymentPurposeGiftedPremium &to, JsonObject &from); + +Status from_json(td_api::suggestedActionEnableArchiveAndMuteNewChats &to, JsonObject &from); + +Status from_json(td_api::suggestedActionCheckPassword &to, JsonObject &from); + +Status from_json(td_api::suggestedActionCheckPhoneNumber &to, JsonObject &from); + +Status from_json(td_api::suggestedActionViewChecksHint &to, JsonObject &from); + +Status from_json(td_api::suggestedActionConvertToBroadcastGroup &to, JsonObject &from); + +Status from_json(td_api::suggestedActionSetPassword &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterRecent &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterContacts &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterAdministrators &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterSearch &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterRestricted &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterBanned &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterMention &to, JsonObject &from); + +Status from_json(td_api::supergroupMembersFilterBots &to, JsonObject &from); + +Status from_json(td_api::testInt &to, JsonObject &from); + +Status from_json(td_api::testString &to, JsonObject &from); + +Status from_json(td_api::textEntity &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeMention &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeHashtag &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeCashtag &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeBotCommand &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeUrl &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeEmailAddress &to, JsonObject &from); + +Status from_json(td_api::textEntityTypePhoneNumber &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeBankCardNumber &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeBold &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeItalic &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeUnderline &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeStrikethrough &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeSpoiler &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeCode &to, JsonObject &from); + +Status from_json(td_api::textEntityTypePre &to, JsonObject &from); + +Status from_json(td_api::textEntityTypePreCode &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeTextUrl &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeMentionName &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeCustomEmoji &to, JsonObject &from); + +Status from_json(td_api::textEntityTypeMediaTimestamp &to, JsonObject &from); + +Status from_json(td_api::textParseModeMarkdown &to, JsonObject &from); + +Status from_json(td_api::textParseModeHTML &to, JsonObject &from); + +Status from_json(td_api::themeParameters &to, JsonObject &from); + +Status from_json(td_api::topChatCategoryUsers &to, JsonObject &from); + +Status from_json(td_api::topChatCategoryBots &to, JsonObject &from); + +Status from_json(td_api::topChatCategoryGroups &to, JsonObject &from); + +Status from_json(td_api::topChatCategoryChannels &to, JsonObject &from); + +Status from_json(td_api::topChatCategoryInlineBots &to, JsonObject &from); + +Status from_json(td_api::topChatCategoryCalls &to, JsonObject &from); + +Status from_json(td_api::topChatCategoryForwardChats &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingShowStatus &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingShowProfilePhoto &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingShowLinkInForwardedMessages &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingShowPhoneNumber &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingAllowChatInvites &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingAllowCalls &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingAllowPeerToPeerCalls &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingAllowFindingByPhoneNumber &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleAllowAll &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleAllowContacts &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleAllowUsers &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleAllowChatMembers &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleRestrictAll &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleRestrictContacts &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleRestrictUsers &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRuleRestrictChatMembers &to, JsonObject &from); + +Status from_json(td_api::userPrivacySettingRules &to, JsonObject &from); + +Status from_json(td_api::venue &to, JsonObject &from); + +Status from_json(td_api::acceptCall &to, JsonObject &from); + +Status from_json(td_api::acceptTermsOfService &to, JsonObject &from); + +Status from_json(td_api::addChatMember &to, JsonObject &from); + +Status from_json(td_api::addChatMembers &to, JsonObject &from); + +Status from_json(td_api::addChatToList &to, JsonObject &from); + +Status from_json(td_api::addContact &to, JsonObject &from); + +Status from_json(td_api::addCustomServerLanguagePack &to, JsonObject &from); + +Status from_json(td_api::addFavoriteSticker &to, JsonObject &from); + +Status from_json(td_api::addFileToDownloads &to, JsonObject &from); + +Status from_json(td_api::addLocalMessage &to, JsonObject &from); + +Status from_json(td_api::addLogMessage &to, JsonObject &from); + +Status from_json(td_api::addMessageReaction &to, JsonObject &from); + +Status from_json(td_api::addNetworkStatistics &to, JsonObject &from); + +Status from_json(td_api::addProxy &to, JsonObject &from); + +Status from_json(td_api::addRecentSticker &to, JsonObject &from); + +Status from_json(td_api::addRecentlyFoundChat &to, JsonObject &from); + +Status from_json(td_api::addSavedAnimation &to, JsonObject &from); + +Status from_json(td_api::addSavedNotificationSound &to, JsonObject &from); + +Status from_json(td_api::addStickerToSet &to, JsonObject &from); + +Status from_json(td_api::answerCallbackQuery &to, JsonObject &from); + +Status from_json(td_api::answerCustomQuery &to, JsonObject &from); + +Status from_json(td_api::answerInlineQuery &to, JsonObject &from); + +Status from_json(td_api::answerPreCheckoutQuery &to, JsonObject &from); + +Status from_json(td_api::answerShippingQuery &to, JsonObject &from); + +Status from_json(td_api::answerWebAppQuery &to, JsonObject &from); + +Status from_json(td_api::assignAppStoreTransaction &to, JsonObject &from); + +Status from_json(td_api::assignGooglePlayTransaction &to, JsonObject &from); + +Status from_json(td_api::banChatMember &to, JsonObject &from); + +Status from_json(td_api::blockMessageSenderFromReplies &to, JsonObject &from); + +Status from_json(td_api::canPurchasePremium &to, JsonObject &from); + +Status from_json(td_api::canTransferOwnership &to, JsonObject &from); + +Status from_json(td_api::cancelDownloadFile &to, JsonObject &from); + +Status from_json(td_api::cancelPasswordReset &to, JsonObject &from); + +Status from_json(td_api::cancelPreliminaryUploadFile &to, JsonObject &from); + +Status from_json(td_api::changeImportedContacts &to, JsonObject &from); + +Status from_json(td_api::changePhoneNumber &to, JsonObject &from); + +Status from_json(td_api::changeStickerSet &to, JsonObject &from); + +Status from_json(td_api::checkAuthenticationBotToken &to, JsonObject &from); + +Status from_json(td_api::checkAuthenticationCode &to, JsonObject &from); + +Status from_json(td_api::checkAuthenticationEmailCode &to, JsonObject &from); + +Status from_json(td_api::checkAuthenticationPassword &to, JsonObject &from); + +Status from_json(td_api::checkAuthenticationPasswordRecoveryCode &to, JsonObject &from); + +Status from_json(td_api::checkChangePhoneNumberCode &to, JsonObject &from); + +Status from_json(td_api::checkChatInviteLink &to, JsonObject &from); + +Status from_json(td_api::checkChatUsername &to, JsonObject &from); + +Status from_json(td_api::checkCreatedPublicChatsLimit &to, JsonObject &from); + +Status from_json(td_api::checkEmailAddressVerificationCode &to, JsonObject &from); + +Status from_json(td_api::checkLoginEmailAddressCode &to, JsonObject &from); + +Status from_json(td_api::checkPasswordRecoveryCode &to, JsonObject &from); + +Status from_json(td_api::checkPhoneNumberConfirmationCode &to, JsonObject &from); + +Status from_json(td_api::checkPhoneNumberVerificationCode &to, JsonObject &from); + +Status from_json(td_api::checkRecoveryEmailAddressCode &to, JsonObject &from); + +Status from_json(td_api::checkStickerSetName &to, JsonObject &from); + +Status from_json(td_api::cleanFileName &to, JsonObject &from); + +Status from_json(td_api::clearAllDraftMessages &to, JsonObject &from); + +Status from_json(td_api::clearImportedContacts &to, JsonObject &from); + +Status from_json(td_api::clearRecentEmojiStatuses &to, JsonObject &from); + +Status from_json(td_api::clearRecentReactions &to, JsonObject &from); + +Status from_json(td_api::clearRecentStickers &to, JsonObject &from); + +Status from_json(td_api::clearRecentlyFoundChats &to, JsonObject &from); + +Status from_json(td_api::clickAnimatedEmojiMessage &to, JsonObject &from); + +Status from_json(td_api::clickPremiumSubscriptionButton &to, JsonObject &from); + +Status from_json(td_api::close &to, JsonObject &from); + +Status from_json(td_api::closeChat &to, JsonObject &from); + +Status from_json(td_api::closeSecretChat &to, JsonObject &from); + +Status from_json(td_api::closeWebApp &to, JsonObject &from); + +Status from_json(td_api::confirmQrCodeAuthentication &to, JsonObject &from); + +Status from_json(td_api::createBasicGroupChat &to, JsonObject &from); + +Status from_json(td_api::createCall &to, JsonObject &from); + +Status from_json(td_api::createChatFilter &to, JsonObject &from); + +Status from_json(td_api::createChatInviteLink &to, JsonObject &from); + +Status from_json(td_api::createForumTopic &to, JsonObject &from); + +Status from_json(td_api::createInvoiceLink &to, JsonObject &from); + +Status from_json(td_api::createNewBasicGroupChat &to, JsonObject &from); + +Status from_json(td_api::createNewSecretChat &to, JsonObject &from); + +Status from_json(td_api::createNewStickerSet &to, JsonObject &from); + +Status from_json(td_api::createNewSupergroupChat &to, JsonObject &from); + +Status from_json(td_api::createPrivateChat &to, JsonObject &from); + +Status from_json(td_api::createSecretChat &to, JsonObject &from); + +Status from_json(td_api::createSupergroupChat &to, JsonObject &from); + +Status from_json(td_api::createTemporaryPassword &to, JsonObject &from); + +Status from_json(td_api::createVideoChat &to, JsonObject &from); + +Status from_json(td_api::deleteAccount &to, JsonObject &from); + +Status from_json(td_api::deleteAllCallMessages &to, JsonObject &from); + +Status from_json(td_api::deleteAllRevokedChatInviteLinks &to, JsonObject &from); + +Status from_json(td_api::deleteChat &to, JsonObject &from); + +Status from_json(td_api::deleteChatFilter &to, JsonObject &from); + +Status from_json(td_api::deleteChatHistory &to, JsonObject &from); + +Status from_json(td_api::deleteChatMessagesByDate &to, JsonObject &from); + +Status from_json(td_api::deleteChatMessagesBySender &to, JsonObject &from); + +Status from_json(td_api::deleteChatReplyMarkup &to, JsonObject &from); + +Status from_json(td_api::deleteCommands &to, JsonObject &from); + +Status from_json(td_api::deleteFile &to, JsonObject &from); + +Status from_json(td_api::deleteForumTopic &to, JsonObject &from); + +Status from_json(td_api::deleteLanguagePack &to, JsonObject &from); + +Status from_json(td_api::deleteMessages &to, JsonObject &from); + +Status from_json(td_api::deletePassportElement &to, JsonObject &from); + +Status from_json(td_api::deleteProfilePhoto &to, JsonObject &from); + +Status from_json(td_api::deleteRevokedChatInviteLink &to, JsonObject &from); + +Status from_json(td_api::deleteSavedCredentials &to, JsonObject &from); + +Status from_json(td_api::deleteSavedOrderInfo &to, JsonObject &from); + +Status from_json(td_api::destroy &to, JsonObject &from); + +Status from_json(td_api::disableAllSupergroupUsernames &to, JsonObject &from); + +Status from_json(td_api::disableProxy &to, JsonObject &from); + +Status from_json(td_api::discardCall &to, JsonObject &from); + +Status from_json(td_api::disconnectAllWebsites &to, JsonObject &from); + +Status from_json(td_api::disconnectWebsite &to, JsonObject &from); + +Status from_json(td_api::downloadFile &to, JsonObject &from); + +Status from_json(td_api::editChatFilter &to, JsonObject &from); + +Status from_json(td_api::editChatInviteLink &to, JsonObject &from); + +Status from_json(td_api::editCustomLanguagePackInfo &to, JsonObject &from); + +Status from_json(td_api::editForumTopic &to, JsonObject &from); + +Status from_json(td_api::editInlineMessageCaption &to, JsonObject &from); + +Status from_json(td_api::editInlineMessageLiveLocation &to, JsonObject &from); + +Status from_json(td_api::editInlineMessageMedia &to, JsonObject &from); + +Status from_json(td_api::editInlineMessageReplyMarkup &to, JsonObject &from); + +Status from_json(td_api::editInlineMessageText &to, JsonObject &from); + +Status from_json(td_api::editMessageCaption &to, JsonObject &from); + +Status from_json(td_api::editMessageLiveLocation &to, JsonObject &from); + +Status from_json(td_api::editMessageMedia &to, JsonObject &from); + +Status from_json(td_api::editMessageReplyMarkup &to, JsonObject &from); + +Status from_json(td_api::editMessageSchedulingState &to, JsonObject &from); + +Status from_json(td_api::editMessageText &to, JsonObject &from); + +Status from_json(td_api::editProxy &to, JsonObject &from); + +Status from_json(td_api::enableProxy &to, JsonObject &from); + +Status from_json(td_api::endGroupCall &to, JsonObject &from); + +Status from_json(td_api::endGroupCallRecording &to, JsonObject &from); + +Status from_json(td_api::endGroupCallScreenSharing &to, JsonObject &from); + +Status from_json(td_api::finishFileGeneration &to, JsonObject &from); + +Status from_json(td_api::forwardMessages &to, JsonObject &from); + +Status from_json(td_api::getAccountTtl &to, JsonObject &from); + +Status from_json(td_api::getActiveLiveLocationMessages &to, JsonObject &from); + +Status from_json(td_api::getActiveSessions &to, JsonObject &from); + +Status from_json(td_api::getAllPassportElements &to, JsonObject &from); + +Status from_json(td_api::getAnimatedEmoji &to, JsonObject &from); + +Status from_json(td_api::getApplicationConfig &to, JsonObject &from); + +Status from_json(td_api::getApplicationDownloadLink &to, JsonObject &from); + +Status from_json(td_api::getArchivedStickerSets &to, JsonObject &from); + +Status from_json(td_api::getAttachedStickerSets &to, JsonObject &from); + +Status from_json(td_api::getAttachmentMenuBot &to, JsonObject &from); + +Status from_json(td_api::getAuthorizationState &to, JsonObject &from); + +Status from_json(td_api::getAutoDownloadSettingsPresets &to, JsonObject &from); + +Status from_json(td_api::getBackgroundUrl &to, JsonObject &from); + +Status from_json(td_api::getBackgrounds &to, JsonObject &from); + +Status from_json(td_api::getBankCardInfo &to, JsonObject &from); + +Status from_json(td_api::getBasicGroup &to, JsonObject &from); + +Status from_json(td_api::getBasicGroupFullInfo &to, JsonObject &from); + +Status from_json(td_api::getBlockedMessageSenders &to, JsonObject &from); + +Status from_json(td_api::getCallbackQueryAnswer &to, JsonObject &from); + +Status from_json(td_api::getCallbackQueryMessage &to, JsonObject &from); + +Status from_json(td_api::getChat &to, JsonObject &from); + +Status from_json(td_api::getChatAdministrators &to, JsonObject &from); + +Status from_json(td_api::getChatAvailableMessageSenders &to, JsonObject &from); + +Status from_json(td_api::getChatEventLog &to, JsonObject &from); + +Status from_json(td_api::getChatFilter &to, JsonObject &from); + +Status from_json(td_api::getChatFilterDefaultIconName &to, JsonObject &from); + +Status from_json(td_api::getChatHistory &to, JsonObject &from); + +Status from_json(td_api::getChatInviteLink &to, JsonObject &from); + +Status from_json(td_api::getChatInviteLinkCounts &to, JsonObject &from); + +Status from_json(td_api::getChatInviteLinkMembers &to, JsonObject &from); + +Status from_json(td_api::getChatInviteLinks &to, JsonObject &from); + +Status from_json(td_api::getChatJoinRequests &to, JsonObject &from); + +Status from_json(td_api::getChatListsToAddChat &to, JsonObject &from); + +Status from_json(td_api::getChatMember &to, JsonObject &from); + +Status from_json(td_api::getChatMessageByDate &to, JsonObject &from); + +Status from_json(td_api::getChatMessageCalendar &to, JsonObject &from); + +Status from_json(td_api::getChatMessageCount &to, JsonObject &from); + +Status from_json(td_api::getChatMessagePosition &to, JsonObject &from); + +Status from_json(td_api::getChatNotificationSettingsExceptions &to, JsonObject &from); + +Status from_json(td_api::getChatPinnedMessage &to, JsonObject &from); + +Status from_json(td_api::getChatScheduledMessages &to, JsonObject &from); + +Status from_json(td_api::getChatSparseMessagePositions &to, JsonObject &from); + +Status from_json(td_api::getChatSponsoredMessages &to, JsonObject &from); + +Status from_json(td_api::getChatStatistics &to, JsonObject &from); + +Status from_json(td_api::getChats &to, JsonObject &from); + +Status from_json(td_api::getCommands &to, JsonObject &from); + +Status from_json(td_api::getConnectedWebsites &to, JsonObject &from); + +Status from_json(td_api::getContacts &to, JsonObject &from); + +Status from_json(td_api::getCountries &to, JsonObject &from); + +Status from_json(td_api::getCountryCode &to, JsonObject &from); + +Status from_json(td_api::getCreatedPublicChats &to, JsonObject &from); + +Status from_json(td_api::getCurrentState &to, JsonObject &from); + +Status from_json(td_api::getCustomEmojiReactionAnimations &to, JsonObject &from); + +Status from_json(td_api::getCustomEmojiStickers &to, JsonObject &from); + +Status from_json(td_api::getDatabaseStatistics &to, JsonObject &from); + +Status from_json(td_api::getDeepLinkInfo &to, JsonObject &from); + +Status from_json(td_api::getDefaultEmojiStatuses &to, JsonObject &from); + +Status from_json(td_api::getEmojiReaction &to, JsonObject &from); + +Status from_json(td_api::getEmojiSuggestionsUrl &to, JsonObject &from); + +Status from_json(td_api::getExternalLink &to, JsonObject &from); + +Status from_json(td_api::getExternalLinkInfo &to, JsonObject &from); + +Status from_json(td_api::getFavoriteStickers &to, JsonObject &from); + +Status from_json(td_api::getFile &to, JsonObject &from); + +Status from_json(td_api::getFileDownloadedPrefixSize &to, JsonObject &from); + +Status from_json(td_api::getFileExtension &to, JsonObject &from); + +Status from_json(td_api::getFileMimeType &to, JsonObject &from); + +Status from_json(td_api::getForumTopicDefaultIcons &to, JsonObject &from); + +Status from_json(td_api::getGameHighScores &to, JsonObject &from); + +Status from_json(td_api::getGroupCall &to, JsonObject &from); + +Status from_json(td_api::getGroupCallInviteLink &to, JsonObject &from); + +Status from_json(td_api::getGroupCallStreamSegment &to, JsonObject &from); + +Status from_json(td_api::getGroupCallStreams &to, JsonObject &from); + +Status from_json(td_api::getGroupsInCommon &to, JsonObject &from); + +Status from_json(td_api::getImportedContactCount &to, JsonObject &from); + +Status from_json(td_api::getInactiveSupergroupChats &to, JsonObject &from); + +Status from_json(td_api::getInlineGameHighScores &to, JsonObject &from); + +Status from_json(td_api::getInlineQueryResults &to, JsonObject &from); + +Status from_json(td_api::getInstalledStickerSets &to, JsonObject &from); + +Status from_json(td_api::getInternalLinkType &to, JsonObject &from); + +Status from_json(td_api::getJsonString &to, JsonObject &from); + +Status from_json(td_api::getJsonValue &to, JsonObject &from); + +Status from_json(td_api::getLanguagePackInfo &to, JsonObject &from); + +Status from_json(td_api::getLanguagePackString &to, JsonObject &from); + +Status from_json(td_api::getLanguagePackStrings &to, JsonObject &from); + +Status from_json(td_api::getLocalizationTargetInfo &to, JsonObject &from); + +Status from_json(td_api::getLogStream &to, JsonObject &from); + +Status from_json(td_api::getLogTagVerbosityLevel &to, JsonObject &from); + +Status from_json(td_api::getLogTags &to, JsonObject &from); + +Status from_json(td_api::getLogVerbosityLevel &to, JsonObject &from); + +Status from_json(td_api::getLoginUrl &to, JsonObject &from); + +Status from_json(td_api::getLoginUrlInfo &to, JsonObject &from); + +Status from_json(td_api::getMapThumbnailFile &to, JsonObject &from); + +Status from_json(td_api::getMarkdownText &to, JsonObject &from); + +Status from_json(td_api::getMe &to, JsonObject &from); + +Status from_json(td_api::getMenuButton &to, JsonObject &from); + +Status from_json(td_api::getMessage &to, JsonObject &from); + +Status from_json(td_api::getMessageAddedReactions &to, JsonObject &from); + +Status from_json(td_api::getMessageAvailableReactions &to, JsonObject &from); + +Status from_json(td_api::getMessageEmbeddingCode &to, JsonObject &from); + +Status from_json(td_api::getMessageFileType &to, JsonObject &from); + +Status from_json(td_api::getMessageImportConfirmationText &to, JsonObject &from); + +Status from_json(td_api::getMessageLink &to, JsonObject &from); + +Status from_json(td_api::getMessageLinkInfo &to, JsonObject &from); + +Status from_json(td_api::getMessageLocally &to, JsonObject &from); + +Status from_json(td_api::getMessagePublicForwards &to, JsonObject &from); + +Status from_json(td_api::getMessageStatistics &to, JsonObject &from); + +Status from_json(td_api::getMessageThread &to, JsonObject &from); + +Status from_json(td_api::getMessageThreadHistory &to, JsonObject &from); + +Status from_json(td_api::getMessageViewers &to, JsonObject &from); + +Status from_json(td_api::getMessages &to, JsonObject &from); + +Status from_json(td_api::getNetworkStatistics &to, JsonObject &from); + +Status from_json(td_api::getOption &to, JsonObject &from); + +Status from_json(td_api::getPassportAuthorizationForm &to, JsonObject &from); + +Status from_json(td_api::getPassportAuthorizationFormAvailableElements &to, JsonObject &from); + +Status from_json(td_api::getPassportElement &to, JsonObject &from); + +Status from_json(td_api::getPasswordState &to, JsonObject &from); + +Status from_json(td_api::getPaymentForm &to, JsonObject &from); + +Status from_json(td_api::getPaymentReceipt &to, JsonObject &from); + +Status from_json(td_api::getPhoneNumberInfo &to, JsonObject &from); + +Status from_json(td_api::getPhoneNumberInfoSync &to, JsonObject &from); + +Status from_json(td_api::getPollVoters &to, JsonObject &from); + +Status from_json(td_api::getPreferredCountryLanguage &to, JsonObject &from); + +Status from_json(td_api::getPremiumFeatures &to, JsonObject &from); + +Status from_json(td_api::getPremiumLimit &to, JsonObject &from); + +Status from_json(td_api::getPremiumState &to, JsonObject &from); + +Status from_json(td_api::getPremiumStickerExamples &to, JsonObject &from); + +Status from_json(td_api::getPremiumStickers &to, JsonObject &from); + +Status from_json(td_api::getProxies &to, JsonObject &from); + +Status from_json(td_api::getProxyLink &to, JsonObject &from); + +Status from_json(td_api::getPushReceiverId &to, JsonObject &from); + +Status from_json(td_api::getRecentEmojiStatuses &to, JsonObject &from); + +Status from_json(td_api::getRecentInlineBots &to, JsonObject &from); + +Status from_json(td_api::getRecentStickers &to, JsonObject &from); + +Status from_json(td_api::getRecentlyOpenedChats &to, JsonObject &from); + +Status from_json(td_api::getRecentlyVisitedTMeUrls &to, JsonObject &from); + +Status from_json(td_api::getRecommendedChatFilters &to, JsonObject &from); + +Status from_json(td_api::getRecoveryEmailAddress &to, JsonObject &from); + +Status from_json(td_api::getRemoteFile &to, JsonObject &from); + +Status from_json(td_api::getRepliedMessage &to, JsonObject &from); + +Status from_json(td_api::getSavedAnimations &to, JsonObject &from); + +Status from_json(td_api::getSavedNotificationSound &to, JsonObject &from); + +Status from_json(td_api::getSavedNotificationSounds &to, JsonObject &from); + +Status from_json(td_api::getSavedOrderInfo &to, JsonObject &from); + +Status from_json(td_api::getScopeNotificationSettings &to, JsonObject &from); + +Status from_json(td_api::getSecretChat &to, JsonObject &from); + +Status from_json(td_api::getStatisticalGraph &to, JsonObject &from); + +Status from_json(td_api::getStickerEmojis &to, JsonObject &from); + +Status from_json(td_api::getStickerSet &to, JsonObject &from); + +Status from_json(td_api::getStickers &to, JsonObject &from); + +Status from_json(td_api::getStorageStatistics &to, JsonObject &from); + +Status from_json(td_api::getStorageStatisticsFast &to, JsonObject &from); + +Status from_json(td_api::getSuggestedFileName &to, JsonObject &from); + +Status from_json(td_api::getSuggestedStickerSetName &to, JsonObject &from); + +Status from_json(td_api::getSuitableDiscussionChats &to, JsonObject &from); + +Status from_json(td_api::getSupergroup &to, JsonObject &from); + +Status from_json(td_api::getSupergroupFullInfo &to, JsonObject &from); + +Status from_json(td_api::getSupergroupMembers &to, JsonObject &from); + +Status from_json(td_api::getSupportUser &to, JsonObject &from); + +Status from_json(td_api::getTemporaryPasswordState &to, JsonObject &from); + +Status from_json(td_api::getTextEntities &to, JsonObject &from); + +Status from_json(td_api::getThemeParametersJsonString &to, JsonObject &from); + +Status from_json(td_api::getThemedEmojiStatuses &to, JsonObject &from); + +Status from_json(td_api::getTopChats &to, JsonObject &from); + +Status from_json(td_api::getTrendingStickerSets &to, JsonObject &from); + +Status from_json(td_api::getUser &to, JsonObject &from); + +Status from_json(td_api::getUserFullInfo &to, JsonObject &from); + +Status from_json(td_api::getUserPrivacySettingRules &to, JsonObject &from); + +Status from_json(td_api::getUserProfilePhotos &to, JsonObject &from); + +Status from_json(td_api::getUserSupportInfo &to, JsonObject &from); + +Status from_json(td_api::getVideoChatAvailableParticipants &to, JsonObject &from); + +Status from_json(td_api::getVideoChatRtmpUrl &to, JsonObject &from); + +Status from_json(td_api::getWebAppUrl &to, JsonObject &from); + +Status from_json(td_api::getWebPageInstantView &to, JsonObject &from); + +Status from_json(td_api::getWebPagePreview &to, JsonObject &from); + +Status from_json(td_api::hideSuggestedAction &to, JsonObject &from); + +Status from_json(td_api::importContacts &to, JsonObject &from); + +Status from_json(td_api::importMessages &to, JsonObject &from); + +Status from_json(td_api::inviteGroupCallParticipants &to, JsonObject &from); + +Status from_json(td_api::joinChat &to, JsonObject &from); + +Status from_json(td_api::joinChatByInviteLink &to, JsonObject &from); + +Status from_json(td_api::joinGroupCall &to, JsonObject &from); + +Status from_json(td_api::leaveChat &to, JsonObject &from); + +Status from_json(td_api::leaveGroupCall &to, JsonObject &from); + +Status from_json(td_api::loadChats &to, JsonObject &from); + +Status from_json(td_api::loadGroupCallParticipants &to, JsonObject &from); + +Status from_json(td_api::logOut &to, JsonObject &from); + +Status from_json(td_api::openChat &to, JsonObject &from); + +Status from_json(td_api::openMessageContent &to, JsonObject &from); + +Status from_json(td_api::openWebApp &to, JsonObject &from); + +Status from_json(td_api::optimizeStorage &to, JsonObject &from); + +Status from_json(td_api::parseMarkdown &to, JsonObject &from); + +Status from_json(td_api::parseTextEntities &to, JsonObject &from); + +Status from_json(td_api::pinChatMessage &to, JsonObject &from); + +Status from_json(td_api::pingProxy &to, JsonObject &from); + +Status from_json(td_api::preliminaryUploadFile &to, JsonObject &from); + +Status from_json(td_api::processChatJoinRequest &to, JsonObject &from); + +Status from_json(td_api::processChatJoinRequests &to, JsonObject &from); + +Status from_json(td_api::processPushNotification &to, JsonObject &from); + +Status from_json(td_api::rateSpeechRecognition &to, JsonObject &from); + +Status from_json(td_api::readAllChatMentions &to, JsonObject &from); + +Status from_json(td_api::readAllChatReactions &to, JsonObject &from); + +Status from_json(td_api::readAllMessageThreadMentions &to, JsonObject &from); + +Status from_json(td_api::readAllMessageThreadReactions &to, JsonObject &from); + +Status from_json(td_api::readFilePart &to, JsonObject &from); + +Status from_json(td_api::recognizeSpeech &to, JsonObject &from); + +Status from_json(td_api::recoverAuthenticationPassword &to, JsonObject &from); + +Status from_json(td_api::recoverPassword &to, JsonObject &from); + +Status from_json(td_api::registerDevice &to, JsonObject &from); + +Status from_json(td_api::registerUser &to, JsonObject &from); + +Status from_json(td_api::removeAllFilesFromDownloads &to, JsonObject &from); + +Status from_json(td_api::removeBackground &to, JsonObject &from); + +Status from_json(td_api::removeChatActionBar &to, JsonObject &from); + +Status from_json(td_api::removeContacts &to, JsonObject &from); + +Status from_json(td_api::removeFavoriteSticker &to, JsonObject &from); + +Status from_json(td_api::removeFileFromDownloads &to, JsonObject &from); + +Status from_json(td_api::removeMessageReaction &to, JsonObject &from); + +Status from_json(td_api::removeNotification &to, JsonObject &from); + +Status from_json(td_api::removeNotificationGroup &to, JsonObject &from); + +Status from_json(td_api::removeProxy &to, JsonObject &from); + +Status from_json(td_api::removeRecentHashtag &to, JsonObject &from); + +Status from_json(td_api::removeRecentSticker &to, JsonObject &from); + +Status from_json(td_api::removeRecentlyFoundChat &to, JsonObject &from); + +Status from_json(td_api::removeSavedAnimation &to, JsonObject &from); + +Status from_json(td_api::removeSavedNotificationSound &to, JsonObject &from); + +Status from_json(td_api::removeStickerFromSet &to, JsonObject &from); + +Status from_json(td_api::removeTopChat &to, JsonObject &from); + +Status from_json(td_api::reorderActiveUsernames &to, JsonObject &from); + +Status from_json(td_api::reorderChatFilters &to, JsonObject &from); + +Status from_json(td_api::reorderInstalledStickerSets &to, JsonObject &from); + +Status from_json(td_api::reorderSupergroupActiveUsernames &to, JsonObject &from); + +Status from_json(td_api::replacePrimaryChatInviteLink &to, JsonObject &from); + +Status from_json(td_api::replaceVideoChatRtmpUrl &to, JsonObject &from); + +Status from_json(td_api::reportChat &to, JsonObject &from); + +Status from_json(td_api::reportChatPhoto &to, JsonObject &from); + +Status from_json(td_api::reportMessageReactions &to, JsonObject &from); + +Status from_json(td_api::reportSupergroupSpam &to, JsonObject &from); + +Status from_json(td_api::requestAuthenticationPasswordRecovery &to, JsonObject &from); + +Status from_json(td_api::requestPasswordRecovery &to, JsonObject &from); + +Status from_json(td_api::requestQrCodeAuthentication &to, JsonObject &from); + +Status from_json(td_api::resendAuthenticationCode &to, JsonObject &from); + +Status from_json(td_api::resendChangePhoneNumberCode &to, JsonObject &from); + +Status from_json(td_api::resendEmailAddressVerificationCode &to, JsonObject &from); + +Status from_json(td_api::resendLoginEmailAddressCode &to, JsonObject &from); + +Status from_json(td_api::resendMessages &to, JsonObject &from); + +Status from_json(td_api::resendPhoneNumberConfirmationCode &to, JsonObject &from); + +Status from_json(td_api::resendPhoneNumberVerificationCode &to, JsonObject &from); + +Status from_json(td_api::resendRecoveryEmailAddressCode &to, JsonObject &from); + +Status from_json(td_api::resetAllNotificationSettings &to, JsonObject &from); + +Status from_json(td_api::resetBackgrounds &to, JsonObject &from); + +Status from_json(td_api::resetNetworkStatistics &to, JsonObject &from); + +Status from_json(td_api::resetPassword &to, JsonObject &from); + +Status from_json(td_api::revokeChatInviteLink &to, JsonObject &from); + +Status from_json(td_api::revokeGroupCallInviteLink &to, JsonObject &from); + +Status from_json(td_api::saveApplicationLogEvent &to, JsonObject &from); + +Status from_json(td_api::searchBackground &to, JsonObject &from); + +Status from_json(td_api::searchCallMessages &to, JsonObject &from); + +Status from_json(td_api::searchChatMembers &to, JsonObject &from); + +Status from_json(td_api::searchChatMessages &to, JsonObject &from); + +Status from_json(td_api::searchChatRecentLocationMessages &to, JsonObject &from); + +Status from_json(td_api::searchChats &to, JsonObject &from); + +Status from_json(td_api::searchChatsNearby &to, JsonObject &from); + +Status from_json(td_api::searchChatsOnServer &to, JsonObject &from); + +Status from_json(td_api::searchContacts &to, JsonObject &from); + +Status from_json(td_api::searchEmojis &to, JsonObject &from); + +Status from_json(td_api::searchFileDownloads &to, JsonObject &from); + +Status from_json(td_api::searchHashtags &to, JsonObject &from); + +Status from_json(td_api::searchInstalledStickerSets &to, JsonObject &from); + +Status from_json(td_api::searchMessages &to, JsonObject &from); + +Status from_json(td_api::searchOutgoingDocumentMessages &to, JsonObject &from); + +Status from_json(td_api::searchPublicChat &to, JsonObject &from); + +Status from_json(td_api::searchPublicChats &to, JsonObject &from); + +Status from_json(td_api::searchSecretMessages &to, JsonObject &from); + +Status from_json(td_api::searchStickerSet &to, JsonObject &from); + +Status from_json(td_api::searchStickerSets &to, JsonObject &from); + +Status from_json(td_api::searchStickers &to, JsonObject &from); + +Status from_json(td_api::searchUserByPhoneNumber &to, JsonObject &from); + +Status from_json(td_api::sendBotStartMessage &to, JsonObject &from); + +Status from_json(td_api::sendCallDebugInformation &to, JsonObject &from); + +Status from_json(td_api::sendCallLog &to, JsonObject &from); + +Status from_json(td_api::sendCallRating &to, JsonObject &from); + +Status from_json(td_api::sendCallSignalingData &to, JsonObject &from); + +Status from_json(td_api::sendChatAction &to, JsonObject &from); + +Status from_json(td_api::sendChatScreenshotTakenNotification &to, JsonObject &from); + +Status from_json(td_api::sendCustomRequest &to, JsonObject &from); + +Status from_json(td_api::sendEmailAddressVerificationCode &to, JsonObject &from); + +Status from_json(td_api::sendInlineQueryResultMessage &to, JsonObject &from); + +Status from_json(td_api::sendMessage &to, JsonObject &from); + +Status from_json(td_api::sendMessageAlbum &to, JsonObject &from); + +Status from_json(td_api::sendPassportAuthorizationForm &to, JsonObject &from); + +Status from_json(td_api::sendPaymentForm &to, JsonObject &from); + +Status from_json(td_api::sendPhoneNumberConfirmationCode &to, JsonObject &from); + +Status from_json(td_api::sendPhoneNumberVerificationCode &to, JsonObject &from); + +Status from_json(td_api::sendWebAppData &to, JsonObject &from); + +Status from_json(td_api::setAccountTtl &to, JsonObject &from); + +Status from_json(td_api::setAlarm &to, JsonObject &from); + +Status from_json(td_api::setAuthenticationEmailAddress &to, JsonObject &from); + +Status from_json(td_api::setAuthenticationPhoneNumber &to, JsonObject &from); + +Status from_json(td_api::setAutoDownloadSettings &to, JsonObject &from); + +Status from_json(td_api::setBackground &to, JsonObject &from); + +Status from_json(td_api::setBio &to, JsonObject &from); + +Status from_json(td_api::setBotUpdatesStatus &to, JsonObject &from); + +Status from_json(td_api::setChatAvailableReactions &to, JsonObject &from); + +Status from_json(td_api::setChatClientData &to, JsonObject &from); + +Status from_json(td_api::setChatDescription &to, JsonObject &from); + +Status from_json(td_api::setChatDiscussionGroup &to, JsonObject &from); + +Status from_json(td_api::setChatDraftMessage &to, JsonObject &from); + +Status from_json(td_api::setChatLocation &to, JsonObject &from); + +Status from_json(td_api::setChatMemberStatus &to, JsonObject &from); + +Status from_json(td_api::setChatMessageSender &to, JsonObject &from); + +Status from_json(td_api::setChatMessageTtl &to, JsonObject &from); + +Status from_json(td_api::setChatNotificationSettings &to, JsonObject &from); + +Status from_json(td_api::setChatPermissions &to, JsonObject &from); + +Status from_json(td_api::setChatPhoto &to, JsonObject &from); + +Status from_json(td_api::setChatSlowModeDelay &to, JsonObject &from); + +Status from_json(td_api::setChatTheme &to, JsonObject &from); + +Status from_json(td_api::setChatTitle &to, JsonObject &from); + +Status from_json(td_api::setCommands &to, JsonObject &from); + +Status from_json(td_api::setCustomLanguagePack &to, JsonObject &from); + +Status from_json(td_api::setCustomLanguagePackString &to, JsonObject &from); + +Status from_json(td_api::setDatabaseEncryptionKey &to, JsonObject &from); + +Status from_json(td_api::setDefaultChannelAdministratorRights &to, JsonObject &from); + +Status from_json(td_api::setDefaultGroupAdministratorRights &to, JsonObject &from); + +Status from_json(td_api::setDefaultReactionType &to, JsonObject &from); + +Status from_json(td_api::setEmojiStatus &to, JsonObject &from); + +Status from_json(td_api::setFileGenerationProgress &to, JsonObject &from); + +Status from_json(td_api::setGameScore &to, JsonObject &from); + +Status from_json(td_api::setGroupCallParticipantIsSpeaking &to, JsonObject &from); + +Status from_json(td_api::setGroupCallParticipantVolumeLevel &to, JsonObject &from); + +Status from_json(td_api::setGroupCallTitle &to, JsonObject &from); + +Status from_json(td_api::setInactiveSessionTtl &to, JsonObject &from); + +Status from_json(td_api::setInlineGameScore &to, JsonObject &from); + +Status from_json(td_api::setLocation &to, JsonObject &from); + +Status from_json(td_api::setLogStream &to, JsonObject &from); + +Status from_json(td_api::setLogTagVerbosityLevel &to, JsonObject &from); + +Status from_json(td_api::setLogVerbosityLevel &to, JsonObject &from); + +Status from_json(td_api::setLoginEmailAddress &to, JsonObject &from); + +Status from_json(td_api::setMenuButton &to, JsonObject &from); + +Status from_json(td_api::setName &to, JsonObject &from); + +Status from_json(td_api::setNetworkType &to, JsonObject &from); + +Status from_json(td_api::setOption &to, JsonObject &from); + +Status from_json(td_api::setPassportElement &to, JsonObject &from); + +Status from_json(td_api::setPassportElementErrors &to, JsonObject &from); + +Status from_json(td_api::setPassword &to, JsonObject &from); + +Status from_json(td_api::setPinnedChats &to, JsonObject &from); + +Status from_json(td_api::setPollAnswer &to, JsonObject &from); + +Status from_json(td_api::setProfilePhoto &to, JsonObject &from); + +Status from_json(td_api::setRecoveryEmailAddress &to, JsonObject &from); + +Status from_json(td_api::setScopeNotificationSettings &to, JsonObject &from); + +Status from_json(td_api::setStickerPositionInSet &to, JsonObject &from); + +Status from_json(td_api::setStickerSetThumbnail &to, JsonObject &from); + +Status from_json(td_api::setSupergroupStickerSet &to, JsonObject &from); + +Status from_json(td_api::setSupergroupUsername &to, JsonObject &from); + +Status from_json(td_api::setTdlibParameters &to, JsonObject &from); + +Status from_json(td_api::setUserPrivacySettingRules &to, JsonObject &from); + +Status from_json(td_api::setUserSupportInfo &to, JsonObject &from); + +Status from_json(td_api::setUsername &to, JsonObject &from); + +Status from_json(td_api::setVideoChatDefaultParticipant &to, JsonObject &from); + +Status from_json(td_api::sharePhoneNumber &to, JsonObject &from); + +Status from_json(td_api::startGroupCallRecording &to, JsonObject &from); + +Status from_json(td_api::startGroupCallScreenSharing &to, JsonObject &from); + +Status from_json(td_api::startScheduledGroupCall &to, JsonObject &from); + +Status from_json(td_api::stopPoll &to, JsonObject &from); + +Status from_json(td_api::synchronizeLanguagePack &to, JsonObject &from); + +Status from_json(td_api::terminateAllOtherSessions &to, JsonObject &from); + +Status from_json(td_api::terminateSession &to, JsonObject &from); + +Status from_json(td_api::testCallBytes &to, JsonObject &from); + +Status from_json(td_api::testCallEmpty &to, JsonObject &from); + +Status from_json(td_api::testCallString &to, JsonObject &from); + +Status from_json(td_api::testCallVectorInt &to, JsonObject &from); + +Status from_json(td_api::testCallVectorIntObject &to, JsonObject &from); + +Status from_json(td_api::testCallVectorString &to, JsonObject &from); + +Status from_json(td_api::testCallVectorStringObject &to, JsonObject &from); + +Status from_json(td_api::testGetDifference &to, JsonObject &from); + +Status from_json(td_api::testNetwork &to, JsonObject &from); + +Status from_json(td_api::testProxy &to, JsonObject &from); + +Status from_json(td_api::testReturnError &to, JsonObject &from); + +Status from_json(td_api::testSquareInt &to, JsonObject &from); + +Status from_json(td_api::testUseUpdate &to, JsonObject &from); + +Status from_json(td_api::toggleAllDownloadsArePaused &to, JsonObject &from); + +Status from_json(td_api::toggleBotIsAddedToAttachmentMenu &to, JsonObject &from); + +Status from_json(td_api::toggleChatDefaultDisableNotification &to, JsonObject &from); + +Status from_json(td_api::toggleChatHasProtectedContent &to, JsonObject &from); + +Status from_json(td_api::toggleChatIsMarkedAsUnread &to, JsonObject &from); + +Status from_json(td_api::toggleChatIsPinned &to, JsonObject &from); + +Status from_json(td_api::toggleDownloadIsPaused &to, JsonObject &from); + +Status from_json(td_api::toggleForumTopicIsClosed &to, JsonObject &from); + +Status from_json(td_api::toggleGroupCallEnabledStartNotification &to, JsonObject &from); + +Status from_json(td_api::toggleGroupCallIsMyVideoEnabled &to, JsonObject &from); + +Status from_json(td_api::toggleGroupCallIsMyVideoPaused &to, JsonObject &from); + +Status from_json(td_api::toggleGroupCallMuteNewParticipants &to, JsonObject &from); + +Status from_json(td_api::toggleGroupCallParticipantIsHandRaised &to, JsonObject &from); + +Status from_json(td_api::toggleGroupCallParticipantIsMuted &to, JsonObject &from); + +Status from_json(td_api::toggleGroupCallScreenSharingIsPaused &to, JsonObject &from); + +Status from_json(td_api::toggleMessageSenderIsBlocked &to, JsonObject &from); + +Status from_json(td_api::toggleSessionCanAcceptCalls &to, JsonObject &from); + +Status from_json(td_api::toggleSessionCanAcceptSecretChats &to, JsonObject &from); + +Status from_json(td_api::toggleSupergroupIsAllHistoryAvailable &to, JsonObject &from); + +Status from_json(td_api::toggleSupergroupIsBroadcastGroup &to, JsonObject &from); + +Status from_json(td_api::toggleSupergroupIsForum &to, JsonObject &from); + +Status from_json(td_api::toggleSupergroupJoinByRequest &to, JsonObject &from); + +Status from_json(td_api::toggleSupergroupJoinToSendMessages &to, JsonObject &from); + +Status from_json(td_api::toggleSupergroupSignMessages &to, JsonObject &from); + +Status from_json(td_api::toggleSupergroupUsernameIsActive &to, JsonObject &from); + +Status from_json(td_api::toggleUsernameIsActive &to, JsonObject &from); + +Status from_json(td_api::transferChatOwnership &to, JsonObject &from); + +Status from_json(td_api::translateText &to, JsonObject &from); + +Status from_json(td_api::unpinAllChatMessages &to, JsonObject &from); + +Status from_json(td_api::unpinAllMessageThreadMessages &to, JsonObject &from); + +Status from_json(td_api::unpinChatMessage &to, JsonObject &from); + +Status from_json(td_api::upgradeBasicGroupChatToSupergroupChat &to, JsonObject &from); + +Status from_json(td_api::uploadStickerFile &to, JsonObject &from); + +Status from_json(td_api::validateOrderInfo &to, JsonObject &from); + +Status from_json(td_api::viewMessages &to, JsonObject &from); + +Status from_json(td_api::viewPremiumFeature &to, JsonObject &from); + +Status from_json(td_api::viewTrendingStickerSets &to, JsonObject &from); + +Status from_json(td_api::writeGeneratedFilePart &to, JsonObject &from); + +void to_json(JsonValueScope &jv, const td_api::accountTtl &object); + +void to_json(JsonValueScope &jv, const td_api::addedReaction &object); + +void to_json(JsonValueScope &jv, const td_api::addedReactions &object); + +void to_json(JsonValueScope &jv, const td_api::address &object); + +void to_json(JsonValueScope &jv, const td_api::animatedChatPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::animatedEmoji &object); + +void to_json(JsonValueScope &jv, const td_api::animation &object); + +void to_json(JsonValueScope &jv, const td_api::animations &object); + +void to_json(JsonValueScope &jv, const td_api::attachmentMenuBot &object); + +void to_json(JsonValueScope &jv, const td_api::attachmentMenuBotColor &object); + +void to_json(JsonValueScope &jv, const td_api::audio &object); + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeInfo &object); + +void to_json(JsonValueScope &jv, const td_api::AuthenticationCodeType &object); + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeTelegramMessage &object); + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeSms &object); + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeCall &object); + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeFlashCall &object); + +void to_json(JsonValueScope &jv, const td_api::authenticationCodeTypeMissedCall &object); + +void to_json(JsonValueScope &jv, const td_api::AuthorizationState &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitTdlibParameters &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailAddress &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitEmailCode &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitCode &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitOtherDeviceConfirmation &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitRegistration &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateWaitPassword &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateReady &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateLoggingOut &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateClosing &object); + +void to_json(JsonValueScope &jv, const td_api::authorizationStateClosed &object); + +void to_json(JsonValueScope &jv, const td_api::autoDownloadSettings &object); + +void to_json(JsonValueScope &jv, const td_api::autoDownloadSettingsPresets &object); + +void to_json(JsonValueScope &jv, const td_api::availableReaction &object); + +void to_json(JsonValueScope &jv, const td_api::availableReactions &object); + +void to_json(JsonValueScope &jv, const td_api::background &object); + +void to_json(JsonValueScope &jv, const td_api::BackgroundFill &object); + +void to_json(JsonValueScope &jv, const td_api::backgroundFillSolid &object); + +void to_json(JsonValueScope &jv, const td_api::backgroundFillGradient &object); + +void to_json(JsonValueScope &jv, const td_api::backgroundFillFreeformGradient &object); + +void to_json(JsonValueScope &jv, const td_api::BackgroundType &object); + +void to_json(JsonValueScope &jv, const td_api::backgroundTypeWallpaper &object); + +void to_json(JsonValueScope &jv, const td_api::backgroundTypePattern &object); + +void to_json(JsonValueScope &jv, const td_api::backgroundTypeFill &object); + +void to_json(JsonValueScope &jv, const td_api::backgrounds &object); + +void to_json(JsonValueScope &jv, const td_api::bankCardActionOpenUrl &object); + +void to_json(JsonValueScope &jv, const td_api::bankCardInfo &object); + +void to_json(JsonValueScope &jv, const td_api::basicGroup &object); + +void to_json(JsonValueScope &jv, const td_api::basicGroupFullInfo &object); + +void to_json(JsonValueScope &jv, const td_api::botCommand &object); + +void to_json(JsonValueScope &jv, const td_api::botCommands &object); + +void to_json(JsonValueScope &jv, const td_api::botInfo &object); + +void to_json(JsonValueScope &jv, const td_api::botMenuButton &object); + +void to_json(JsonValueScope &jv, const td_api::call &object); + +void to_json(JsonValueScope &jv, const td_api::CallDiscardReason &object); + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonEmpty &object); + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonMissed &object); + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDeclined &object); + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonDisconnected &object); + +void to_json(JsonValueScope &jv, const td_api::callDiscardReasonHungUp &object); + +void to_json(JsonValueScope &jv, const td_api::callId &object); + +void to_json(JsonValueScope &jv, const td_api::callProtocol &object); + +void to_json(JsonValueScope &jv, const td_api::callServer &object); + +void to_json(JsonValueScope &jv, const td_api::CallServerType &object); + +void to_json(JsonValueScope &jv, const td_api::callServerTypeTelegramReflector &object); + +void to_json(JsonValueScope &jv, const td_api::callServerTypeWebrtc &object); + +void to_json(JsonValueScope &jv, const td_api::CallState &object); + +void to_json(JsonValueScope &jv, const td_api::callStatePending &object); + +void to_json(JsonValueScope &jv, const td_api::callStateExchangingKeys &object); + +void to_json(JsonValueScope &jv, const td_api::callStateReady &object); + +void to_json(JsonValueScope &jv, const td_api::callStateHangingUp &object); + +void to_json(JsonValueScope &jv, const td_api::callStateDiscarded &object); + +void to_json(JsonValueScope &jv, const td_api::callStateError &object); + +void to_json(JsonValueScope &jv, const td_api::callbackQueryAnswer &object); + +void to_json(JsonValueScope &jv, const td_api::CallbackQueryPayload &object); + +void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadData &object); + +void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadDataWithPassword &object); + +void to_json(JsonValueScope &jv, const td_api::callbackQueryPayloadGame &object); + +void to_json(JsonValueScope &jv, const td_api::CanTransferOwnershipResult &object); + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultOk &object); + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordNeeded &object); + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultPasswordTooFresh &object); + +void to_json(JsonValueScope &jv, const td_api::canTransferOwnershipResultSessionTooFresh &object); + +void to_json(JsonValueScope &jv, const td_api::chat &object); + +void to_json(JsonValueScope &jv, const td_api::ChatAction &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionTyping &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideo &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideo &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingDocument &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionChoosingSticker &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionChoosingLocation &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionChoosingContact &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionStartPlayingGame &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionRecordingVideoNote &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionUploadingVideoNote &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionWatchingAnimations &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionCancel &object); + +void to_json(JsonValueScope &jv, const td_api::ChatActionBar &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionBarReportSpam &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionBarReportUnrelatedLocation &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionBarInviteMembers &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionBarReportAddBlock &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionBarAddContact &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionBarSharePhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::chatActionBarJoinRequest &object); + +void to_json(JsonValueScope &jv, const td_api::chatAdministrator &object); + +void to_json(JsonValueScope &jv, const td_api::chatAdministratorRights &object); + +void to_json(JsonValueScope &jv, const td_api::chatAdministrators &object); + +void to_json(JsonValueScope &jv, const td_api::ChatAvailableReactions &object); + +void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsAll &object); + +void to_json(JsonValueScope &jv, const td_api::chatAvailableReactionsSome &object); + +void to_json(JsonValueScope &jv, const td_api::chatEvent &object); + +void to_json(JsonValueScope &jv, const td_api::ChatEventAction &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageEdited &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageDeleted &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMessagePinned &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageUnpinned &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventPollStopped &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoined &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByInviteLink &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberJoinedByRequest &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberInvited &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberLeft &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberPromoted &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMemberRestricted &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventAvailableReactionsChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventDescriptionChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventLinkedChatChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventLocationChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventMessageTtlChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventPermissionsChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventPhotoChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventSlowModeDelayChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventStickerSetChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventTitleChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventUsernameChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventActiveUsernamesChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventHasProtectedContentToggled &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventInvitesToggled &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventIsAllHistoryAvailableToggled &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventSignMessagesToggled &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkEdited &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkRevoked &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventInviteLinkDeleted &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatCreated &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatEnded &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatMuteNewParticipantsToggled &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantIsMutedToggled &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventVideoChatParticipantVolumeLevelChanged &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventIsForumToggled &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicCreated &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicEdited &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicToggleIsClosed &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicDeleted &object); + +void to_json(JsonValueScope &jv, const td_api::chatEventForumTopicPinned &object); + +void to_json(JsonValueScope &jv, const td_api::chatEvents &object); + +void to_json(JsonValueScope &jv, const td_api::chatFilter &object); + +void to_json(JsonValueScope &jv, const td_api::chatFilterInfo &object); + +void to_json(JsonValueScope &jv, const td_api::chatInviteLink &object); + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCount &object); + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkCounts &object); + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkInfo &object); + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMember &object); + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinkMembers &object); + +void to_json(JsonValueScope &jv, const td_api::chatInviteLinks &object); + +void to_json(JsonValueScope &jv, const td_api::chatJoinRequest &object); + +void to_json(JsonValueScope &jv, const td_api::chatJoinRequests &object); + +void to_json(JsonValueScope &jv, const td_api::chatJoinRequestsInfo &object); + +void to_json(JsonValueScope &jv, const td_api::ChatList &object); + +void to_json(JsonValueScope &jv, const td_api::chatListMain &object); + +void to_json(JsonValueScope &jv, const td_api::chatListArchive &object); + +void to_json(JsonValueScope &jv, const td_api::chatListFilter &object); + +void to_json(JsonValueScope &jv, const td_api::chatLists &object); + +void to_json(JsonValueScope &jv, const td_api::chatLocation &object); + +void to_json(JsonValueScope &jv, const td_api::chatMember &object); + +void to_json(JsonValueScope &jv, const td_api::ChatMemberStatus &object); + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusCreator &object); + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusAdministrator &object); + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusMember &object); + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusRestricted &object); + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusLeft &object); + +void to_json(JsonValueScope &jv, const td_api::chatMemberStatusBanned &object); + +void to_json(JsonValueScope &jv, const td_api::chatMembers &object); + +void to_json(JsonValueScope &jv, const td_api::chatMessageSender &object); + +void to_json(JsonValueScope &jv, const td_api::chatMessageSenders &object); + +void to_json(JsonValueScope &jv, const td_api::chatNearby &object); + +void to_json(JsonValueScope &jv, const td_api::chatNotificationSettings &object); + +void to_json(JsonValueScope &jv, const td_api::chatPermissions &object); + +void to_json(JsonValueScope &jv, const td_api::chatPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::chatPhotoInfo &object); + +void to_json(JsonValueScope &jv, const td_api::chatPhotos &object); + +void to_json(JsonValueScope &jv, const td_api::chatPosition &object); + +void to_json(JsonValueScope &jv, const td_api::ChatSource &object); + +void to_json(JsonValueScope &jv, const td_api::chatSourceMtprotoProxy &object); + +void to_json(JsonValueScope &jv, const td_api::chatSourcePublicServiceAnnouncement &object); + +void to_json(JsonValueScope &jv, const td_api::ChatStatistics &object); + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsSupergroup &object); + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsChannel &object); + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsAdministratorActionsInfo &object); + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsInviterInfo &object); + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageInteractionInfo &object); + +void to_json(JsonValueScope &jv, const td_api::chatStatisticsMessageSenderInfo &object); + +void to_json(JsonValueScope &jv, const td_api::chatTheme &object); + +void to_json(JsonValueScope &jv, const td_api::ChatType &object); + +void to_json(JsonValueScope &jv, const td_api::chatTypePrivate &object); + +void to_json(JsonValueScope &jv, const td_api::chatTypeBasicGroup &object); + +void to_json(JsonValueScope &jv, const td_api::chatTypeSupergroup &object); + +void to_json(JsonValueScope &jv, const td_api::chatTypeSecret &object); + +void to_json(JsonValueScope &jv, const td_api::chats &object); + +void to_json(JsonValueScope &jv, const td_api::chatsNearby &object); + +void to_json(JsonValueScope &jv, const td_api::CheckChatUsernameResult &object); + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultOk &object); + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameInvalid &object); + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultUsernameOccupied &object); + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicChatsTooMuch &object); + +void to_json(JsonValueScope &jv, const td_api::checkChatUsernameResultPublicGroupsUnavailable &object); + +void to_json(JsonValueScope &jv, const td_api::CheckStickerSetNameResult &object); + +void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultOk &object); + +void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameInvalid &object); + +void to_json(JsonValueScope &jv, const td_api::checkStickerSetNameResultNameOccupied &object); + +void to_json(JsonValueScope &jv, const td_api::closedVectorPath &object); + +void to_json(JsonValueScope &jv, const td_api::connectedWebsite &object); + +void to_json(JsonValueScope &jv, const td_api::connectedWebsites &object); + +void to_json(JsonValueScope &jv, const td_api::ConnectionState &object); + +void to_json(JsonValueScope &jv, const td_api::connectionStateWaitingForNetwork &object); + +void to_json(JsonValueScope &jv, const td_api::connectionStateConnectingToProxy &object); + +void to_json(JsonValueScope &jv, const td_api::connectionStateConnecting &object); + +void to_json(JsonValueScope &jv, const td_api::connectionStateUpdating &object); + +void to_json(JsonValueScope &jv, const td_api::connectionStateReady &object); + +void to_json(JsonValueScope &jv, const td_api::contact &object); + +void to_json(JsonValueScope &jv, const td_api::count &object); + +void to_json(JsonValueScope &jv, const td_api::countries &object); + +void to_json(JsonValueScope &jv, const td_api::countryInfo &object); + +void to_json(JsonValueScope &jv, const td_api::customRequestResult &object); + +void to_json(JsonValueScope &jv, const td_api::databaseStatistics &object); + +void to_json(JsonValueScope &jv, const td_api::date &object); + +void to_json(JsonValueScope &jv, const td_api::dateRange &object); + +void to_json(JsonValueScope &jv, const td_api::datedFile &object); + +void to_json(JsonValueScope &jv, const td_api::deepLinkInfo &object); + +void to_json(JsonValueScope &jv, const td_api::DiceStickers &object); + +void to_json(JsonValueScope &jv, const td_api::diceStickersRegular &object); + +void to_json(JsonValueScope &jv, const td_api::diceStickersSlotMachine &object); + +void to_json(JsonValueScope &jv, const td_api::document &object); + +void to_json(JsonValueScope &jv, const td_api::downloadedFileCounts &object); + +void to_json(JsonValueScope &jv, const td_api::draftMessage &object); + +void to_json(JsonValueScope &jv, const td_api::emailAddressAuthenticationCodeInfo &object); + +void to_json(JsonValueScope &jv, const td_api::emojiReaction &object); + +void to_json(JsonValueScope &jv, const td_api::emojiStatus &object); + +void to_json(JsonValueScope &jv, const td_api::emojiStatuses &object); + +void to_json(JsonValueScope &jv, const td_api::emojis &object); + +void to_json(JsonValueScope &jv, const td_api::encryptedCredentials &object); + +void to_json(JsonValueScope &jv, const td_api::encryptedPassportElement &object); + +void to_json(JsonValueScope &jv, const td_api::error &object); + +void to_json(JsonValueScope &jv, const td_api::file &object); + +void to_json(JsonValueScope &jv, const td_api::fileDownload &object); + +void to_json(JsonValueScope &jv, const td_api::fileDownloadedPrefixSize &object); + +void to_json(JsonValueScope &jv, const td_api::filePart &object); + +void to_json(JsonValueScope &jv, const td_api::FileType &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeNone &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeAnimation &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeAudio &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeDocument &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeNotificationSound &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeProfilePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeSecret &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeSecretThumbnail &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeSecure &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeSticker &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeThumbnail &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeUnknown &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeVideo &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeVideoNote &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::fileTypeWallpaper &object); + +void to_json(JsonValueScope &jv, const td_api::formattedText &object); + +void to_json(JsonValueScope &jv, const td_api::forumTopicIcon &object); + +void to_json(JsonValueScope &jv, const td_api::forumTopicInfo &object); + +void to_json(JsonValueScope &jv, const td_api::foundFileDownloads &object); + +void to_json(JsonValueScope &jv, const td_api::foundMessages &object); + +void to_json(JsonValueScope &jv, const td_api::game &object); + +void to_json(JsonValueScope &jv, const td_api::gameHighScore &object); + +void to_json(JsonValueScope &jv, const td_api::gameHighScores &object); + +void to_json(JsonValueScope &jv, const td_api::groupCall &object); + +void to_json(JsonValueScope &jv, const td_api::groupCallId &object); + +void to_json(JsonValueScope &jv, const td_api::groupCallParticipant &object); + +void to_json(JsonValueScope &jv, const td_api::groupCallParticipantVideoInfo &object); + +void to_json(JsonValueScope &jv, const td_api::groupCallRecentSpeaker &object); + +void to_json(JsonValueScope &jv, const td_api::groupCallStream &object); + +void to_json(JsonValueScope &jv, const td_api::groupCallStreams &object); + +void to_json(JsonValueScope &jv, const td_api::groupCallVideoSourceGroup &object); + +void to_json(JsonValueScope &jv, const td_api::hashtags &object); + +void to_json(JsonValueScope &jv, const td_api::httpUrl &object); + +void to_json(JsonValueScope &jv, const td_api::identityDocument &object); + +void to_json(JsonValueScope &jv, const td_api::importedContacts &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButton &object); + +void to_json(JsonValueScope &jv, const td_api::InlineKeyboardButtonType &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUrl &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeLoginUrl &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeWebApp &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallback &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackWithPassword &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeCallbackGame &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeSwitchInline &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeBuy &object); + +void to_json(JsonValueScope &jv, const td_api::inlineKeyboardButtonTypeUser &object); + +void to_json(JsonValueScope &jv, const td_api::InlineQueryResult &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultArticle &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultContact &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultLocation &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVenue &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultGame &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAnimation &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultAudio &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultDocument &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultSticker &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVideo &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResultVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::inlineQueryResults &object); + +void to_json(JsonValueScope &jv, const td_api::InputFile &object); + +void to_json(JsonValueScope &jv, const td_api::inputFileId &object); + +void to_json(JsonValueScope &jv, const td_api::inputFileRemote &object); + +void to_json(JsonValueScope &jv, const td_api::inputFileLocal &object); + +void to_json(JsonValueScope &jv, const td_api::inputFileGenerated &object); + +void to_json(JsonValueScope &jv, const td_api::InputMessageContent &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageText &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageAnimation &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageAudio &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageDocument &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessagePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageSticker &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageVideo &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageVideoNote &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageLocation &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageVenue &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageContact &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageDice &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageGame &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageInvoice &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessagePoll &object); + +void to_json(JsonValueScope &jv, const td_api::inputMessageForwarded &object); + +void to_json(JsonValueScope &jv, const td_api::inputThumbnail &object); + +void to_json(JsonValueScope &jv, const td_api::InternalLinkType &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeActiveSessions &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAttachmentMenuBot &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeAuthenticationCode &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBackground &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStart &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotStartInGroup &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeBotAddToChannel &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChangePhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeChatInvite &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeFilterSettings &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeGame &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInstantView &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeInvoice &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguagePack &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeLanguageSettings &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessage &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeMessageDraft &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePassportDataRequest &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePhoneNumberConfirmation &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePremiumFeatures &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePrivacyAndSecuritySettings &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeProxy &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypePublicChat &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeQrCodeAuthentication &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeRestorePurchases &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeSettings &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeStickerSet &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeTheme &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeThemeSettings &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnknownDeepLink &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUnsupportedProxy &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeUserPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::internalLinkTypeVideoChat &object); + +void to_json(JsonValueScope &jv, const td_api::invoice &object); + +void to_json(JsonValueScope &jv, const td_api::jsonObjectMember &object); + +void to_json(JsonValueScope &jv, const td_api::JsonValue &object); + +void to_json(JsonValueScope &jv, const td_api::jsonValueNull &object); + +void to_json(JsonValueScope &jv, const td_api::jsonValueBoolean &object); + +void to_json(JsonValueScope &jv, const td_api::jsonValueNumber &object); + +void to_json(JsonValueScope &jv, const td_api::jsonValueString &object); + +void to_json(JsonValueScope &jv, const td_api::jsonValueArray &object); + +void to_json(JsonValueScope &jv, const td_api::jsonValueObject &object); + +void to_json(JsonValueScope &jv, const td_api::keyboardButton &object); + +void to_json(JsonValueScope &jv, const td_api::KeyboardButtonType &object); + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeText &object); + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestLocation &object); + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeRequestPoll &object); + +void to_json(JsonValueScope &jv, const td_api::keyboardButtonTypeWebApp &object); + +void to_json(JsonValueScope &jv, const td_api::labeledPricePart &object); + +void to_json(JsonValueScope &jv, const td_api::languagePackInfo &object); + +void to_json(JsonValueScope &jv, const td_api::languagePackString &object); + +void to_json(JsonValueScope &jv, const td_api::LanguagePackStringValue &object); + +void to_json(JsonValueScope &jv, const td_api::languagePackStringValueOrdinary &object); + +void to_json(JsonValueScope &jv, const td_api::languagePackStringValuePluralized &object); + +void to_json(JsonValueScope &jv, const td_api::languagePackStringValueDeleted &object); + +void to_json(JsonValueScope &jv, const td_api::languagePackStrings &object); + +void to_json(JsonValueScope &jv, const td_api::localFile &object); + +void to_json(JsonValueScope &jv, const td_api::localizationTargetInfo &object); + +void to_json(JsonValueScope &jv, const td_api::location &object); + +void to_json(JsonValueScope &jv, const td_api::LogStream &object); + +void to_json(JsonValueScope &jv, const td_api::logStreamDefault &object); + +void to_json(JsonValueScope &jv, const td_api::logStreamFile &object); + +void to_json(JsonValueScope &jv, const td_api::logStreamEmpty &object); + +void to_json(JsonValueScope &jv, const td_api::logTags &object); + +void to_json(JsonValueScope &jv, const td_api::logVerbosityLevel &object); + +void to_json(JsonValueScope &jv, const td_api::LoginUrlInfo &object); + +void to_json(JsonValueScope &jv, const td_api::loginUrlInfoOpen &object); + +void to_json(JsonValueScope &jv, const td_api::loginUrlInfoRequestConfirmation &object); + +void to_json(JsonValueScope &jv, const td_api::MaskPoint &object); + +void to_json(JsonValueScope &jv, const td_api::maskPointForehead &object); + +void to_json(JsonValueScope &jv, const td_api::maskPointEyes &object); + +void to_json(JsonValueScope &jv, const td_api::maskPointMouth &object); + +void to_json(JsonValueScope &jv, const td_api::maskPointChin &object); + +void to_json(JsonValueScope &jv, const td_api::maskPosition &object); + +void to_json(JsonValueScope &jv, const td_api::message &object); + +void to_json(JsonValueScope &jv, const td_api::messageCalendar &object); + +void to_json(JsonValueScope &jv, const td_api::messageCalendarDay &object); + +void to_json(JsonValueScope &jv, const td_api::MessageContent &object); + +void to_json(JsonValueScope &jv, const td_api::messageText &object); + +void to_json(JsonValueScope &jv, const td_api::messageAnimation &object); + +void to_json(JsonValueScope &jv, const td_api::messageAudio &object); + +void to_json(JsonValueScope &jv, const td_api::messageDocument &object); + +void to_json(JsonValueScope &jv, const td_api::messagePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::messageExpiredPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::messageSticker &object); + +void to_json(JsonValueScope &jv, const td_api::messageVideo &object); + +void to_json(JsonValueScope &jv, const td_api::messageExpiredVideo &object); + +void to_json(JsonValueScope &jv, const td_api::messageVideoNote &object); + +void to_json(JsonValueScope &jv, const td_api::messageVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::messageLocation &object); + +void to_json(JsonValueScope &jv, const td_api::messageVenue &object); + +void to_json(JsonValueScope &jv, const td_api::messageContact &object); + +void to_json(JsonValueScope &jv, const td_api::messageAnimatedEmoji &object); + +void to_json(JsonValueScope &jv, const td_api::messageDice &object); + +void to_json(JsonValueScope &jv, const td_api::messageGame &object); + +void to_json(JsonValueScope &jv, const td_api::messagePoll &object); + +void to_json(JsonValueScope &jv, const td_api::messageInvoice &object); + +void to_json(JsonValueScope &jv, const td_api::messageCall &object); + +void to_json(JsonValueScope &jv, const td_api::messageVideoChatScheduled &object); + +void to_json(JsonValueScope &jv, const td_api::messageVideoChatStarted &object); + +void to_json(JsonValueScope &jv, const td_api::messageVideoChatEnded &object); + +void to_json(JsonValueScope &jv, const td_api::messageInviteVideoChatParticipants &object); + +void to_json(JsonValueScope &jv, const td_api::messageBasicGroupChatCreate &object); + +void to_json(JsonValueScope &jv, const td_api::messageSupergroupChatCreate &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatChangeTitle &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatChangePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatDeletePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatAddMembers &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatJoinByLink &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatJoinByRequest &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatDeleteMember &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeTo &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatUpgradeFrom &object); + +void to_json(JsonValueScope &jv, const td_api::messagePinMessage &object); + +void to_json(JsonValueScope &jv, const td_api::messageScreenshotTaken &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatSetTheme &object); + +void to_json(JsonValueScope &jv, const td_api::messageChatSetTtl &object); + +void to_json(JsonValueScope &jv, const td_api::messageForumTopicCreated &object); + +void to_json(JsonValueScope &jv, const td_api::messageForumTopicEdited &object); + +void to_json(JsonValueScope &jv, const td_api::messageForumTopicIsClosedToggled &object); + +void to_json(JsonValueScope &jv, const td_api::messageCustomServiceAction &object); + +void to_json(JsonValueScope &jv, const td_api::messageGameScore &object); + +void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessful &object); + +void to_json(JsonValueScope &jv, const td_api::messagePaymentSuccessfulBot &object); + +void to_json(JsonValueScope &jv, const td_api::messageGiftedPremium &object); + +void to_json(JsonValueScope &jv, const td_api::messageContactRegistered &object); + +void to_json(JsonValueScope &jv, const td_api::messageWebsiteConnected &object); + +void to_json(JsonValueScope &jv, const td_api::messageWebAppDataSent &object); + +void to_json(JsonValueScope &jv, const td_api::messageWebAppDataReceived &object); + +void to_json(JsonValueScope &jv, const td_api::messagePassportDataSent &object); + +void to_json(JsonValueScope &jv, const td_api::messagePassportDataReceived &object); + +void to_json(JsonValueScope &jv, const td_api::messageProximityAlertTriggered &object); + +void to_json(JsonValueScope &jv, const td_api::messageUnsupported &object); + +void to_json(JsonValueScope &jv, const td_api::messageCopyOptions &object); + +void to_json(JsonValueScope &jv, const td_api::MessageExtendedMedia &object); + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPreview &object); + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaVideo &object); + +void to_json(JsonValueScope &jv, const td_api::messageExtendedMediaUnsupported &object); + +void to_json(JsonValueScope &jv, const td_api::MessageFileType &object); + +void to_json(JsonValueScope &jv, const td_api::messageFileTypePrivate &object); + +void to_json(JsonValueScope &jv, const td_api::messageFileTypeGroup &object); + +void to_json(JsonValueScope &jv, const td_api::messageFileTypeUnknown &object); + +void to_json(JsonValueScope &jv, const td_api::messageForwardInfo &object); + +void to_json(JsonValueScope &jv, const td_api::MessageForwardOrigin &object); + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginUser &object); + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChat &object); + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginHiddenUser &object); + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginChannel &object); + +void to_json(JsonValueScope &jv, const td_api::messageForwardOriginMessageImport &object); + +void to_json(JsonValueScope &jv, const td_api::messageInteractionInfo &object); + +void to_json(JsonValueScope &jv, const td_api::messageLink &object); + +void to_json(JsonValueScope &jv, const td_api::messageLinkInfo &object); + +void to_json(JsonValueScope &jv, const td_api::messagePosition &object); + +void to_json(JsonValueScope &jv, const td_api::messagePositions &object); + +void to_json(JsonValueScope &jv, const td_api::messageReaction &object); + +void to_json(JsonValueScope &jv, const td_api::messageReplyInfo &object); + +void to_json(JsonValueScope &jv, const td_api::MessageSchedulingState &object); + +void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendAtDate &object); + +void to_json(JsonValueScope &jv, const td_api::messageSchedulingStateSendWhenOnline &object); + +void to_json(JsonValueScope &jv, const td_api::MessageSender &object); + +void to_json(JsonValueScope &jv, const td_api::messageSenderUser &object); + +void to_json(JsonValueScope &jv, const td_api::messageSenderChat &object); + +void to_json(JsonValueScope &jv, const td_api::messageSenders &object); + +void to_json(JsonValueScope &jv, const td_api::MessageSendingState &object); + +void to_json(JsonValueScope &jv, const td_api::messageSendingStatePending &object); + +void to_json(JsonValueScope &jv, const td_api::messageSendingStateFailed &object); + +void to_json(JsonValueScope &jv, const td_api::messageStatistics &object); + +void to_json(JsonValueScope &jv, const td_api::messageThreadInfo &object); + +void to_json(JsonValueScope &jv, const td_api::messages &object); + +void to_json(JsonValueScope &jv, const td_api::minithumbnail &object); + +void to_json(JsonValueScope &jv, const td_api::networkStatistics &object); + +void to_json(JsonValueScope &jv, const td_api::NetworkStatisticsEntry &object); + +void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryFile &object); + +void to_json(JsonValueScope &jv, const td_api::networkStatisticsEntryCall &object); + +void to_json(JsonValueScope &jv, const td_api::NetworkType &object); + +void to_json(JsonValueScope &jv, const td_api::networkTypeNone &object); + +void to_json(JsonValueScope &jv, const td_api::networkTypeMobile &object); + +void to_json(JsonValueScope &jv, const td_api::networkTypeMobileRoaming &object); + +void to_json(JsonValueScope &jv, const td_api::networkTypeWiFi &object); + +void to_json(JsonValueScope &jv, const td_api::networkTypeOther &object); + +void to_json(JsonValueScope &jv, const td_api::notification &object); + +void to_json(JsonValueScope &jv, const td_api::notificationGroup &object); + +void to_json(JsonValueScope &jv, const td_api::NotificationGroupType &object); + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMessages &object); + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeMentions &object); + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeSecretChat &object); + +void to_json(JsonValueScope &jv, const td_api::notificationGroupTypeCalls &object); + +void to_json(JsonValueScope &jv, const td_api::NotificationSettingsScope &object); + +void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopePrivateChats &object); + +void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeGroupChats &object); + +void to_json(JsonValueScope &jv, const td_api::notificationSettingsScopeChannelChats &object); + +void to_json(JsonValueScope &jv, const td_api::notificationSound &object); + +void to_json(JsonValueScope &jv, const td_api::notificationSounds &object); + +void to_json(JsonValueScope &jv, const td_api::NotificationType &object); + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewMessage &object); + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewSecretChat &object); + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewCall &object); + +void to_json(JsonValueScope &jv, const td_api::notificationTypeNewPushMessage &object); + +void to_json(JsonValueScope &jv, const td_api::ok &object); + +void to_json(JsonValueScope &jv, const td_api::OptionValue &object); + +void to_json(JsonValueScope &jv, const td_api::optionValueBoolean &object); + +void to_json(JsonValueScope &jv, const td_api::optionValueEmpty &object); + +void to_json(JsonValueScope &jv, const td_api::optionValueInteger &object); + +void to_json(JsonValueScope &jv, const td_api::optionValueString &object); + +void to_json(JsonValueScope &jv, const td_api::orderInfo &object); + +void to_json(JsonValueScope &jv, const td_api::PageBlock &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockTitle &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockSubtitle &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockAuthorDate &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockHeader &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockSubheader &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockKicker &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockParagraph &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockPreformatted &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockFooter &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockDivider &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockAnchor &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockList &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockBlockQuote &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockPullQuote &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockAnimation &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockAudio &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockVideo &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockCover &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockEmbedded &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockEmbeddedPost &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockCollage &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockSlideshow &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockChatLink &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockTable &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockDetails &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticles &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockMap &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockCaption &object); + +void to_json(JsonValueScope &jv, const td_api::PageBlockHorizontalAlignment &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentLeft &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentCenter &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockHorizontalAlignmentRight &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockListItem &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockRelatedArticle &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockTableCell &object); + +void to_json(JsonValueScope &jv, const td_api::PageBlockVerticalAlignment &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentTop &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentMiddle &object); + +void to_json(JsonValueScope &jv, const td_api::pageBlockVerticalAlignmentBottom &object); + +void to_json(JsonValueScope &jv, const td_api::passportAuthorizationForm &object); + +void to_json(JsonValueScope &jv, const td_api::PassportElement &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementPersonalDetails &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementPassport &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementDriverLicense &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementIdentityCard &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementInternalPassport &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementAddress &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementUtilityBill &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementBankStatement &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementRentalAgreement &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementPassportRegistration &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTemporaryRegistration &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementEmailAddress &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementError &object); + +void to_json(JsonValueScope &jv, const td_api::PassportElementErrorSource &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceUnspecified &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceDataField &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFrontSide &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceReverseSide &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceSelfie &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFile &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceTranslationFiles &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFile &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementErrorSourceFiles &object); + +void to_json(JsonValueScope &jv, const td_api::PassportElementType &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePersonalDetails &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePassport &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeDriverLicense &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeIdentityCard &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeInternalPassport &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeAddress &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeUtilityBill &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeBankStatement &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeRentalAgreement &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePassportRegistration &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeTemporaryRegistration &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypePhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementTypeEmailAddress &object); + +void to_json(JsonValueScope &jv, const td_api::passportElements &object); + +void to_json(JsonValueScope &jv, const td_api::passportElementsWithErrors &object); + +void to_json(JsonValueScope &jv, const td_api::passportRequiredElement &object); + +void to_json(JsonValueScope &jv, const td_api::passportSuitableElement &object); + +void to_json(JsonValueScope &jv, const td_api::passwordState &object); + +void to_json(JsonValueScope &jv, const td_api::paymentForm &object); + +void to_json(JsonValueScope &jv, const td_api::paymentOption &object); + +void to_json(JsonValueScope &jv, const td_api::PaymentProvider &object); + +void to_json(JsonValueScope &jv, const td_api::paymentProviderSmartGlocal &object); + +void to_json(JsonValueScope &jv, const td_api::paymentProviderStripe &object); + +void to_json(JsonValueScope &jv, const td_api::paymentProviderOther &object); + +void to_json(JsonValueScope &jv, const td_api::paymentReceipt &object); + +void to_json(JsonValueScope &jv, const td_api::paymentResult &object); + +void to_json(JsonValueScope &jv, const td_api::personalDetails &object); + +void to_json(JsonValueScope &jv, const td_api::personalDocument &object); + +void to_json(JsonValueScope &jv, const td_api::phoneNumberInfo &object); + +void to_json(JsonValueScope &jv, const td_api::photo &object); + +void to_json(JsonValueScope &jv, const td_api::photoSize &object); + +void to_json(JsonValueScope &jv, const td_api::point &object); + +void to_json(JsonValueScope &jv, const td_api::poll &object); + +void to_json(JsonValueScope &jv, const td_api::pollOption &object); + +void to_json(JsonValueScope &jv, const td_api::PollType &object); + +void to_json(JsonValueScope &jv, const td_api::pollTypeRegular &object); + +void to_json(JsonValueScope &jv, const td_api::pollTypeQuiz &object); + +void to_json(JsonValueScope &jv, const td_api::PremiumFeature &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedLimits &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureIncreasedUploadFileSize &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureImprovedDownloadSpeed &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureVoiceRecognition &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureDisabledAds &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueReactions &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureUniqueStickers &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureCustomEmoji &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureAdvancedChatManagement &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureProfileBadge &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureEmojiStatus &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureAnimatedProfilePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureForumTopicIcon &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatureAppIcons &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeaturePromotionAnimation &object); + +void to_json(JsonValueScope &jv, const td_api::premiumFeatures &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimit &object); + +void to_json(JsonValueScope &jv, const td_api::PremiumLimitType &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSupergroupCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedChatCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCreatedPublicChatCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeSavedAnimationCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeFavoriteStickerCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeChatFilterChosenChatCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypePinnedArchivedChatCount &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeCaptionLength &object); + +void to_json(JsonValueScope &jv, const td_api::premiumLimitTypeBioLength &object); + +void to_json(JsonValueScope &jv, const td_api::premiumPaymentOption &object); + +void to_json(JsonValueScope &jv, const td_api::premiumState &object); + +void to_json(JsonValueScope &jv, const td_api::profilePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::proxies &object); + +void to_json(JsonValueScope &jv, const td_api::proxy &object); + +void to_json(JsonValueScope &jv, const td_api::ProxyType &object); + +void to_json(JsonValueScope &jv, const td_api::proxyTypeSocks5 &object); + +void to_json(JsonValueScope &jv, const td_api::proxyTypeHttp &object); + +void to_json(JsonValueScope &jv, const td_api::proxyTypeMtproto &object); + +void to_json(JsonValueScope &jv, const td_api::PushMessageContent &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentHidden &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentAnimation &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentAudio &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentContact &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentContactRegistered &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentDocument &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentGame &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentGameScore &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentInvoice &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentLocation &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentPoll &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentScreenshotTaken &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentSticker &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentText &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideo &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentVideoNote &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentVoiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentBasicGroupChatCreate &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatAddMembers &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatChangeTitle &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatSetTheme &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatDeleteMember &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByLink &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentChatJoinByRequest &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentRecurringPayment &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentMessageForwards &object); + +void to_json(JsonValueScope &jv, const td_api::pushMessageContentMediaAlbum &object); + +void to_json(JsonValueScope &jv, const td_api::pushReceiverId &object); + +void to_json(JsonValueScope &jv, const td_api::ReactionType &object); + +void to_json(JsonValueScope &jv, const td_api::reactionTypeEmoji &object); + +void to_json(JsonValueScope &jv, const td_api::reactionTypeCustomEmoji &object); + +void to_json(JsonValueScope &jv, const td_api::recommendedChatFilter &object); + +void to_json(JsonValueScope &jv, const td_api::recommendedChatFilters &object); + +void to_json(JsonValueScope &jv, const td_api::recoveryEmailAddress &object); + +void to_json(JsonValueScope &jv, const td_api::remoteFile &object); + +void to_json(JsonValueScope &jv, const td_api::ReplyMarkup &object); + +void to_json(JsonValueScope &jv, const td_api::replyMarkupRemoveKeyboard &object); + +void to_json(JsonValueScope &jv, const td_api::replyMarkupForceReply &object); + +void to_json(JsonValueScope &jv, const td_api::replyMarkupShowKeyboard &object); + +void to_json(JsonValueScope &jv, const td_api::replyMarkupInlineKeyboard &object); + +void to_json(JsonValueScope &jv, const td_api::ResetPasswordResult &object); + +void to_json(JsonValueScope &jv, const td_api::resetPasswordResultOk &object); + +void to_json(JsonValueScope &jv, const td_api::resetPasswordResultPending &object); + +void to_json(JsonValueScope &jv, const td_api::resetPasswordResultDeclined &object); + +void to_json(JsonValueScope &jv, const td_api::RichText &object); + +void to_json(JsonValueScope &jv, const td_api::richTextPlain &object); + +void to_json(JsonValueScope &jv, const td_api::richTextBold &object); + +void to_json(JsonValueScope &jv, const td_api::richTextItalic &object); + +void to_json(JsonValueScope &jv, const td_api::richTextUnderline &object); + +void to_json(JsonValueScope &jv, const td_api::richTextStrikethrough &object); + +void to_json(JsonValueScope &jv, const td_api::richTextFixed &object); + +void to_json(JsonValueScope &jv, const td_api::richTextUrl &object); + +void to_json(JsonValueScope &jv, const td_api::richTextEmailAddress &object); + +void to_json(JsonValueScope &jv, const td_api::richTextSubscript &object); + +void to_json(JsonValueScope &jv, const td_api::richTextSuperscript &object); + +void to_json(JsonValueScope &jv, const td_api::richTextMarked &object); + +void to_json(JsonValueScope &jv, const td_api::richTextPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::richTextIcon &object); + +void to_json(JsonValueScope &jv, const td_api::richTextReference &object); + +void to_json(JsonValueScope &jv, const td_api::richTextAnchor &object); + +void to_json(JsonValueScope &jv, const td_api::richTextAnchorLink &object); + +void to_json(JsonValueScope &jv, const td_api::richTexts &object); + +void to_json(JsonValueScope &jv, const td_api::rtmpUrl &object); + +void to_json(JsonValueScope &jv, const td_api::savedCredentials &object); + +void to_json(JsonValueScope &jv, const td_api::scopeNotificationSettings &object); + +void to_json(JsonValueScope &jv, const td_api::seconds &object); + +void to_json(JsonValueScope &jv, const td_api::secretChat &object); + +void to_json(JsonValueScope &jv, const td_api::SecretChatState &object); + +void to_json(JsonValueScope &jv, const td_api::secretChatStatePending &object); + +void to_json(JsonValueScope &jv, const td_api::secretChatStateReady &object); + +void to_json(JsonValueScope &jv, const td_api::secretChatStateClosed &object); + +void to_json(JsonValueScope &jv, const td_api::sentWebAppMessage &object); + +void to_json(JsonValueScope &jv, const td_api::session &object); + +void to_json(JsonValueScope &jv, const td_api::SessionType &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeAndroid &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeApple &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeBrave &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeChrome &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeEdge &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeFirefox &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeIpad &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeIphone &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeLinux &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeMac &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeOpera &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeSafari &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeUbuntu &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeUnknown &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeVivaldi &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeWindows &object); + +void to_json(JsonValueScope &jv, const td_api::sessionTypeXbox &object); + +void to_json(JsonValueScope &jv, const td_api::sessions &object); + +void to_json(JsonValueScope &jv, const td_api::shippingOption &object); + +void to_json(JsonValueScope &jv, const td_api::SpeechRecognitionResult &object); + +void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultPending &object); + +void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultText &object); + +void to_json(JsonValueScope &jv, const td_api::speechRecognitionResultError &object); + +void to_json(JsonValueScope &jv, const td_api::sponsoredMessage &object); + +void to_json(JsonValueScope &jv, const td_api::sponsoredMessages &object); + +void to_json(JsonValueScope &jv, const td_api::StatisticalGraph &object); + +void to_json(JsonValueScope &jv, const td_api::statisticalGraphData &object); + +void to_json(JsonValueScope &jv, const td_api::statisticalGraphAsync &object); + +void to_json(JsonValueScope &jv, const td_api::statisticalGraphError &object); + +void to_json(JsonValueScope &jv, const td_api::statisticalValue &object); + +void to_json(JsonValueScope &jv, const td_api::sticker &object); + +void to_json(JsonValueScope &jv, const td_api::StickerFormat &object); + +void to_json(JsonValueScope &jv, const td_api::stickerFormatWebp &object); + +void to_json(JsonValueScope &jv, const td_api::stickerFormatTgs &object); + +void to_json(JsonValueScope &jv, const td_api::stickerFormatWebm &object); + +void to_json(JsonValueScope &jv, const td_api::stickerSet &object); + +void to_json(JsonValueScope &jv, const td_api::stickerSetInfo &object); + +void to_json(JsonValueScope &jv, const td_api::stickerSets &object); + +void to_json(JsonValueScope &jv, const td_api::StickerType &object); + +void to_json(JsonValueScope &jv, const td_api::stickerTypeRegular &object); + +void to_json(JsonValueScope &jv, const td_api::stickerTypeMask &object); + +void to_json(JsonValueScope &jv, const td_api::stickerTypeCustomEmoji &object); + +void to_json(JsonValueScope &jv, const td_api::stickers &object); + +void to_json(JsonValueScope &jv, const td_api::storageStatistics &object); + +void to_json(JsonValueScope &jv, const td_api::storageStatisticsByChat &object); + +void to_json(JsonValueScope &jv, const td_api::storageStatisticsByFileType &object); + +void to_json(JsonValueScope &jv, const td_api::storageStatisticsFast &object); + +void to_json(JsonValueScope &jv, const td_api::SuggestedAction &object); + +void to_json(JsonValueScope &jv, const td_api::suggestedActionEnableArchiveAndMuteNewChats &object); + +void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPassword &object); + +void to_json(JsonValueScope &jv, const td_api::suggestedActionCheckPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::suggestedActionViewChecksHint &object); + +void to_json(JsonValueScope &jv, const td_api::suggestedActionConvertToBroadcastGroup &object); + +void to_json(JsonValueScope &jv, const td_api::suggestedActionSetPassword &object); + +void to_json(JsonValueScope &jv, const td_api::supergroup &object); + +void to_json(JsonValueScope &jv, const td_api::supergroupFullInfo &object); + +void to_json(JsonValueScope &jv, const td_api::tMeUrl &object); + +void to_json(JsonValueScope &jv, const td_api::TMeUrlType &object); + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeUser &object); + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeSupergroup &object); + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeChatInvite &object); + +void to_json(JsonValueScope &jv, const td_api::tMeUrlTypeStickerSet &object); + +void to_json(JsonValueScope &jv, const td_api::tMeUrls &object); + +void to_json(JsonValueScope &jv, const td_api::TargetChat &object); + +void to_json(JsonValueScope &jv, const td_api::targetChatCurrent &object); + +void to_json(JsonValueScope &jv, const td_api::targetChatChosen &object); + +void to_json(JsonValueScope &jv, const td_api::targetChatInternalLink &object); + +void to_json(JsonValueScope &jv, const td_api::temporaryPasswordState &object); + +void to_json(JsonValueScope &jv, const td_api::termsOfService &object); + +void to_json(JsonValueScope &jv, const td_api::testBytes &object); + +void to_json(JsonValueScope &jv, const td_api::testInt &object); + +void to_json(JsonValueScope &jv, const td_api::testString &object); + +void to_json(JsonValueScope &jv, const td_api::testVectorInt &object); + +void to_json(JsonValueScope &jv, const td_api::testVectorIntObject &object); + +void to_json(JsonValueScope &jv, const td_api::testVectorString &object); + +void to_json(JsonValueScope &jv, const td_api::testVectorStringObject &object); + +void to_json(JsonValueScope &jv, const td_api::text &object); + +void to_json(JsonValueScope &jv, const td_api::textEntities &object); + +void to_json(JsonValueScope &jv, const td_api::textEntity &object); + +void to_json(JsonValueScope &jv, const td_api::TextEntityType &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeMention &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeHashtag &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeCashtag &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeBotCommand &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeUrl &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeEmailAddress &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypePhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeBankCardNumber &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeBold &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeItalic &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeUnderline &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeStrikethrough &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeSpoiler &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeCode &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypePre &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypePreCode &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeTextUrl &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeMentionName &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeCustomEmoji &object); + +void to_json(JsonValueScope &jv, const td_api::textEntityTypeMediaTimestamp &object); + +void to_json(JsonValueScope &jv, const td_api::themeSettings &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnail &object); + +void to_json(JsonValueScope &jv, const td_api::ThumbnailFormat &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatJpeg &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatGif &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatMpeg4 &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatPng &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatTgs &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebm &object); + +void to_json(JsonValueScope &jv, const td_api::thumbnailFormatWebp &object); + +void to_json(JsonValueScope &jv, const td_api::trendingStickerSets &object); + +void to_json(JsonValueScope &jv, const td_api::unreadReaction &object); + +void to_json(JsonValueScope &jv, const td_api::Update &object); + +void to_json(JsonValueScope &jv, const td_api::updateAuthorizationState &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewMessage &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageSendAcknowledged &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageSendSucceeded &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageSendFailed &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageContent &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageEdited &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageIsPinned &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageInteractionInfo &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageContentOpened &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageMentionRead &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageUnreadReactions &object); + +void to_json(JsonValueScope &jv, const td_api::updateMessageLiveLocationViewed &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewChat &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatTitle &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatPhoto &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatPermissions &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatLastMessage &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatPosition &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatReadInbox &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatReadOutbox &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatActionBar &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatAvailableReactions &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatDraftMessage &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatMessageSender &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatMessageTtl &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatNotificationSettings &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatPendingJoinRequests &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatReplyMarkup &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatTheme &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatUnreadMentionCount &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatUnreadReactionCount &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatVideoChat &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatDefaultDisableNotification &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatHasProtectedContent &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatHasScheduledMessages &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatIsBlocked &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatIsMarkedAsUnread &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatFilters &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatOnlineMemberCount &object); + +void to_json(JsonValueScope &jv, const td_api::updateForumTopicInfo &object); + +void to_json(JsonValueScope &jv, const td_api::updateScopeNotificationSettings &object); + +void to_json(JsonValueScope &jv, const td_api::updateNotification &object); + +void to_json(JsonValueScope &jv, const td_api::updateNotificationGroup &object); + +void to_json(JsonValueScope &jv, const td_api::updateActiveNotifications &object); + +void to_json(JsonValueScope &jv, const td_api::updateHavePendingNotifications &object); + +void to_json(JsonValueScope &jv, const td_api::updateDeleteMessages &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatAction &object); + +void to_json(JsonValueScope &jv, const td_api::updateUserStatus &object); + +void to_json(JsonValueScope &jv, const td_api::updateUser &object); + +void to_json(JsonValueScope &jv, const td_api::updateBasicGroup &object); + +void to_json(JsonValueScope &jv, const td_api::updateSupergroup &object); + +void to_json(JsonValueScope &jv, const td_api::updateSecretChat &object); + +void to_json(JsonValueScope &jv, const td_api::updateUserFullInfo &object); + +void to_json(JsonValueScope &jv, const td_api::updateBasicGroupFullInfo &object); + +void to_json(JsonValueScope &jv, const td_api::updateSupergroupFullInfo &object); + +void to_json(JsonValueScope &jv, const td_api::updateServiceNotification &object); + +void to_json(JsonValueScope &jv, const td_api::updateFile &object); + +void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStart &object); + +void to_json(JsonValueScope &jv, const td_api::updateFileGenerationStop &object); + +void to_json(JsonValueScope &jv, const td_api::updateFileDownloads &object); + +void to_json(JsonValueScope &jv, const td_api::updateFileAddedToDownloads &object); + +void to_json(JsonValueScope &jv, const td_api::updateFileDownload &object); + +void to_json(JsonValueScope &jv, const td_api::updateFileRemovedFromDownloads &object); + +void to_json(JsonValueScope &jv, const td_api::updateCall &object); + +void to_json(JsonValueScope &jv, const td_api::updateGroupCall &object); + +void to_json(JsonValueScope &jv, const td_api::updateGroupCallParticipant &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewCallSignalingData &object); + +void to_json(JsonValueScope &jv, const td_api::updateUserPrivacySettingRules &object); + +void to_json(JsonValueScope &jv, const td_api::updateUnreadMessageCount &object); + +void to_json(JsonValueScope &jv, const td_api::updateUnreadChatCount &object); + +void to_json(JsonValueScope &jv, const td_api::updateOption &object); + +void to_json(JsonValueScope &jv, const td_api::updateStickerSet &object); + +void to_json(JsonValueScope &jv, const td_api::updateInstalledStickerSets &object); + +void to_json(JsonValueScope &jv, const td_api::updateTrendingStickerSets &object); + +void to_json(JsonValueScope &jv, const td_api::updateRecentStickers &object); + +void to_json(JsonValueScope &jv, const td_api::updateFavoriteStickers &object); + +void to_json(JsonValueScope &jv, const td_api::updateSavedAnimations &object); + +void to_json(JsonValueScope &jv, const td_api::updateSavedNotificationSounds &object); + +void to_json(JsonValueScope &jv, const td_api::updateSelectedBackground &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatThemes &object); + +void to_json(JsonValueScope &jv, const td_api::updateLanguagePackStrings &object); + +void to_json(JsonValueScope &jv, const td_api::updateConnectionState &object); + +void to_json(JsonValueScope &jv, const td_api::updateTermsOfService &object); + +void to_json(JsonValueScope &jv, const td_api::updateUsersNearby &object); + +void to_json(JsonValueScope &jv, const td_api::updateAttachmentMenuBots &object); + +void to_json(JsonValueScope &jv, const td_api::updateWebAppMessageSent &object); + +void to_json(JsonValueScope &jv, const td_api::updateActiveEmojiReactions &object); + +void to_json(JsonValueScope &jv, const td_api::updateDefaultReactionType &object); + +void to_json(JsonValueScope &jv, const td_api::updateDiceEmojis &object); + +void to_json(JsonValueScope &jv, const td_api::updateAnimatedEmojiMessageClicked &object); + +void to_json(JsonValueScope &jv, const td_api::updateAnimationSearchParameters &object); + +void to_json(JsonValueScope &jv, const td_api::updateSuggestedActions &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewInlineQuery &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewChosenInlineResult &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewCallbackQuery &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewInlineCallbackQuery &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewShippingQuery &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewPreCheckoutQuery &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewCustomEvent &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewCustomQuery &object); + +void to_json(JsonValueScope &jv, const td_api::updatePoll &object); + +void to_json(JsonValueScope &jv, const td_api::updatePollAnswer &object); + +void to_json(JsonValueScope &jv, const td_api::updateChatMember &object); + +void to_json(JsonValueScope &jv, const td_api::updateNewChatJoinRequest &object); + +void to_json(JsonValueScope &jv, const td_api::updates &object); + +void to_json(JsonValueScope &jv, const td_api::user &object); + +void to_json(JsonValueScope &jv, const td_api::userFullInfo &object); + +void to_json(JsonValueScope &jv, const td_api::UserPrivacySetting &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowStatus &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowProfilePhoto &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowLinkInForwardedMessages &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingShowPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowChatInvites &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowCalls &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPeerToPeerCalls &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowFindingByPhoneNumber &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingAllowPrivateVoiceAndVideoNoteMessages &object); + +void to_json(JsonValueScope &jv, const td_api::UserPrivacySettingRule &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowAll &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowContacts &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowUsers &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleAllowChatMembers &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictAll &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictContacts &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictUsers &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRuleRestrictChatMembers &object); + +void to_json(JsonValueScope &jv, const td_api::userPrivacySettingRules &object); + +void to_json(JsonValueScope &jv, const td_api::UserStatus &object); + +void to_json(JsonValueScope &jv, const td_api::userStatusEmpty &object); + +void to_json(JsonValueScope &jv, const td_api::userStatusOnline &object); + +void to_json(JsonValueScope &jv, const td_api::userStatusOffline &object); + +void to_json(JsonValueScope &jv, const td_api::userStatusRecently &object); + +void to_json(JsonValueScope &jv, const td_api::userStatusLastWeek &object); + +void to_json(JsonValueScope &jv, const td_api::userStatusLastMonth &object); + +void to_json(JsonValueScope &jv, const td_api::userSupportInfo &object); + +void to_json(JsonValueScope &jv, const td_api::UserType &object); + +void to_json(JsonValueScope &jv, const td_api::userTypeRegular &object); + +void to_json(JsonValueScope &jv, const td_api::userTypeDeleted &object); + +void to_json(JsonValueScope &jv, const td_api::userTypeBot &object); + +void to_json(JsonValueScope &jv, const td_api::userTypeUnknown &object); + +void to_json(JsonValueScope &jv, const td_api::usernames &object); + +void to_json(JsonValueScope &jv, const td_api::users &object); + +void to_json(JsonValueScope &jv, const td_api::validatedOrderInfo &object); + +void to_json(JsonValueScope &jv, const td_api::VectorPathCommand &object); + +void to_json(JsonValueScope &jv, const td_api::vectorPathCommandLine &object); + +void to_json(JsonValueScope &jv, const td_api::vectorPathCommandCubicBezierCurve &object); + +void to_json(JsonValueScope &jv, const td_api::venue &object); + +void to_json(JsonValueScope &jv, const td_api::video &object); + +void to_json(JsonValueScope &jv, const td_api::videoChat &object); + +void to_json(JsonValueScope &jv, const td_api::videoNote &object); + +void to_json(JsonValueScope &jv, const td_api::voiceNote &object); + +void to_json(JsonValueScope &jv, const td_api::webAppInfo &object); + +void to_json(JsonValueScope &jv, const td_api::webPage &object); + +void to_json(JsonValueScope &jv, const td_api::webPageInstantView &object); + +} // namespace td_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.cpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.cpp new file mode 100644 index 0000000000..730a418a0c --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.cpp @@ -0,0 +1,52616 @@ +#include "telegram_api.h" + +#include "td/tl/tl_object_parse.h" +#include "td/tl/tl_object_store.h" + +#include "td/utils/common.h" +#include "td/utils/format.h" +#include "td/utils/logging.h" +#include "td/utils/SliceBuilder.h" +#include "td/utils/tl_parsers.h" +#include "td/utils/tl_storers.h" +#include "td/utils/TlStorerToString.h" + +namespace td { +namespace telegram_api { + +std::string to_string(const BaseObject &value) { + TlStorerToString storer; + value.store(storer, ""); + return storer.move_as_string(); +} + +object_ptr<Object> Object::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case accessPointRule::ID: + return accessPointRule::fetch(p); + case accountDaysTTL::ID: + return accountDaysTTL::fetch(p); + case attachMenuBot::ID: + return attachMenuBot::fetch(p); + case attachMenuBotIcon::ID: + return attachMenuBotIcon::fetch(p); + case attachMenuBotIconColor::ID: + return attachMenuBotIconColor::fetch(p); + case attachMenuBotsNotModified::ID: + return attachMenuBotsNotModified::fetch(p); + case attachMenuBots::ID: + return attachMenuBots::fetch(p); + case attachMenuBotsBot::ID: + return attachMenuBotsBot::fetch(p); + case attachMenuPeerTypeSameBotPM::ID: + return attachMenuPeerTypeSameBotPM::fetch(p); + case attachMenuPeerTypeBotPM::ID: + return attachMenuPeerTypeBotPM::fetch(p); + case attachMenuPeerTypePM::ID: + return attachMenuPeerTypePM::fetch(p); + case attachMenuPeerTypeChat::ID: + return attachMenuPeerTypeChat::fetch(p); + case attachMenuPeerTypeBroadcast::ID: + return attachMenuPeerTypeBroadcast::fetch(p); + case authorization::ID: + return authorization::fetch(p); + case autoDownloadSettings::ID: + return autoDownloadSettings::fetch(p); + case availableReaction::ID: + return availableReaction::fetch(p); + case bankCardOpenUrl::ID: + return bankCardOpenUrl::fetch(p); + case baseThemeClassic::ID: + return baseThemeClassic::fetch(p); + case baseThemeDay::ID: + return baseThemeDay::fetch(p); + case baseThemeNight::ID: + return baseThemeNight::fetch(p); + case baseThemeTinted::ID: + return baseThemeTinted::fetch(p); + case baseThemeArctic::ID: + return baseThemeArctic::fetch(p); + case botCommand::ID: + return botCommand::fetch(p); + case botInfo::ID: + return botInfo::fetch(p); + case botInlineMessageMediaAuto::ID: + return botInlineMessageMediaAuto::fetch(p); + case botInlineMessageText::ID: + return botInlineMessageText::fetch(p); + case botInlineMessageMediaGeo::ID: + return botInlineMessageMediaGeo::fetch(p); + case botInlineMessageMediaVenue::ID: + return botInlineMessageMediaVenue::fetch(p); + case botInlineMessageMediaContact::ID: + return botInlineMessageMediaContact::fetch(p); + case botInlineMessageMediaInvoice::ID: + return botInlineMessageMediaInvoice::fetch(p); + case botInlineResult::ID: + return botInlineResult::fetch(p); + case botInlineMediaResult::ID: + return botInlineMediaResult::fetch(p); + case botMenuButtonDefault::ID: + return botMenuButtonDefault::fetch(p); + case botMenuButtonCommands::ID: + return botMenuButtonCommands::fetch(p); + case botMenuButton::ID: + return botMenuButton::fetch(p); + case cdnConfig::ID: + return cdnConfig::fetch(p); + case cdnPublicKey::ID: + return cdnPublicKey::fetch(p); + case channelAdminLogEvent::ID: + return channelAdminLogEvent::fetch(p); + case channelAdminLogEventActionChangeTitle::ID: + return channelAdminLogEventActionChangeTitle::fetch(p); + case channelAdminLogEventActionChangeAbout::ID: + return channelAdminLogEventActionChangeAbout::fetch(p); + case channelAdminLogEventActionChangeUsername::ID: + return channelAdminLogEventActionChangeUsername::fetch(p); + case channelAdminLogEventActionChangePhoto::ID: + return channelAdminLogEventActionChangePhoto::fetch(p); + case channelAdminLogEventActionToggleInvites::ID: + return channelAdminLogEventActionToggleInvites::fetch(p); + case channelAdminLogEventActionToggleSignatures::ID: + return channelAdminLogEventActionToggleSignatures::fetch(p); + case channelAdminLogEventActionUpdatePinned::ID: + return channelAdminLogEventActionUpdatePinned::fetch(p); + case channelAdminLogEventActionEditMessage::ID: + return channelAdminLogEventActionEditMessage::fetch(p); + case channelAdminLogEventActionDeleteMessage::ID: + return channelAdminLogEventActionDeleteMessage::fetch(p); + case channelAdminLogEventActionParticipantJoin::ID: + return channelAdminLogEventActionParticipantJoin::fetch(p); + case channelAdminLogEventActionParticipantLeave::ID: + return channelAdminLogEventActionParticipantLeave::fetch(p); + case channelAdminLogEventActionParticipantInvite::ID: + return channelAdminLogEventActionParticipantInvite::fetch(p); + case channelAdminLogEventActionParticipantToggleBan::ID: + return channelAdminLogEventActionParticipantToggleBan::fetch(p); + case channelAdminLogEventActionParticipantToggleAdmin::ID: + return channelAdminLogEventActionParticipantToggleAdmin::fetch(p); + case channelAdminLogEventActionChangeStickerSet::ID: + return channelAdminLogEventActionChangeStickerSet::fetch(p); + case channelAdminLogEventActionTogglePreHistoryHidden::ID: + return channelAdminLogEventActionTogglePreHistoryHidden::fetch(p); + case channelAdminLogEventActionDefaultBannedRights::ID: + return channelAdminLogEventActionDefaultBannedRights::fetch(p); + case channelAdminLogEventActionStopPoll::ID: + return channelAdminLogEventActionStopPoll::fetch(p); + case channelAdminLogEventActionChangeLinkedChat::ID: + return channelAdminLogEventActionChangeLinkedChat::fetch(p); + case channelAdminLogEventActionChangeLocation::ID: + return channelAdminLogEventActionChangeLocation::fetch(p); + case channelAdminLogEventActionToggleSlowMode::ID: + return channelAdminLogEventActionToggleSlowMode::fetch(p); + case channelAdminLogEventActionStartGroupCall::ID: + return channelAdminLogEventActionStartGroupCall::fetch(p); + case channelAdminLogEventActionDiscardGroupCall::ID: + return channelAdminLogEventActionDiscardGroupCall::fetch(p); + case channelAdminLogEventActionParticipantMute::ID: + return channelAdminLogEventActionParticipantMute::fetch(p); + case channelAdminLogEventActionParticipantUnmute::ID: + return channelAdminLogEventActionParticipantUnmute::fetch(p); + case channelAdminLogEventActionToggleGroupCallSetting::ID: + return channelAdminLogEventActionToggleGroupCallSetting::fetch(p); + case channelAdminLogEventActionParticipantJoinByInvite::ID: + return channelAdminLogEventActionParticipantJoinByInvite::fetch(p); + case channelAdminLogEventActionExportedInviteDelete::ID: + return channelAdminLogEventActionExportedInviteDelete::fetch(p); + case channelAdminLogEventActionExportedInviteRevoke::ID: + return channelAdminLogEventActionExportedInviteRevoke::fetch(p); + case channelAdminLogEventActionExportedInviteEdit::ID: + return channelAdminLogEventActionExportedInviteEdit::fetch(p); + case channelAdminLogEventActionParticipantVolume::ID: + return channelAdminLogEventActionParticipantVolume::fetch(p); + case channelAdminLogEventActionChangeHistoryTTL::ID: + return channelAdminLogEventActionChangeHistoryTTL::fetch(p); + case channelAdminLogEventActionParticipantJoinByRequest::ID: + return channelAdminLogEventActionParticipantJoinByRequest::fetch(p); + case channelAdminLogEventActionToggleNoForwards::ID: + return channelAdminLogEventActionToggleNoForwards::fetch(p); + case channelAdminLogEventActionSendMessage::ID: + return channelAdminLogEventActionSendMessage::fetch(p); + case channelAdminLogEventActionChangeAvailableReactions::ID: + return channelAdminLogEventActionChangeAvailableReactions::fetch(p); + case channelAdminLogEventActionChangeUsernames::ID: + return channelAdminLogEventActionChangeUsernames::fetch(p); + case channelAdminLogEventActionToggleForum::ID: + return channelAdminLogEventActionToggleForum::fetch(p); + case channelAdminLogEventActionCreateTopic::ID: + return channelAdminLogEventActionCreateTopic::fetch(p); + case channelAdminLogEventActionEditTopic::ID: + return channelAdminLogEventActionEditTopic::fetch(p); + case channelAdminLogEventActionDeleteTopic::ID: + return channelAdminLogEventActionDeleteTopic::fetch(p); + case channelAdminLogEventActionPinTopic::ID: + return channelAdminLogEventActionPinTopic::fetch(p); + case channelLocationEmpty::ID: + return channelLocationEmpty::fetch(p); + case channelLocation::ID: + return channelLocation::fetch(p); + case channelParticipant::ID: + return channelParticipant::fetch(p); + case channelParticipantSelf::ID: + return channelParticipantSelf::fetch(p); + case channelParticipantCreator::ID: + return channelParticipantCreator::fetch(p); + case channelParticipantAdmin::ID: + return channelParticipantAdmin::fetch(p); + case channelParticipantBanned::ID: + return channelParticipantBanned::fetch(p); + case channelParticipantLeft::ID: + return channelParticipantLeft::fetch(p); + case chatEmpty::ID: + return chatEmpty::fetch(p); + case chat::ID: + return chat::fetch(p); + case chatForbidden::ID: + return chatForbidden::fetch(p); + case channel::ID: + return channel::fetch(p); + case channelForbidden::ID: + return channelForbidden::fetch(p); + case chatAdminRights::ID: + return chatAdminRights::fetch(p); + case chatAdminWithInvites::ID: + return chatAdminWithInvites::fetch(p); + case chatBannedRights::ID: + return chatBannedRights::fetch(p); + case chatFull::ID: + return chatFull::fetch(p); + case channelFull::ID: + return channelFull::fetch(p); + case chatInviteAlready::ID: + return chatInviteAlready::fetch(p); + case chatInvite::ID: + return chatInvite::fetch(p); + case chatInvitePeek::ID: + return chatInvitePeek::fetch(p); + case chatInviteImporter::ID: + return chatInviteImporter::fetch(p); + case chatOnlines::ID: + return chatOnlines::fetch(p); + case chatParticipant::ID: + return chatParticipant::fetch(p); + case chatParticipantCreator::ID: + return chatParticipantCreator::fetch(p); + case chatParticipantAdmin::ID: + return chatParticipantAdmin::fetch(p); + case chatParticipantsForbidden::ID: + return chatParticipantsForbidden::fetch(p); + case chatParticipants::ID: + return chatParticipants::fetch(p); + case chatPhotoEmpty::ID: + return chatPhotoEmpty::fetch(p); + case chatPhoto::ID: + return chatPhoto::fetch(p); + case chatReactionsNone::ID: + return chatReactionsNone::fetch(p); + case chatReactionsAll::ID: + return chatReactionsAll::fetch(p); + case chatReactionsSome::ID: + return chatReactionsSome::fetch(p); + case config::ID: + return config::fetch(p); + case contact::ID: + return contact::fetch(p); + case contactStatus::ID: + return contactStatus::fetch(p); + case dataJSON::ID: + return dataJSON::fetch(p); + case dcOption::ID: + return dcOption::fetch(p); + case dialog::ID: + return dialog::fetch(p); + case dialogFolder::ID: + return dialogFolder::fetch(p); + case dialogFilter::ID: + return dialogFilter::fetch(p); + case dialogFilterDefault::ID: + return dialogFilterDefault::fetch(p); + case dialogFilterSuggested::ID: + return dialogFilterSuggested::fetch(p); + case dialogPeer::ID: + return dialogPeer::fetch(p); + case dialogPeerFolder::ID: + return dialogPeerFolder::fetch(p); + case documentEmpty::ID: + return documentEmpty::fetch(p); + case document::ID: + return document::fetch(p); + case documentAttributeImageSize::ID: + return documentAttributeImageSize::fetch(p); + case documentAttributeAnimated::ID: + return documentAttributeAnimated::fetch(p); + case documentAttributeSticker::ID: + return documentAttributeSticker::fetch(p); + case documentAttributeVideo::ID: + return documentAttributeVideo::fetch(p); + case documentAttributeAudio::ID: + return documentAttributeAudio::fetch(p); + case documentAttributeFilename::ID: + return documentAttributeFilename::fetch(p); + case documentAttributeHasStickers::ID: + return documentAttributeHasStickers::fetch(p); + case documentAttributeCustomEmoji::ID: + return documentAttributeCustomEmoji::fetch(p); + case draftMessageEmpty::ID: + return draftMessageEmpty::fetch(p); + case draftMessage::ID: + return draftMessage::fetch(p); + case emojiKeyword::ID: + return emojiKeyword::fetch(p); + case emojiKeywordDeleted::ID: + return emojiKeywordDeleted::fetch(p); + case emojiKeywordsDifference::ID: + return emojiKeywordsDifference::fetch(p); + case emojiLanguage::ID: + return emojiLanguage::fetch(p); + case emojiStatusEmpty::ID: + return emojiStatusEmpty::fetch(p); + case emojiStatus::ID: + return emojiStatus::fetch(p); + case emojiStatusUntil::ID: + return emojiStatusUntil::fetch(p); + case emojiURL::ID: + return emojiURL::fetch(p); + case encryptedChatEmpty::ID: + return encryptedChatEmpty::fetch(p); + case encryptedChatWaiting::ID: + return encryptedChatWaiting::fetch(p); + case encryptedChatRequested::ID: + return encryptedChatRequested::fetch(p); + case encryptedChat::ID: + return encryptedChat::fetch(p); + case encryptedChatDiscarded::ID: + return encryptedChatDiscarded::fetch(p); + case encryptedFileEmpty::ID: + return encryptedFileEmpty::fetch(p); + case encryptedFile::ID: + return encryptedFile::fetch(p); + case encryptedMessage::ID: + return encryptedMessage::fetch(p); + case encryptedMessageService::ID: + return encryptedMessageService::fetch(p); + case error::ID: + return error::fetch(p); + case chatInviteExported::ID: + return chatInviteExported::fetch(p); + case chatInvitePublicJoinRequests::ID: + return chatInvitePublicJoinRequests::fetch(p); + case exportedMessageLink::ID: + return exportedMessageLink::fetch(p); + case fileHash::ID: + return fileHash::fetch(p); + case folder::ID: + return folder::fetch(p); + case folderPeer::ID: + return folderPeer::fetch(p); + case forumTopicDeleted::ID: + return forumTopicDeleted::fetch(p); + case forumTopic::ID: + return forumTopic::fetch(p); + case game::ID: + return game::fetch(p); + case geoPointEmpty::ID: + return geoPointEmpty::fetch(p); + case geoPoint::ID: + return geoPoint::fetch(p); + case globalPrivacySettings::ID: + return globalPrivacySettings::fetch(p); + case groupCallDiscarded::ID: + return groupCallDiscarded::fetch(p); + case groupCall::ID: + return groupCall::fetch(p); + case groupCallParticipant::ID: + return groupCallParticipant::fetch(p); + case groupCallParticipantVideo::ID: + return groupCallParticipantVideo::fetch(p); + case groupCallParticipantVideoSourceGroup::ID: + return groupCallParticipantVideoSourceGroup::fetch(p); + case groupCallStreamChannel::ID: + return groupCallStreamChannel::fetch(p); + case highScore::ID: + return highScore::fetch(p); + case importedContact::ID: + return importedContact::fetch(p); + case inlineBotSwitchPM::ID: + return inlineBotSwitchPM::fetch(p); + case inlineQueryPeerTypeSameBotPM::ID: + return inlineQueryPeerTypeSameBotPM::fetch(p); + case inlineQueryPeerTypePM::ID: + return inlineQueryPeerTypePM::fetch(p); + case inlineQueryPeerTypeChat::ID: + return inlineQueryPeerTypeChat::fetch(p); + case inlineQueryPeerTypeMegagroup::ID: + return inlineQueryPeerTypeMegagroup::fetch(p); + case inlineQueryPeerTypeBroadcast::ID: + return inlineQueryPeerTypeBroadcast::fetch(p); + case inputAppEvent::ID: + return inputAppEvent::fetch(p); + case inputBotInlineMessageID::ID: + return inputBotInlineMessageID::fetch(p); + case inputBotInlineMessageID64::ID: + return inputBotInlineMessageID64::fetch(p); + case inputChannelEmpty::ID: + return inputChannelEmpty::fetch(p); + case inputChannel::ID: + return inputChannel::fetch(p); + case inputChannelFromMessage::ID: + return inputChannelFromMessage::fetch(p); + case inputGroupCall::ID: + return inputGroupCall::fetch(p); + case inputPeerEmpty::ID: + return inputPeerEmpty::fetch(p); + case inputPeerSelf::ID: + return inputPeerSelf::fetch(p); + case inputPeerChat::ID: + return inputPeerChat::fetch(p); + case inputPeerUser::ID: + return inputPeerUser::fetch(p); + case inputPeerChannel::ID: + return inputPeerChannel::fetch(p); + case inputPeerUserFromMessage::ID: + return inputPeerUserFromMessage::fetch(p); + case inputPeerChannelFromMessage::ID: + return inputPeerChannelFromMessage::fetch(p); + case inputStickerSetEmpty::ID: + return inputStickerSetEmpty::fetch(p); + case inputStickerSetID::ID: + return inputStickerSetID::fetch(p); + case inputStickerSetShortName::ID: + return inputStickerSetShortName::fetch(p); + case inputStickerSetAnimatedEmoji::ID: + return inputStickerSetAnimatedEmoji::fetch(p); + case inputStickerSetDice::ID: + return inputStickerSetDice::fetch(p); + case inputStickerSetAnimatedEmojiAnimations::ID: + return inputStickerSetAnimatedEmojiAnimations::fetch(p); + case inputStickerSetPremiumGifts::ID: + return inputStickerSetPremiumGifts::fetch(p); + case inputStickerSetEmojiGenericAnimations::ID: + return inputStickerSetEmojiGenericAnimations::fetch(p); + case inputStickerSetEmojiDefaultStatuses::ID: + return inputStickerSetEmojiDefaultStatuses::fetch(p); + case inputStickerSetEmojiDefaultTopicIcons::ID: + return inputStickerSetEmojiDefaultTopicIcons::fetch(p); + case inputUserEmpty::ID: + return inputUserEmpty::fetch(p); + case inputUserSelf::ID: + return inputUserSelf::fetch(p); + case inputUser::ID: + return inputUser::fetch(p); + case inputUserFromMessage::ID: + return inputUserFromMessage::fetch(p); + case invoice::ID: + return invoice::fetch(p); + case ipPort::ID: + return ipPort::fetch(p); + case ipPortSecret::ID: + return ipPortSecret::fetch(p); + case jsonObjectValue::ID: + return jsonObjectValue::fetch(p); + case jsonNull::ID: + return jsonNull::fetch(p); + case jsonBool::ID: + return jsonBool::fetch(p); + case jsonNumber::ID: + return jsonNumber::fetch(p); + case jsonString::ID: + return jsonString::fetch(p); + case jsonArray::ID: + return jsonArray::fetch(p); + case jsonObject::ID: + return jsonObject::fetch(p); + case keyboardButton::ID: + return keyboardButton::fetch(p); + case keyboardButtonUrl::ID: + return keyboardButtonUrl::fetch(p); + case keyboardButtonCallback::ID: + return keyboardButtonCallback::fetch(p); + case keyboardButtonRequestPhone::ID: + return keyboardButtonRequestPhone::fetch(p); + case keyboardButtonRequestGeoLocation::ID: + return keyboardButtonRequestGeoLocation::fetch(p); + case keyboardButtonSwitchInline::ID: + return keyboardButtonSwitchInline::fetch(p); + case keyboardButtonGame::ID: + return keyboardButtonGame::fetch(p); + case keyboardButtonBuy::ID: + return keyboardButtonBuy::fetch(p); + case keyboardButtonUrlAuth::ID: + return keyboardButtonUrlAuth::fetch(p); + case inputKeyboardButtonUrlAuth::ID: + return inputKeyboardButtonUrlAuth::fetch(p); + case keyboardButtonRequestPoll::ID: + return keyboardButtonRequestPoll::fetch(p); + case inputKeyboardButtonUserProfile::ID: + return inputKeyboardButtonUserProfile::fetch(p); + case keyboardButtonUserProfile::ID: + return keyboardButtonUserProfile::fetch(p); + case keyboardButtonWebView::ID: + return keyboardButtonWebView::fetch(p); + case keyboardButtonSimpleWebView::ID: + return keyboardButtonSimpleWebView::fetch(p); + case keyboardButtonRow::ID: + return keyboardButtonRow::fetch(p); + case labeledPrice::ID: + return labeledPrice::fetch(p); + case langPackDifference::ID: + return langPackDifference::fetch(p); + case langPackLanguage::ID: + return langPackLanguage::fetch(p); + case langPackString::ID: + return langPackString::fetch(p); + case langPackStringPluralized::ID: + return langPackStringPluralized::fetch(p); + case langPackStringDeleted::ID: + return langPackStringDeleted::fetch(p); + case maskCoords::ID: + return maskCoords::fetch(p); + case messageEmpty::ID: + return messageEmpty::fetch(p); + case message::ID: + return message::fetch(p); + case messageService::ID: + return messageService::fetch(p); + case messageActionEmpty::ID: + return messageActionEmpty::fetch(p); + case messageActionChatCreate::ID: + return messageActionChatCreate::fetch(p); + case messageActionChatEditTitle::ID: + return messageActionChatEditTitle::fetch(p); + case messageActionChatEditPhoto::ID: + return messageActionChatEditPhoto::fetch(p); + case messageActionChatDeletePhoto::ID: + return messageActionChatDeletePhoto::fetch(p); + case messageActionChatAddUser::ID: + return messageActionChatAddUser::fetch(p); + case messageActionChatDeleteUser::ID: + return messageActionChatDeleteUser::fetch(p); + case messageActionChatJoinedByLink::ID: + return messageActionChatJoinedByLink::fetch(p); + case messageActionChannelCreate::ID: + return messageActionChannelCreate::fetch(p); + case messageActionChatMigrateTo::ID: + return messageActionChatMigrateTo::fetch(p); + case messageActionChannelMigrateFrom::ID: + return messageActionChannelMigrateFrom::fetch(p); + case messageActionPinMessage::ID: + return messageActionPinMessage::fetch(p); + case messageActionHistoryClear::ID: + return messageActionHistoryClear::fetch(p); + case messageActionGameScore::ID: + return messageActionGameScore::fetch(p); + case messageActionPaymentSentMe::ID: + return messageActionPaymentSentMe::fetch(p); + case messageActionPaymentSent::ID: + return messageActionPaymentSent::fetch(p); + case messageActionPhoneCall::ID: + return messageActionPhoneCall::fetch(p); + case messageActionScreenshotTaken::ID: + return messageActionScreenshotTaken::fetch(p); + case messageActionCustomAction::ID: + return messageActionCustomAction::fetch(p); + case messageActionBotAllowed::ID: + return messageActionBotAllowed::fetch(p); + case messageActionSecureValuesSentMe::ID: + return messageActionSecureValuesSentMe::fetch(p); + case messageActionSecureValuesSent::ID: + return messageActionSecureValuesSent::fetch(p); + case messageActionContactSignUp::ID: + return messageActionContactSignUp::fetch(p); + case messageActionGeoProximityReached::ID: + return messageActionGeoProximityReached::fetch(p); + case messageActionGroupCall::ID: + return messageActionGroupCall::fetch(p); + case messageActionInviteToGroupCall::ID: + return messageActionInviteToGroupCall::fetch(p); + case messageActionSetMessagesTTL::ID: + return messageActionSetMessagesTTL::fetch(p); + case messageActionGroupCallScheduled::ID: + return messageActionGroupCallScheduled::fetch(p); + case messageActionSetChatTheme::ID: + return messageActionSetChatTheme::fetch(p); + case messageActionChatJoinedByRequest::ID: + return messageActionChatJoinedByRequest::fetch(p); + case messageActionWebViewDataSentMe::ID: + return messageActionWebViewDataSentMe::fetch(p); + case messageActionWebViewDataSent::ID: + return messageActionWebViewDataSent::fetch(p); + case messageActionGiftPremium::ID: + return messageActionGiftPremium::fetch(p); + case messageActionTopicCreate::ID: + return messageActionTopicCreate::fetch(p); + case messageActionTopicEdit::ID: + return messageActionTopicEdit::fetch(p); + case messageEntityUnknown::ID: + return messageEntityUnknown::fetch(p); + case messageEntityMention::ID: + return messageEntityMention::fetch(p); + case messageEntityHashtag::ID: + return messageEntityHashtag::fetch(p); + case messageEntityBotCommand::ID: + return messageEntityBotCommand::fetch(p); + case messageEntityUrl::ID: + return messageEntityUrl::fetch(p); + case messageEntityEmail::ID: + return messageEntityEmail::fetch(p); + case messageEntityBold::ID: + return messageEntityBold::fetch(p); + case messageEntityItalic::ID: + return messageEntityItalic::fetch(p); + case messageEntityCode::ID: + return messageEntityCode::fetch(p); + case messageEntityPre::ID: + return messageEntityPre::fetch(p); + case messageEntityTextUrl::ID: + return messageEntityTextUrl::fetch(p); + case messageEntityMentionName::ID: + return messageEntityMentionName::fetch(p); + case inputMessageEntityMentionName::ID: + return inputMessageEntityMentionName::fetch(p); + case messageEntityPhone::ID: + return messageEntityPhone::fetch(p); + case messageEntityCashtag::ID: + return messageEntityCashtag::fetch(p); + case messageEntityUnderline::ID: + return messageEntityUnderline::fetch(p); + case messageEntityStrike::ID: + return messageEntityStrike::fetch(p); + case messageEntityBlockquote::ID: + return messageEntityBlockquote::fetch(p); + case messageEntityBankCard::ID: + return messageEntityBankCard::fetch(p); + case messageEntitySpoiler::ID: + return messageEntitySpoiler::fetch(p); + case messageEntityCustomEmoji::ID: + return messageEntityCustomEmoji::fetch(p); + case messageExtendedMediaPreview::ID: + return messageExtendedMediaPreview::fetch(p); + case messageExtendedMedia::ID: + return messageExtendedMedia::fetch(p); + case messageFwdHeader::ID: + return messageFwdHeader::fetch(p); + case messageInteractionCounters::ID: + return messageInteractionCounters::fetch(p); + case messageMediaEmpty::ID: + return messageMediaEmpty::fetch(p); + case messageMediaPhoto::ID: + return messageMediaPhoto::fetch(p); + case messageMediaGeo::ID: + return messageMediaGeo::fetch(p); + case messageMediaContact::ID: + return messageMediaContact::fetch(p); + case messageMediaUnsupported::ID: + return messageMediaUnsupported::fetch(p); + case messageMediaDocument::ID: + return messageMediaDocument::fetch(p); + case messageMediaWebPage::ID: + return messageMediaWebPage::fetch(p); + case messageMediaVenue::ID: + return messageMediaVenue::fetch(p); + case messageMediaGame::ID: + return messageMediaGame::fetch(p); + case messageMediaInvoice::ID: + return messageMediaInvoice::fetch(p); + case messageMediaGeoLive::ID: + return messageMediaGeoLive::fetch(p); + case messageMediaPoll::ID: + return messageMediaPoll::fetch(p); + case messageMediaDice::ID: + return messageMediaDice::fetch(p); + case messagePeerReaction::ID: + return messagePeerReaction::fetch(p); + case messageRange::ID: + return messageRange::fetch(p); + case messageReactions::ID: + return messageReactions::fetch(p); + case messageReplies::ID: + return messageReplies::fetch(p); + case messageReplyHeader::ID: + return messageReplyHeader::fetch(p); + case messageUserVote::ID: + return messageUserVote::fetch(p); + case messageUserVoteInputOption::ID: + return messageUserVoteInputOption::fetch(p); + case messageUserVoteMultiple::ID: + return messageUserVoteMultiple::fetch(p); + case messageViews::ID: + return messageViews::fetch(p); + case inputMessagesFilterEmpty::ID: + return inputMessagesFilterEmpty::fetch(p); + case inputMessagesFilterPhotos::ID: + return inputMessagesFilterPhotos::fetch(p); + case inputMessagesFilterVideo::ID: + return inputMessagesFilterVideo::fetch(p); + case inputMessagesFilterPhotoVideo::ID: + return inputMessagesFilterPhotoVideo::fetch(p); + case inputMessagesFilterDocument::ID: + return inputMessagesFilterDocument::fetch(p); + case inputMessagesFilterUrl::ID: + return inputMessagesFilterUrl::fetch(p); + case inputMessagesFilterGif::ID: + return inputMessagesFilterGif::fetch(p); + case inputMessagesFilterVoice::ID: + return inputMessagesFilterVoice::fetch(p); + case inputMessagesFilterMusic::ID: + return inputMessagesFilterMusic::fetch(p); + case inputMessagesFilterChatPhotos::ID: + return inputMessagesFilterChatPhotos::fetch(p); + case inputMessagesFilterPhoneCalls::ID: + return inputMessagesFilterPhoneCalls::fetch(p); + case inputMessagesFilterRoundVoice::ID: + return inputMessagesFilterRoundVoice::fetch(p); + case inputMessagesFilterRoundVideo::ID: + return inputMessagesFilterRoundVideo::fetch(p); + case inputMessagesFilterMyMentions::ID: + return inputMessagesFilterMyMentions::fetch(p); + case inputMessagesFilterGeo::ID: + return inputMessagesFilterGeo::fetch(p); + case inputMessagesFilterContacts::ID: + return inputMessagesFilterContacts::fetch(p); + case inputMessagesFilterPinned::ID: + return inputMessagesFilterPinned::fetch(p); + case nearestDc::ID: + return nearestDc::fetch(p); + case notificationSoundDefault::ID: + return notificationSoundDefault::fetch(p); + case notificationSoundNone::ID: + return notificationSoundNone::fetch(p); + case notificationSoundLocal::ID: + return notificationSoundLocal::fetch(p); + case notificationSoundRingtone::ID: + return notificationSoundRingtone::fetch(p); + case notifyPeer::ID: + return notifyPeer::fetch(p); + case notifyUsers::ID: + return notifyUsers::fetch(p); + case notifyChats::ID: + return notifyChats::fetch(p); + case notifyBroadcasts::ID: + return notifyBroadcasts::fetch(p); + case notifyForumTopic::ID: + return notifyForumTopic::fetch(p); + case page::ID: + return page::fetch(p); + case pageBlockUnsupported::ID: + return pageBlockUnsupported::fetch(p); + case pageBlockTitle::ID: + return pageBlockTitle::fetch(p); + case pageBlockSubtitle::ID: + return pageBlockSubtitle::fetch(p); + case pageBlockAuthorDate::ID: + return pageBlockAuthorDate::fetch(p); + case pageBlockHeader::ID: + return pageBlockHeader::fetch(p); + case pageBlockSubheader::ID: + return pageBlockSubheader::fetch(p); + case pageBlockParagraph::ID: + return pageBlockParagraph::fetch(p); + case pageBlockPreformatted::ID: + return pageBlockPreformatted::fetch(p); + case pageBlockFooter::ID: + return pageBlockFooter::fetch(p); + case pageBlockDivider::ID: + return pageBlockDivider::fetch(p); + case pageBlockAnchor::ID: + return pageBlockAnchor::fetch(p); + case pageBlockList::ID: + return pageBlockList::fetch(p); + case pageBlockBlockquote::ID: + return pageBlockBlockquote::fetch(p); + case pageBlockPullquote::ID: + return pageBlockPullquote::fetch(p); + case pageBlockPhoto::ID: + return pageBlockPhoto::fetch(p); + case pageBlockVideo::ID: + return pageBlockVideo::fetch(p); + case pageBlockCover::ID: + return pageBlockCover::fetch(p); + case pageBlockEmbed::ID: + return pageBlockEmbed::fetch(p); + case pageBlockEmbedPost::ID: + return pageBlockEmbedPost::fetch(p); + case pageBlockCollage::ID: + return pageBlockCollage::fetch(p); + case pageBlockSlideshow::ID: + return pageBlockSlideshow::fetch(p); + case pageBlockChannel::ID: + return pageBlockChannel::fetch(p); + case pageBlockAudio::ID: + return pageBlockAudio::fetch(p); + case pageBlockKicker::ID: + return pageBlockKicker::fetch(p); + case pageBlockTable::ID: + return pageBlockTable::fetch(p); + case pageBlockOrderedList::ID: + return pageBlockOrderedList::fetch(p); + case pageBlockDetails::ID: + return pageBlockDetails::fetch(p); + case pageBlockRelatedArticles::ID: + return pageBlockRelatedArticles::fetch(p); + case pageBlockMap::ID: + return pageBlockMap::fetch(p); + case pageCaption::ID: + return pageCaption::fetch(p); + case pageListItemText::ID: + return pageListItemText::fetch(p); + case pageListItemBlocks::ID: + return pageListItemBlocks::fetch(p); + case pageListOrderedItemText::ID: + return pageListOrderedItemText::fetch(p); + case pageListOrderedItemBlocks::ID: + return pageListOrderedItemBlocks::fetch(p); + case pageRelatedArticle::ID: + return pageRelatedArticle::fetch(p); + case pageTableCell::ID: + return pageTableCell::fetch(p); + case pageTableRow::ID: + return pageTableRow::fetch(p); + case passwordKdfAlgoUnknown::ID: + return passwordKdfAlgoUnknown::fetch(p); + case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID: + return passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::fetch(p); + case paymentCharge::ID: + return paymentCharge::fetch(p); + case paymentFormMethod::ID: + return paymentFormMethod::fetch(p); + case paymentRequestedInfo::ID: + return paymentRequestedInfo::fetch(p); + case paymentSavedCredentialsCard::ID: + return paymentSavedCredentialsCard::fetch(p); + case peerUser::ID: + return peerUser::fetch(p); + case peerChat::ID: + return peerChat::fetch(p); + case peerChannel::ID: + return peerChannel::fetch(p); + case peerBlocked::ID: + return peerBlocked::fetch(p); + case peerLocated::ID: + return peerLocated::fetch(p); + case peerSelfLocated::ID: + return peerSelfLocated::fetch(p); + case peerNotifySettings::ID: + return peerNotifySettings::fetch(p); + case peerSettings::ID: + return peerSettings::fetch(p); + case phoneCallEmpty::ID: + return phoneCallEmpty::fetch(p); + case phoneCallWaiting::ID: + return phoneCallWaiting::fetch(p); + case phoneCallRequested::ID: + return phoneCallRequested::fetch(p); + case phoneCallAccepted::ID: + return phoneCallAccepted::fetch(p); + case phoneCall::ID: + return phoneCall::fetch(p); + case phoneCallDiscarded::ID: + return phoneCallDiscarded::fetch(p); + case phoneCallDiscardReasonMissed::ID: + return phoneCallDiscardReasonMissed::fetch(p); + case phoneCallDiscardReasonDisconnect::ID: + return phoneCallDiscardReasonDisconnect::fetch(p); + case phoneCallDiscardReasonHangup::ID: + return phoneCallDiscardReasonHangup::fetch(p); + case phoneCallDiscardReasonBusy::ID: + return phoneCallDiscardReasonBusy::fetch(p); + case phoneCallProtocol::ID: + return phoneCallProtocol::fetch(p); + case phoneConnection::ID: + return phoneConnection::fetch(p); + case phoneConnectionWebrtc::ID: + return phoneConnectionWebrtc::fetch(p); + case photoEmpty::ID: + return photoEmpty::fetch(p); + case photo::ID: + return photo::fetch(p); + case photoSizeEmpty::ID: + return photoSizeEmpty::fetch(p); + case photoSize::ID: + return photoSize::fetch(p); + case photoCachedSize::ID: + return photoCachedSize::fetch(p); + case photoStrippedSize::ID: + return photoStrippedSize::fetch(p); + case photoSizeProgressive::ID: + return photoSizeProgressive::fetch(p); + case photoPathSize::ID: + return photoPathSize::fetch(p); + case poll::ID: + return poll::fetch(p); + case pollAnswer::ID: + return pollAnswer::fetch(p); + case pollAnswerVoters::ID: + return pollAnswerVoters::fetch(p); + case pollResults::ID: + return pollResults::fetch(p); + case popularContact::ID: + return popularContact::fetch(p); + case postAddress::ID: + return postAddress::fetch(p); + case premiumGiftOption::ID: + return premiumGiftOption::fetch(p); + case premiumSubscriptionOption::ID: + return premiumSubscriptionOption::fetch(p); + case privacyKeyStatusTimestamp::ID: + return privacyKeyStatusTimestamp::fetch(p); + case privacyKeyChatInvite::ID: + return privacyKeyChatInvite::fetch(p); + case privacyKeyPhoneCall::ID: + return privacyKeyPhoneCall::fetch(p); + case privacyKeyPhoneP2P::ID: + return privacyKeyPhoneP2P::fetch(p); + case privacyKeyForwards::ID: + return privacyKeyForwards::fetch(p); + case privacyKeyProfilePhoto::ID: + return privacyKeyProfilePhoto::fetch(p); + case privacyKeyPhoneNumber::ID: + return privacyKeyPhoneNumber::fetch(p); + case privacyKeyAddedByPhone::ID: + return privacyKeyAddedByPhone::fetch(p); + case privacyKeyVoiceMessages::ID: + return privacyKeyVoiceMessages::fetch(p); + case privacyValueAllowContacts::ID: + return privacyValueAllowContacts::fetch(p); + case privacyValueAllowAll::ID: + return privacyValueAllowAll::fetch(p); + case privacyValueAllowUsers::ID: + return privacyValueAllowUsers::fetch(p); + case privacyValueDisallowContacts::ID: + return privacyValueDisallowContacts::fetch(p); + case privacyValueDisallowAll::ID: + return privacyValueDisallowAll::fetch(p); + case privacyValueDisallowUsers::ID: + return privacyValueDisallowUsers::fetch(p); + case privacyValueAllowChatParticipants::ID: + return privacyValueAllowChatParticipants::fetch(p); + case privacyValueDisallowChatParticipants::ID: + return privacyValueDisallowChatParticipants::fetch(p); + case reactionEmpty::ID: + return reactionEmpty::fetch(p); + case reactionEmoji::ID: + return reactionEmoji::fetch(p); + case reactionCustomEmoji::ID: + return reactionCustomEmoji::fetch(p); + case reactionCount::ID: + return reactionCount::fetch(p); + case receivedNotifyMessage::ID: + return receivedNotifyMessage::fetch(p); + case recentMeUrlUnknown::ID: + return recentMeUrlUnknown::fetch(p); + case recentMeUrlUser::ID: + return recentMeUrlUser::fetch(p); + case recentMeUrlChat::ID: + return recentMeUrlChat::fetch(p); + case recentMeUrlChatInvite::ID: + return recentMeUrlChatInvite::fetch(p); + case recentMeUrlStickerSet::ID: + return recentMeUrlStickerSet::fetch(p); + case replyKeyboardHide::ID: + return replyKeyboardHide::fetch(p); + case replyKeyboardForceReply::ID: + return replyKeyboardForceReply::fetch(p); + case replyKeyboardMarkup::ID: + return replyKeyboardMarkup::fetch(p); + case replyInlineMarkup::ID: + return replyInlineMarkup::fetch(p); + case restrictionReason::ID: + return restrictionReason::fetch(p); + case textEmpty::ID: + return textEmpty::fetch(p); + case textPlain::ID: + return textPlain::fetch(p); + case textBold::ID: + return textBold::fetch(p); + case textItalic::ID: + return textItalic::fetch(p); + case textUnderline::ID: + return textUnderline::fetch(p); + case textStrike::ID: + return textStrike::fetch(p); + case textFixed::ID: + return textFixed::fetch(p); + case textUrl::ID: + return textUrl::fetch(p); + case textEmail::ID: + return textEmail::fetch(p); + case textConcat::ID: + return textConcat::fetch(p); + case textSubscript::ID: + return textSubscript::fetch(p); + case textSuperscript::ID: + return textSuperscript::fetch(p); + case textMarked::ID: + return textMarked::fetch(p); + case textPhone::ID: + return textPhone::fetch(p); + case textImage::ID: + return textImage::fetch(p); + case textAnchor::ID: + return textAnchor::fetch(p); + case savedPhoneContact::ID: + return savedPhoneContact::fetch(p); + case searchResultsCalendarPeriod::ID: + return searchResultsCalendarPeriod::fetch(p); + case searchResultPosition::ID: + return searchResultPosition::fetch(p); + case secureCredentialsEncrypted::ID: + return secureCredentialsEncrypted::fetch(p); + case secureData::ID: + return secureData::fetch(p); + case secureFileEmpty::ID: + return secureFileEmpty::fetch(p); + case secureFile::ID: + return secureFile::fetch(p); + case securePasswordKdfAlgoUnknown::ID: + return securePasswordKdfAlgoUnknown::fetch(p); + case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID: + return securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::fetch(p); + case securePasswordKdfAlgoSHA512::ID: + return securePasswordKdfAlgoSHA512::fetch(p); + case securePlainPhone::ID: + return securePlainPhone::fetch(p); + case securePlainEmail::ID: + return securePlainEmail::fetch(p); + case secureRequiredType::ID: + return secureRequiredType::fetch(p); + case secureRequiredTypeOneOf::ID: + return secureRequiredTypeOneOf::fetch(p); + case secureSecretSettings::ID: + return secureSecretSettings::fetch(p); + case secureValue::ID: + return secureValue::fetch(p); + case secureValueErrorData::ID: + return secureValueErrorData::fetch(p); + case secureValueErrorFrontSide::ID: + return secureValueErrorFrontSide::fetch(p); + case secureValueErrorReverseSide::ID: + return secureValueErrorReverseSide::fetch(p); + case secureValueErrorSelfie::ID: + return secureValueErrorSelfie::fetch(p); + case secureValueErrorFile::ID: + return secureValueErrorFile::fetch(p); + case secureValueErrorFiles::ID: + return secureValueErrorFiles::fetch(p); + case secureValueError::ID: + return secureValueError::fetch(p); + case secureValueErrorTranslationFile::ID: + return secureValueErrorTranslationFile::fetch(p); + case secureValueErrorTranslationFiles::ID: + return secureValueErrorTranslationFiles::fetch(p); + case secureValueTypePersonalDetails::ID: + return secureValueTypePersonalDetails::fetch(p); + case secureValueTypePassport::ID: + return secureValueTypePassport::fetch(p); + case secureValueTypeDriverLicense::ID: + return secureValueTypeDriverLicense::fetch(p); + case secureValueTypeIdentityCard::ID: + return secureValueTypeIdentityCard::fetch(p); + case secureValueTypeInternalPassport::ID: + return secureValueTypeInternalPassport::fetch(p); + case secureValueTypeAddress::ID: + return secureValueTypeAddress::fetch(p); + case secureValueTypeUtilityBill::ID: + return secureValueTypeUtilityBill::fetch(p); + case secureValueTypeBankStatement::ID: + return secureValueTypeBankStatement::fetch(p); + case secureValueTypeRentalAgreement::ID: + return secureValueTypeRentalAgreement::fetch(p); + case secureValueTypePassportRegistration::ID: + return secureValueTypePassportRegistration::fetch(p); + case secureValueTypeTemporaryRegistration::ID: + return secureValueTypeTemporaryRegistration::fetch(p); + case secureValueTypePhone::ID: + return secureValueTypePhone::fetch(p); + case secureValueTypeEmail::ID: + return secureValueTypeEmail::fetch(p); + case sendAsPeer::ID: + return sendAsPeer::fetch(p); + case sendMessageTypingAction::ID: + return sendMessageTypingAction::fetch(p); + case sendMessageCancelAction::ID: + return sendMessageCancelAction::fetch(p); + case sendMessageRecordVideoAction::ID: + return sendMessageRecordVideoAction::fetch(p); + case sendMessageUploadVideoAction::ID: + return sendMessageUploadVideoAction::fetch(p); + case sendMessageRecordAudioAction::ID: + return sendMessageRecordAudioAction::fetch(p); + case sendMessageUploadAudioAction::ID: + return sendMessageUploadAudioAction::fetch(p); + case sendMessageUploadPhotoAction::ID: + return sendMessageUploadPhotoAction::fetch(p); + case sendMessageUploadDocumentAction::ID: + return sendMessageUploadDocumentAction::fetch(p); + case sendMessageGeoLocationAction::ID: + return sendMessageGeoLocationAction::fetch(p); + case sendMessageChooseContactAction::ID: + return sendMessageChooseContactAction::fetch(p); + case sendMessageGamePlayAction::ID: + return sendMessageGamePlayAction::fetch(p); + case sendMessageRecordRoundAction::ID: + return sendMessageRecordRoundAction::fetch(p); + case sendMessageUploadRoundAction::ID: + return sendMessageUploadRoundAction::fetch(p); + case speakingInGroupCallAction::ID: + return speakingInGroupCallAction::fetch(p); + case sendMessageHistoryImportAction::ID: + return sendMessageHistoryImportAction::fetch(p); + case sendMessageChooseStickerAction::ID: + return sendMessageChooseStickerAction::fetch(p); + case sendMessageEmojiInteraction::ID: + return sendMessageEmojiInteraction::fetch(p); + case sendMessageEmojiInteractionSeen::ID: + return sendMessageEmojiInteractionSeen::fetch(p); + case shippingOption::ID: + return shippingOption::fetch(p); + case simpleWebViewResultUrl::ID: + return simpleWebViewResultUrl::fetch(p); + case sponsoredMessage::ID: + return sponsoredMessage::fetch(p); + case statsAbsValueAndPrev::ID: + return statsAbsValueAndPrev::fetch(p); + case statsDateRangeDays::ID: + return statsDateRangeDays::fetch(p); + case statsGraphAsync::ID: + return statsGraphAsync::fetch(p); + case statsGraphError::ID: + return statsGraphError::fetch(p); + case statsGraph::ID: + return statsGraph::fetch(p); + case statsGroupTopAdmin::ID: + return statsGroupTopAdmin::fetch(p); + case statsGroupTopInviter::ID: + return statsGroupTopInviter::fetch(p); + case statsGroupTopPoster::ID: + return statsGroupTopPoster::fetch(p); + case statsPercentValue::ID: + return statsPercentValue::fetch(p); + case stickerKeyword::ID: + return stickerKeyword::fetch(p); + case stickerPack::ID: + return stickerPack::fetch(p); + case stickerSet::ID: + return stickerSet::fetch(p); + case stickerSetCovered::ID: + return stickerSetCovered::fetch(p); + case stickerSetMultiCovered::ID: + return stickerSetMultiCovered::fetch(p); + case stickerSetFullCovered::ID: + return stickerSetFullCovered::fetch(p); + case theme::ID: + return theme::fetch(p); + case themeSettings::ID: + return themeSettings::fetch(p); + case topPeer::ID: + return topPeer::fetch(p); + case topPeerCategoryBotsPM::ID: + return topPeerCategoryBotsPM::fetch(p); + case topPeerCategoryBotsInline::ID: + return topPeerCategoryBotsInline::fetch(p); + case topPeerCategoryCorrespondents::ID: + return topPeerCategoryCorrespondents::fetch(p); + case topPeerCategoryGroups::ID: + return topPeerCategoryGroups::fetch(p); + case topPeerCategoryChannels::ID: + return topPeerCategoryChannels::fetch(p); + case topPeerCategoryPhoneCalls::ID: + return topPeerCategoryPhoneCalls::fetch(p); + case topPeerCategoryForwardUsers::ID: + return topPeerCategoryForwardUsers::fetch(p); + case topPeerCategoryForwardChats::ID: + return topPeerCategoryForwardChats::fetch(p); + case topPeerCategoryPeers::ID: + return topPeerCategoryPeers::fetch(p); + case updateNewMessage::ID: + return updateNewMessage::fetch(p); + case updateMessageID::ID: + return updateMessageID::fetch(p); + case updateDeleteMessages::ID: + return updateDeleteMessages::fetch(p); + case updateUserTyping::ID: + return updateUserTyping::fetch(p); + case updateChatUserTyping::ID: + return updateChatUserTyping::fetch(p); + case updateChatParticipants::ID: + return updateChatParticipants::fetch(p); + case updateUserStatus::ID: + return updateUserStatus::fetch(p); + case updateUserName::ID: + return updateUserName::fetch(p); + case updateUserPhoto::ID: + return updateUserPhoto::fetch(p); + case updateNewEncryptedMessage::ID: + return updateNewEncryptedMessage::fetch(p); + case updateEncryptedChatTyping::ID: + return updateEncryptedChatTyping::fetch(p); + case updateEncryption::ID: + return updateEncryption::fetch(p); + case updateEncryptedMessagesRead::ID: + return updateEncryptedMessagesRead::fetch(p); + case updateChatParticipantAdd::ID: + return updateChatParticipantAdd::fetch(p); + case updateChatParticipantDelete::ID: + return updateChatParticipantDelete::fetch(p); + case updateDcOptions::ID: + return updateDcOptions::fetch(p); + case updateNotifySettings::ID: + return updateNotifySettings::fetch(p); + case updateServiceNotification::ID: + return updateServiceNotification::fetch(p); + case updatePrivacy::ID: + return updatePrivacy::fetch(p); + case updateUserPhone::ID: + return updateUserPhone::fetch(p); + case updateReadHistoryInbox::ID: + return updateReadHistoryInbox::fetch(p); + case updateReadHistoryOutbox::ID: + return updateReadHistoryOutbox::fetch(p); + case updateWebPage::ID: + return updateWebPage::fetch(p); + case updateReadMessagesContents::ID: + return updateReadMessagesContents::fetch(p); + case updateChannelTooLong::ID: + return updateChannelTooLong::fetch(p); + case updateChannel::ID: + return updateChannel::fetch(p); + case updateNewChannelMessage::ID: + return updateNewChannelMessage::fetch(p); + case updateReadChannelInbox::ID: + return updateReadChannelInbox::fetch(p); + case updateDeleteChannelMessages::ID: + return updateDeleteChannelMessages::fetch(p); + case updateChannelMessageViews::ID: + return updateChannelMessageViews::fetch(p); + case updateChatParticipantAdmin::ID: + return updateChatParticipantAdmin::fetch(p); + case updateNewStickerSet::ID: + return updateNewStickerSet::fetch(p); + case updateStickerSetsOrder::ID: + return updateStickerSetsOrder::fetch(p); + case updateStickerSets::ID: + return updateStickerSets::fetch(p); + case updateSavedGifs::ID: + return updateSavedGifs::fetch(p); + case updateBotInlineQuery::ID: + return updateBotInlineQuery::fetch(p); + case updateBotInlineSend::ID: + return updateBotInlineSend::fetch(p); + case updateEditChannelMessage::ID: + return updateEditChannelMessage::fetch(p); + case updateBotCallbackQuery::ID: + return updateBotCallbackQuery::fetch(p); + case updateEditMessage::ID: + return updateEditMessage::fetch(p); + case updateInlineBotCallbackQuery::ID: + return updateInlineBotCallbackQuery::fetch(p); + case updateReadChannelOutbox::ID: + return updateReadChannelOutbox::fetch(p); + case updateDraftMessage::ID: + return updateDraftMessage::fetch(p); + case updateReadFeaturedStickers::ID: + return updateReadFeaturedStickers::fetch(p); + case updateRecentStickers::ID: + return updateRecentStickers::fetch(p); + case updateConfig::ID: + return updateConfig::fetch(p); + case updatePtsChanged::ID: + return updatePtsChanged::fetch(p); + case updateChannelWebPage::ID: + return updateChannelWebPage::fetch(p); + case updateDialogPinned::ID: + return updateDialogPinned::fetch(p); + case updatePinnedDialogs::ID: + return updatePinnedDialogs::fetch(p); + case updateBotWebhookJSON::ID: + return updateBotWebhookJSON::fetch(p); + case updateBotWebhookJSONQuery::ID: + return updateBotWebhookJSONQuery::fetch(p); + case updateBotShippingQuery::ID: + return updateBotShippingQuery::fetch(p); + case updateBotPrecheckoutQuery::ID: + return updateBotPrecheckoutQuery::fetch(p); + case updatePhoneCall::ID: + return updatePhoneCall::fetch(p); + case updateLangPackTooLong::ID: + return updateLangPackTooLong::fetch(p); + case updateLangPack::ID: + return updateLangPack::fetch(p); + case updateFavedStickers::ID: + return updateFavedStickers::fetch(p); + case updateChannelReadMessagesContents::ID: + return updateChannelReadMessagesContents::fetch(p); + case updateContactsReset::ID: + return updateContactsReset::fetch(p); + case updateChannelAvailableMessages::ID: + return updateChannelAvailableMessages::fetch(p); + case updateDialogUnreadMark::ID: + return updateDialogUnreadMark::fetch(p); + case updateMessagePoll::ID: + return updateMessagePoll::fetch(p); + case updateChatDefaultBannedRights::ID: + return updateChatDefaultBannedRights::fetch(p); + case updateFolderPeers::ID: + return updateFolderPeers::fetch(p); + case updatePeerSettings::ID: + return updatePeerSettings::fetch(p); + case updatePeerLocated::ID: + return updatePeerLocated::fetch(p); + case updateNewScheduledMessage::ID: + return updateNewScheduledMessage::fetch(p); + case updateDeleteScheduledMessages::ID: + return updateDeleteScheduledMessages::fetch(p); + case updateTheme::ID: + return updateTheme::fetch(p); + case updateGeoLiveViewed::ID: + return updateGeoLiveViewed::fetch(p); + case updateLoginToken::ID: + return updateLoginToken::fetch(p); + case updateMessagePollVote::ID: + return updateMessagePollVote::fetch(p); + case updateDialogFilter::ID: + return updateDialogFilter::fetch(p); + case updateDialogFilterOrder::ID: + return updateDialogFilterOrder::fetch(p); + case updateDialogFilters::ID: + return updateDialogFilters::fetch(p); + case updatePhoneCallSignalingData::ID: + return updatePhoneCallSignalingData::fetch(p); + case updateChannelMessageForwards::ID: + return updateChannelMessageForwards::fetch(p); + case updateReadChannelDiscussionInbox::ID: + return updateReadChannelDiscussionInbox::fetch(p); + case updateReadChannelDiscussionOutbox::ID: + return updateReadChannelDiscussionOutbox::fetch(p); + case updatePeerBlocked::ID: + return updatePeerBlocked::fetch(p); + case updateChannelUserTyping::ID: + return updateChannelUserTyping::fetch(p); + case updatePinnedMessages::ID: + return updatePinnedMessages::fetch(p); + case updatePinnedChannelMessages::ID: + return updatePinnedChannelMessages::fetch(p); + case updateChat::ID: + return updateChat::fetch(p); + case updateGroupCallParticipants::ID: + return updateGroupCallParticipants::fetch(p); + case updateGroupCall::ID: + return updateGroupCall::fetch(p); + case updatePeerHistoryTTL::ID: + return updatePeerHistoryTTL::fetch(p); + case updateChatParticipant::ID: + return updateChatParticipant::fetch(p); + case updateChannelParticipant::ID: + return updateChannelParticipant::fetch(p); + case updateBotStopped::ID: + return updateBotStopped::fetch(p); + case updateGroupCallConnection::ID: + return updateGroupCallConnection::fetch(p); + case updateBotCommands::ID: + return updateBotCommands::fetch(p); + case updatePendingJoinRequests::ID: + return updatePendingJoinRequests::fetch(p); + case updateBotChatInviteRequester::ID: + return updateBotChatInviteRequester::fetch(p); + case updateMessageReactions::ID: + return updateMessageReactions::fetch(p); + case updateAttachMenuBots::ID: + return updateAttachMenuBots::fetch(p); + case updateWebViewResultSent::ID: + return updateWebViewResultSent::fetch(p); + case updateBotMenuButton::ID: + return updateBotMenuButton::fetch(p); + case updateSavedRingtones::ID: + return updateSavedRingtones::fetch(p); + case updateTranscribedAudio::ID: + return updateTranscribedAudio::fetch(p); + case updateReadFeaturedEmojiStickers::ID: + return updateReadFeaturedEmojiStickers::fetch(p); + case updateUserEmojiStatus::ID: + return updateUserEmojiStatus::fetch(p); + case updateRecentEmojiStatuses::ID: + return updateRecentEmojiStatuses::fetch(p); + case updateRecentReactions::ID: + return updateRecentReactions::fetch(p); + case updateMoveStickerSetToTop::ID: + return updateMoveStickerSetToTop::fetch(p); + case updateMessageExtendedMedia::ID: + return updateMessageExtendedMedia::fetch(p); + case updateChannelPinnedTopic::ID: + return updateChannelPinnedTopic::fetch(p); + case updatesTooLong::ID: + return updatesTooLong::fetch(p); + case updateShortMessage::ID: + return updateShortMessage::fetch(p); + case updateShortChatMessage::ID: + return updateShortChatMessage::fetch(p); + case updateShort::ID: + return updateShort::fetch(p); + case updatesCombined::ID: + return updatesCombined::fetch(p); + case updates::ID: + return updates::fetch(p); + case updateShortSentMessage::ID: + return updateShortSentMessage::fetch(p); + case urlAuthResultRequest::ID: + return urlAuthResultRequest::fetch(p); + case urlAuthResultAccepted::ID: + return urlAuthResultAccepted::fetch(p); + case urlAuthResultDefault::ID: + return urlAuthResultDefault::fetch(p); + case userEmpty::ID: + return userEmpty::fetch(p); + case user::ID: + return user::fetch(p); + case userFull::ID: + return userFull::fetch(p); + case userProfilePhotoEmpty::ID: + return userProfilePhotoEmpty::fetch(p); + case userProfilePhoto::ID: + return userProfilePhoto::fetch(p); + case userStatusEmpty::ID: + return userStatusEmpty::fetch(p); + case userStatusOnline::ID: + return userStatusOnline::fetch(p); + case userStatusOffline::ID: + return userStatusOffline::fetch(p); + case userStatusRecently::ID: + return userStatusRecently::fetch(p); + case userStatusLastWeek::ID: + return userStatusLastWeek::fetch(p); + case userStatusLastMonth::ID: + return userStatusLastMonth::fetch(p); + case username::ID: + return username::fetch(p); + case videoSize::ID: + return videoSize::fetch(p); + case wallPaper::ID: + return wallPaper::fetch(p); + case wallPaperNoFile::ID: + return wallPaperNoFile::fetch(p); + case wallPaperSettings::ID: + return wallPaperSettings::fetch(p); + case webAuthorization::ID: + return webAuthorization::fetch(p); + case webDocument::ID: + return webDocument::fetch(p); + case webDocumentNoProxy::ID: + return webDocumentNoProxy::fetch(p); + case webPageEmpty::ID: + return webPageEmpty::fetch(p); + case webPagePending::ID: + return webPagePending::fetch(p); + case webPage::ID: + return webPage::fetch(p); + case webPageNotModified::ID: + return webPageNotModified::fetch(p); + case webPageAttributeTheme::ID: + return webPageAttributeTheme::fetch(p); + case webViewMessageSent::ID: + return webViewMessageSent::fetch(p); + case webViewResultUrl::ID: + return webViewResultUrl::fetch(p); + case account_authorizationForm::ID: + return account_authorizationForm::fetch(p); + case account_authorizations::ID: + return account_authorizations::fetch(p); + case account_autoDownloadSettings::ID: + return account_autoDownloadSettings::fetch(p); + case account_contentSettings::ID: + return account_contentSettings::fetch(p); + case account_emailVerified::ID: + return account_emailVerified::fetch(p); + case account_emailVerifiedLogin::ID: + return account_emailVerifiedLogin::fetch(p); + case account_emojiStatusesNotModified::ID: + return account_emojiStatusesNotModified::fetch(p); + case account_emojiStatuses::ID: + return account_emojiStatuses::fetch(p); + case account_password::ID: + return account_password::fetch(p); + case account_passwordSettings::ID: + return account_passwordSettings::fetch(p); + case account_privacyRules::ID: + return account_privacyRules::fetch(p); + case account_resetPasswordFailedWait::ID: + return account_resetPasswordFailedWait::fetch(p); + case account_resetPasswordRequestedWait::ID: + return account_resetPasswordRequestedWait::fetch(p); + case account_resetPasswordOk::ID: + return account_resetPasswordOk::fetch(p); + case account_savedRingtone::ID: + return account_savedRingtone::fetch(p); + case account_savedRingtoneConverted::ID: + return account_savedRingtoneConverted::fetch(p); + case account_savedRingtonesNotModified::ID: + return account_savedRingtonesNotModified::fetch(p); + case account_savedRingtones::ID: + return account_savedRingtones::fetch(p); + case account_sentEmailCode::ID: + return account_sentEmailCode::fetch(p); + case account_takeout::ID: + return account_takeout::fetch(p); + case account_themesNotModified::ID: + return account_themesNotModified::fetch(p); + case account_themes::ID: + return account_themes::fetch(p); + case account_tmpPassword::ID: + return account_tmpPassword::fetch(p); + case account_wallPapersNotModified::ID: + return account_wallPapersNotModified::fetch(p); + case account_wallPapers::ID: + return account_wallPapers::fetch(p); + case account_webAuthorizations::ID: + return account_webAuthorizations::fetch(p); + case auth_authorization::ID: + return auth_authorization::fetch(p); + case auth_authorizationSignUpRequired::ID: + return auth_authorizationSignUpRequired::fetch(p); + case auth_codeTypeSms::ID: + return auth_codeTypeSms::fetch(p); + case auth_codeTypeCall::ID: + return auth_codeTypeCall::fetch(p); + case auth_codeTypeFlashCall::ID: + return auth_codeTypeFlashCall::fetch(p); + case auth_codeTypeMissedCall::ID: + return auth_codeTypeMissedCall::fetch(p); + case auth_exportedAuthorization::ID: + return auth_exportedAuthorization::fetch(p); + case auth_loggedOut::ID: + return auth_loggedOut::fetch(p); + case auth_loginToken::ID: + return auth_loginToken::fetch(p); + case auth_loginTokenMigrateTo::ID: + return auth_loginTokenMigrateTo::fetch(p); + case auth_loginTokenSuccess::ID: + return auth_loginTokenSuccess::fetch(p); + case auth_passwordRecovery::ID: + return auth_passwordRecovery::fetch(p); + case auth_sentCode::ID: + return auth_sentCode::fetch(p); + case auth_sentCodeTypeApp::ID: + return auth_sentCodeTypeApp::fetch(p); + case auth_sentCodeTypeSms::ID: + return auth_sentCodeTypeSms::fetch(p); + case auth_sentCodeTypeCall::ID: + return auth_sentCodeTypeCall::fetch(p); + case auth_sentCodeTypeFlashCall::ID: + return auth_sentCodeTypeFlashCall::fetch(p); + case auth_sentCodeTypeMissedCall::ID: + return auth_sentCodeTypeMissedCall::fetch(p); + case auth_sentCodeTypeEmailCode::ID: + return auth_sentCodeTypeEmailCode::fetch(p); + case auth_sentCodeTypeSetUpEmailRequired::ID: + return auth_sentCodeTypeSetUpEmailRequired::fetch(p); + case channels_adminLogResults::ID: + return channels_adminLogResults::fetch(p); + case channels_channelParticipant::ID: + return channels_channelParticipant::fetch(p); + case channels_channelParticipants::ID: + return channels_channelParticipants::fetch(p); + case channels_channelParticipantsNotModified::ID: + return channels_channelParticipantsNotModified::fetch(p); + case channels_sendAsPeers::ID: + return channels_sendAsPeers::fetch(p); + case contacts_blocked::ID: + return contacts_blocked::fetch(p); + case contacts_blockedSlice::ID: + return contacts_blockedSlice::fetch(p); + case contacts_contactsNotModified::ID: + return contacts_contactsNotModified::fetch(p); + case contacts_contacts::ID: + return contacts_contacts::fetch(p); + case contacts_found::ID: + return contacts_found::fetch(p); + case contacts_importedContacts::ID: + return contacts_importedContacts::fetch(p); + case contacts_resolvedPeer::ID: + return contacts_resolvedPeer::fetch(p); + case contacts_topPeersNotModified::ID: + return contacts_topPeersNotModified::fetch(p); + case contacts_topPeers::ID: + return contacts_topPeers::fetch(p); + case contacts_topPeersDisabled::ID: + return contacts_topPeersDisabled::fetch(p); + case help_appUpdate::ID: + return help_appUpdate::fetch(p); + case help_noAppUpdate::ID: + return help_noAppUpdate::fetch(p); + case help_configSimple::ID: + return help_configSimple::fetch(p); + case help_countriesListNotModified::ID: + return help_countriesListNotModified::fetch(p); + case help_countriesList::ID: + return help_countriesList::fetch(p); + case help_country::ID: + return help_country::fetch(p); + case help_countryCode::ID: + return help_countryCode::fetch(p); + case help_deepLinkInfoEmpty::ID: + return help_deepLinkInfoEmpty::fetch(p); + case help_deepLinkInfo::ID: + return help_deepLinkInfo::fetch(p); + case help_inviteText::ID: + return help_inviteText::fetch(p); + case help_passportConfigNotModified::ID: + return help_passportConfigNotModified::fetch(p); + case help_passportConfig::ID: + return help_passportConfig::fetch(p); + case help_premiumPromo::ID: + return help_premiumPromo::fetch(p); + case help_promoDataEmpty::ID: + return help_promoDataEmpty::fetch(p); + case help_promoData::ID: + return help_promoData::fetch(p); + case help_recentMeUrls::ID: + return help_recentMeUrls::fetch(p); + case help_support::ID: + return help_support::fetch(p); + case help_supportName::ID: + return help_supportName::fetch(p); + case help_termsOfService::ID: + return help_termsOfService::fetch(p); + case help_termsOfServiceUpdateEmpty::ID: + return help_termsOfServiceUpdateEmpty::fetch(p); + case help_termsOfServiceUpdate::ID: + return help_termsOfServiceUpdate::fetch(p); + case help_userInfoEmpty::ID: + return help_userInfoEmpty::fetch(p); + case help_userInfo::ID: + return help_userInfo::fetch(p); + case messages_affectedFoundMessages::ID: + return messages_affectedFoundMessages::fetch(p); + case messages_affectedHistory::ID: + return messages_affectedHistory::fetch(p); + case messages_affectedMessages::ID: + return messages_affectedMessages::fetch(p); + case messages_allStickersNotModified::ID: + return messages_allStickersNotModified::fetch(p); + case messages_allStickers::ID: + return messages_allStickers::fetch(p); + case messages_archivedStickers::ID: + return messages_archivedStickers::fetch(p); + case messages_availableReactionsNotModified::ID: + return messages_availableReactionsNotModified::fetch(p); + case messages_availableReactions::ID: + return messages_availableReactions::fetch(p); + case messages_botCallbackAnswer::ID: + return messages_botCallbackAnswer::fetch(p); + case messages_botResults::ID: + return messages_botResults::fetch(p); + case messages_chatAdminsWithInvites::ID: + return messages_chatAdminsWithInvites::fetch(p); + case messages_chatFull::ID: + return messages_chatFull::fetch(p); + case messages_chatInviteImporters::ID: + return messages_chatInviteImporters::fetch(p); + case messages_chats::ID: + return messages_chats::fetch(p); + case messages_chatsSlice::ID: + return messages_chatsSlice::fetch(p); + case messages_checkedHistoryImportPeer::ID: + return messages_checkedHistoryImportPeer::fetch(p); + case messages_dhConfigNotModified::ID: + return messages_dhConfigNotModified::fetch(p); + case messages_dhConfig::ID: + return messages_dhConfig::fetch(p); + case messages_dialogs::ID: + return messages_dialogs::fetch(p); + case messages_dialogsSlice::ID: + return messages_dialogsSlice::fetch(p); + case messages_dialogsNotModified::ID: + return messages_dialogsNotModified::fetch(p); + case messages_discussionMessage::ID: + return messages_discussionMessage::fetch(p); + case messages_exportedChatInvite::ID: + return messages_exportedChatInvite::fetch(p); + case messages_exportedChatInviteReplaced::ID: + return messages_exportedChatInviteReplaced::fetch(p); + case messages_exportedChatInvites::ID: + return messages_exportedChatInvites::fetch(p); + case messages_favedStickersNotModified::ID: + return messages_favedStickersNotModified::fetch(p); + case messages_favedStickers::ID: + return messages_favedStickers::fetch(p); + case messages_featuredStickersNotModified::ID: + return messages_featuredStickersNotModified::fetch(p); + case messages_featuredStickers::ID: + return messages_featuredStickers::fetch(p); + case messages_forumTopics::ID: + return messages_forumTopics::fetch(p); + case messages_foundStickerSetsNotModified::ID: + return messages_foundStickerSetsNotModified::fetch(p); + case messages_foundStickerSets::ID: + return messages_foundStickerSets::fetch(p); + case messages_highScores::ID: + return messages_highScores::fetch(p); + case messages_historyImport::ID: + return messages_historyImport::fetch(p); + case messages_historyImportParsed::ID: + return messages_historyImportParsed::fetch(p); + case messages_inactiveChats::ID: + return messages_inactiveChats::fetch(p); + case messages_messageEditData::ID: + return messages_messageEditData::fetch(p); + case messages_messageReactionsList::ID: + return messages_messageReactionsList::fetch(p); + case messages_messageViews::ID: + return messages_messageViews::fetch(p); + case messages_messages::ID: + return messages_messages::fetch(p); + case messages_messagesSlice::ID: + return messages_messagesSlice::fetch(p); + case messages_channelMessages::ID: + return messages_channelMessages::fetch(p); + case messages_messagesNotModified::ID: + return messages_messagesNotModified::fetch(p); + case messages_peerDialogs::ID: + return messages_peerDialogs::fetch(p); + case messages_peerSettings::ID: + return messages_peerSettings::fetch(p); + case messages_reactionsNotModified::ID: + return messages_reactionsNotModified::fetch(p); + case messages_reactions::ID: + return messages_reactions::fetch(p); + case messages_recentStickersNotModified::ID: + return messages_recentStickersNotModified::fetch(p); + case messages_recentStickers::ID: + return messages_recentStickers::fetch(p); + case messages_savedGifsNotModified::ID: + return messages_savedGifsNotModified::fetch(p); + case messages_savedGifs::ID: + return messages_savedGifs::fetch(p); + case messages_searchCounter::ID: + return messages_searchCounter::fetch(p); + case messages_searchResultsCalendar::ID: + return messages_searchResultsCalendar::fetch(p); + case messages_searchResultsPositions::ID: + return messages_searchResultsPositions::fetch(p); + case messages_sentEncryptedMessage::ID: + return messages_sentEncryptedMessage::fetch(p); + case messages_sentEncryptedFile::ID: + return messages_sentEncryptedFile::fetch(p); + case messages_sponsoredMessages::ID: + return messages_sponsoredMessages::fetch(p); + case messages_sponsoredMessagesEmpty::ID: + return messages_sponsoredMessagesEmpty::fetch(p); + case messages_stickerSet::ID: + return messages_stickerSet::fetch(p); + case messages_stickerSetNotModified::ID: + return messages_stickerSetNotModified::fetch(p); + case messages_stickerSetInstallResultSuccess::ID: + return messages_stickerSetInstallResultSuccess::fetch(p); + case messages_stickerSetInstallResultArchive::ID: + return messages_stickerSetInstallResultArchive::fetch(p); + case messages_stickersNotModified::ID: + return messages_stickersNotModified::fetch(p); + case messages_stickers::ID: + return messages_stickers::fetch(p); + case messages_transcribedAudio::ID: + return messages_transcribedAudio::fetch(p); + case messages_translateNoResult::ID: + return messages_translateNoResult::fetch(p); + case messages_translateResultText::ID: + return messages_translateResultText::fetch(p); + case messages_votesList::ID: + return messages_votesList::fetch(p); + case payments_bankCardData::ID: + return payments_bankCardData::fetch(p); + case payments_exportedInvoice::ID: + return payments_exportedInvoice::fetch(p); + case payments_paymentForm::ID: + return payments_paymentForm::fetch(p); + case payments_paymentReceipt::ID: + return payments_paymentReceipt::fetch(p); + case payments_paymentResult::ID: + return payments_paymentResult::fetch(p); + case payments_paymentVerificationNeeded::ID: + return payments_paymentVerificationNeeded::fetch(p); + case payments_savedInfo::ID: + return payments_savedInfo::fetch(p); + case payments_validatedRequestedInfo::ID: + return payments_validatedRequestedInfo::fetch(p); + case phone_exportedGroupCallInvite::ID: + return phone_exportedGroupCallInvite::fetch(p); + case phone_groupCall::ID: + return phone_groupCall::fetch(p); + case phone_groupCallStreamChannels::ID: + return phone_groupCallStreamChannels::fetch(p); + case phone_groupCallStreamRtmpUrl::ID: + return phone_groupCallStreamRtmpUrl::fetch(p); + case phone_groupParticipants::ID: + return phone_groupParticipants::fetch(p); + case phone_joinAsPeers::ID: + return phone_joinAsPeers::fetch(p); + case phone_phoneCall::ID: + return phone_phoneCall::fetch(p); + case photos_photo::ID: + return photos_photo::fetch(p); + case photos_photos::ID: + return photos_photos::fetch(p); + case photos_photosSlice::ID: + return photos_photosSlice::fetch(p); + case stats_broadcastStats::ID: + return stats_broadcastStats::fetch(p); + case stats_megagroupStats::ID: + return stats_megagroupStats::fetch(p); + case stats_messageStats::ID: + return stats_messageStats::fetch(p); + case stickers_suggestedShortName::ID: + return stickers_suggestedShortName::fetch(p); + case storage_fileUnknown::ID: + return storage_fileUnknown::fetch(p); + case storage_filePartial::ID: + return storage_filePartial::fetch(p); + case storage_fileJpeg::ID: + return storage_fileJpeg::fetch(p); + case storage_fileGif::ID: + return storage_fileGif::fetch(p); + case storage_filePng::ID: + return storage_filePng::fetch(p); + case storage_filePdf::ID: + return storage_filePdf::fetch(p); + case storage_fileMp3::ID: + return storage_fileMp3::fetch(p); + case storage_fileMov::ID: + return storage_fileMov::fetch(p); + case storage_fileMp4::ID: + return storage_fileMp4::fetch(p); + case storage_fileWebp::ID: + return storage_fileWebp::fetch(p); + case updates_channelDifferenceEmpty::ID: + return updates_channelDifferenceEmpty::fetch(p); + case updates_channelDifferenceTooLong::ID: + return updates_channelDifferenceTooLong::fetch(p); + case updates_channelDifference::ID: + return updates_channelDifference::fetch(p); + case updates_differenceEmpty::ID: + return updates_differenceEmpty::fetch(p); + case updates_difference::ID: + return updates_difference::fetch(p); + case updates_differenceSlice::ID: + return updates_differenceSlice::fetch(p); + case updates_differenceTooLong::ID: + return updates_differenceTooLong::fetch(p); + case updates_state::ID: + return updates_state::fetch(p); + case upload_cdnFileReuploadNeeded::ID: + return upload_cdnFileReuploadNeeded::fetch(p); + case upload_cdnFile::ID: + return upload_cdnFile::fetch(p); + case upload_file::ID: + return upload_file::fetch(p); + case upload_fileCdnRedirect::ID: + return upload_fileCdnRedirect::fetch(p); + case upload_webFile::ID: + return upload_webFile::fetch(p); + case users_userFull::ID: + return users_userFull::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t accessPointRule::ID; + +object_ptr<accessPointRule> accessPointRule::fetch(TlBufferParser &p) { + return make_tl_object<accessPointRule>(p); +} + +accessPointRule::accessPointRule(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_prefix_rules_(TlFetchString<string>::parse(p)) + , dc_id_(TlFetchInt::parse(p)) + , ips_(TlFetchVector<TlFetchObject<IpPort>>::parse(p)) +#undef FAIL +{} + +void accessPointRule::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "accessPointRule"); + s.store_field("phone_prefix_rules", phone_prefix_rules_); + s.store_field("dc_id", dc_id_); + { s.store_vector_begin("ips", ips_.size()); for (const auto &_value : ips_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +accountDaysTTL::accountDaysTTL(int32 days_) + : days_(days_) +{} + +const std::int32_t accountDaysTTL::ID; + +object_ptr<accountDaysTTL> accountDaysTTL::fetch(TlBufferParser &p) { + return make_tl_object<accountDaysTTL>(p); +} + +accountDaysTTL::accountDaysTTL(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : days_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void accountDaysTTL::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(days_, s); +} + +void accountDaysTTL::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(days_, s); +} + +void accountDaysTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "accountDaysTTL"); + s.store_field("days", days_); + s.store_class_end(); + } +} + +attachMenuBot::attachMenuBot() + : flags_() + , inactive_() + , has_settings_() + , bot_id_() + , short_name_() + , peer_types_() + , icons_() +{} + +const std::int32_t attachMenuBot::ID; + +object_ptr<attachMenuBot> attachMenuBot::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<attachMenuBot> res = make_tl_object<attachMenuBot>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->inactive_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->has_settings_ = TlFetchTrue::parse(p); } + res->bot_id_ = TlFetchLong::parse(p); + res->short_name_ = TlFetchString<string>::parse(p); + res->peer_types_ = TlFetchBoxed<TlFetchVector<TlFetchObject<AttachMenuPeerType>>, 481674261>::parse(p); + res->icons_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<attachMenuBotIcon>, -1297663893>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void attachMenuBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuBot"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("bot_id", bot_id_); + s.store_field("short_name", short_name_); + { s.store_vector_begin("peer_types", peer_types_.size()); for (const auto &_value : peer_types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("icons", icons_.size()); for (const auto &_value : icons_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +attachMenuBotIcon::attachMenuBotIcon() + : flags_() + , name_() + , icon_() + , colors_() +{} + +const std::int32_t attachMenuBotIcon::ID; + +object_ptr<attachMenuBotIcon> attachMenuBotIcon::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<attachMenuBotIcon> res = make_tl_object<attachMenuBotIcon>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->name_ = TlFetchString<string>::parse(p); + res->icon_ = TlFetchObject<Document>::parse(p); + if (var0 & 1) { res->colors_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<attachMenuBotIconColor>, 1165423600>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void attachMenuBotIcon::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuBotIcon"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("name", name_); + s.store_object_field("icon", static_cast<const BaseObject *>(icon_.get())); + if (var0 & 1) { { s.store_vector_begin("colors", colors_.size()); for (const auto &_value : colors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +const std::int32_t attachMenuBotIconColor::ID; + +object_ptr<attachMenuBotIconColor> attachMenuBotIconColor::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuBotIconColor>(p); +} + +attachMenuBotIconColor::attachMenuBotIconColor(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : name_(TlFetchString<string>::parse(p)) + , color_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void attachMenuBotIconColor::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuBotIconColor"); + s.store_field("name", name_); + s.store_field("color", color_); + s.store_class_end(); + } +} + +object_ptr<AttachMenuBots> AttachMenuBots::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case attachMenuBotsNotModified::ID: + return attachMenuBotsNotModified::fetch(p); + case attachMenuBots::ID: + return attachMenuBots::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t attachMenuBotsNotModified::ID; + +object_ptr<AttachMenuBots> attachMenuBotsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuBotsNotModified>(); +} + +void attachMenuBotsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuBotsNotModified"); + s.store_class_end(); + } +} + +const std::int32_t attachMenuBots::ID; + +object_ptr<AttachMenuBots> attachMenuBots::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuBots>(p); +} + +attachMenuBots::attachMenuBots(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , bots_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<attachMenuBot>, -928371502>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void attachMenuBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuBots"); + s.store_field("hash", hash_); + { s.store_vector_begin("bots", bots_.size()); for (const auto &_value : bots_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t attachMenuBotsBot::ID; + +object_ptr<attachMenuBotsBot> attachMenuBotsBot::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuBotsBot>(p); +} + +attachMenuBotsBot::attachMenuBotsBot(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : bot_(TlFetchBoxed<TlFetchObject<attachMenuBot>, -928371502>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void attachMenuBotsBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuBotsBot"); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<AttachMenuPeerType> AttachMenuPeerType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case attachMenuPeerTypeSameBotPM::ID: + return attachMenuPeerTypeSameBotPM::fetch(p); + case attachMenuPeerTypeBotPM::ID: + return attachMenuPeerTypeBotPM::fetch(p); + case attachMenuPeerTypePM::ID: + return attachMenuPeerTypePM::fetch(p); + case attachMenuPeerTypeChat::ID: + return attachMenuPeerTypeChat::fetch(p); + case attachMenuPeerTypeBroadcast::ID: + return attachMenuPeerTypeBroadcast::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t attachMenuPeerTypeSameBotPM::ID; + +object_ptr<AttachMenuPeerType> attachMenuPeerTypeSameBotPM::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuPeerTypeSameBotPM>(); +} + +void attachMenuPeerTypeSameBotPM::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuPeerTypeSameBotPM"); + s.store_class_end(); + } +} + +const std::int32_t attachMenuPeerTypeBotPM::ID; + +object_ptr<AttachMenuPeerType> attachMenuPeerTypeBotPM::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuPeerTypeBotPM>(); +} + +void attachMenuPeerTypeBotPM::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuPeerTypeBotPM"); + s.store_class_end(); + } +} + +const std::int32_t attachMenuPeerTypePM::ID; + +object_ptr<AttachMenuPeerType> attachMenuPeerTypePM::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuPeerTypePM>(); +} + +void attachMenuPeerTypePM::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuPeerTypePM"); + s.store_class_end(); + } +} + +const std::int32_t attachMenuPeerTypeChat::ID; + +object_ptr<AttachMenuPeerType> attachMenuPeerTypeChat::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuPeerTypeChat>(); +} + +void attachMenuPeerTypeChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuPeerTypeChat"); + s.store_class_end(); + } +} + +const std::int32_t attachMenuPeerTypeBroadcast::ID; + +object_ptr<AttachMenuPeerType> attachMenuPeerTypeBroadcast::fetch(TlBufferParser &p) { + return make_tl_object<attachMenuPeerTypeBroadcast>(); +} + +void attachMenuPeerTypeBroadcast::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "attachMenuPeerTypeBroadcast"); + s.store_class_end(); + } +} + +authorization::authorization() + : flags_() + , current_() + , official_app_() + , password_pending_() + , encrypted_requests_disabled_() + , call_requests_disabled_() + , hash_() + , device_model_() + , platform_() + , system_version_() + , api_id_() + , app_name_() + , app_version_() + , date_created_() + , date_active_() + , ip_() + , country_() + , region_() +{} + +const std::int32_t authorization::ID; + +object_ptr<authorization> authorization::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<authorization> res = make_tl_object<authorization>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->current_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->official_app_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->password_pending_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->encrypted_requests_disabled_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->call_requests_disabled_ = TlFetchTrue::parse(p); } + res->hash_ = TlFetchLong::parse(p); + res->device_model_ = TlFetchString<string>::parse(p); + res->platform_ = TlFetchString<string>::parse(p); + res->system_version_ = TlFetchString<string>::parse(p); + res->api_id_ = TlFetchInt::parse(p); + res->app_name_ = TlFetchString<string>::parse(p); + res->app_version_ = TlFetchString<string>::parse(p); + res->date_created_ = TlFetchInt::parse(p); + res->date_active_ = TlFetchInt::parse(p); + res->ip_ = TlFetchString<string>::parse(p); + res->country_ = TlFetchString<string>::parse(p); + res->region_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void authorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "authorization"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("hash", hash_); + s.store_field("device_model", device_model_); + s.store_field("platform", platform_); + s.store_field("system_version", system_version_); + s.store_field("api_id", api_id_); + s.store_field("app_name", app_name_); + s.store_field("app_version", app_version_); + s.store_field("date_created", date_created_); + s.store_field("date_active", date_active_); + s.store_field("ip", ip_); + s.store_field("country", country_); + s.store_field("region", region_); + s.store_class_end(); + } +} + +autoDownloadSettings::autoDownloadSettings() + : flags_() + , disabled_() + , video_preload_large_() + , audio_preload_next_() + , phonecalls_less_data_() + , photo_size_max_() + , video_size_max_() + , file_size_max_() + , video_upload_maxbitrate_() +{} + +autoDownloadSettings::autoDownloadSettings(int32 flags_, bool disabled_, bool video_preload_large_, bool audio_preload_next_, bool phonecalls_less_data_, int32 photo_size_max_, int64 video_size_max_, int64 file_size_max_, int32 video_upload_maxbitrate_) + : flags_(flags_) + , disabled_(disabled_) + , video_preload_large_(video_preload_large_) + , audio_preload_next_(audio_preload_next_) + , phonecalls_less_data_(phonecalls_less_data_) + , photo_size_max_(photo_size_max_) + , video_size_max_(video_size_max_) + , file_size_max_(file_size_max_) + , video_upload_maxbitrate_(video_upload_maxbitrate_) +{} + +const std::int32_t autoDownloadSettings::ID; + +object_ptr<autoDownloadSettings> autoDownloadSettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<autoDownloadSettings> res = make_tl_object<autoDownloadSettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->disabled_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->video_preload_large_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->audio_preload_next_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->phonecalls_less_data_ = TlFetchTrue::parse(p); } + res->photo_size_max_ = TlFetchInt::parse(p); + res->video_size_max_ = TlFetchLong::parse(p); + res->file_size_max_ = TlFetchLong::parse(p); + res->video_upload_maxbitrate_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void autoDownloadSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(photo_size_max_, s); + TlStoreBinary::store(video_size_max_, s); + TlStoreBinary::store(file_size_max_, s); + TlStoreBinary::store(video_upload_maxbitrate_, s); +} + +void autoDownloadSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(photo_size_max_, s); + TlStoreBinary::store(video_size_max_, s); + TlStoreBinary::store(file_size_max_, s); + TlStoreBinary::store(video_upload_maxbitrate_, s); +} + +void autoDownloadSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "autoDownloadSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("photo_size_max", photo_size_max_); + s.store_field("video_size_max", video_size_max_); + s.store_field("file_size_max", file_size_max_); + s.store_field("video_upload_maxbitrate", video_upload_maxbitrate_); + s.store_class_end(); + } +} + +availableReaction::availableReaction() + : flags_() + , inactive_() + , premium_() + , reaction_() + , title_() + , static_icon_() + , appear_animation_() + , select_animation_() + , activate_animation_() + , effect_animation_() + , around_animation_() + , center_icon_() +{} + +const std::int32_t availableReaction::ID; + +object_ptr<availableReaction> availableReaction::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<availableReaction> res = make_tl_object<availableReaction>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->inactive_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->premium_ = TlFetchTrue::parse(p); } + res->reaction_ = TlFetchString<string>::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->static_icon_ = TlFetchObject<Document>::parse(p); + res->appear_animation_ = TlFetchObject<Document>::parse(p); + res->select_animation_ = TlFetchObject<Document>::parse(p); + res->activate_animation_ = TlFetchObject<Document>::parse(p); + res->effect_animation_ = TlFetchObject<Document>::parse(p); + if (var0 & 2) { res->around_animation_ = TlFetchObject<Document>::parse(p); } + if (var0 & 2) { res->center_icon_ = TlFetchObject<Document>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void availableReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "availableReaction"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("reaction", reaction_); + s.store_field("title", title_); + s.store_object_field("static_icon", static_cast<const BaseObject *>(static_icon_.get())); + s.store_object_field("appear_animation", static_cast<const BaseObject *>(appear_animation_.get())); + s.store_object_field("select_animation", static_cast<const BaseObject *>(select_animation_.get())); + s.store_object_field("activate_animation", static_cast<const BaseObject *>(activate_animation_.get())); + s.store_object_field("effect_animation", static_cast<const BaseObject *>(effect_animation_.get())); + if (var0 & 2) { s.store_object_field("around_animation", static_cast<const BaseObject *>(around_animation_.get())); } + if (var0 & 2) { s.store_object_field("center_icon", static_cast<const BaseObject *>(center_icon_.get())); } + s.store_class_end(); + } +} + +const std::int32_t bankCardOpenUrl::ID; + +object_ptr<bankCardOpenUrl> bankCardOpenUrl::fetch(TlBufferParser &p) { + return make_tl_object<bankCardOpenUrl>(p); +} + +bankCardOpenUrl::bankCardOpenUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void bankCardOpenUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bankCardOpenUrl"); + s.store_field("url", url_); + s.store_field("name", name_); + s.store_class_end(); + } +} + +object_ptr<BaseTheme> BaseTheme::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case baseThemeClassic::ID: + return baseThemeClassic::fetch(p); + case baseThemeDay::ID: + return baseThemeDay::fetch(p); + case baseThemeNight::ID: + return baseThemeNight::fetch(p); + case baseThemeTinted::ID: + return baseThemeTinted::fetch(p); + case baseThemeArctic::ID: + return baseThemeArctic::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t baseThemeClassic::ID; + +object_ptr<BaseTheme> baseThemeClassic::fetch(TlBufferParser &p) { + return make_tl_object<baseThemeClassic>(); +} + +void baseThemeClassic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void baseThemeClassic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void baseThemeClassic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "baseThemeClassic"); + s.store_class_end(); + } +} + +const std::int32_t baseThemeDay::ID; + +object_ptr<BaseTheme> baseThemeDay::fetch(TlBufferParser &p) { + return make_tl_object<baseThemeDay>(); +} + +void baseThemeDay::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void baseThemeDay::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void baseThemeDay::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "baseThemeDay"); + s.store_class_end(); + } +} + +const std::int32_t baseThemeNight::ID; + +object_ptr<BaseTheme> baseThemeNight::fetch(TlBufferParser &p) { + return make_tl_object<baseThemeNight>(); +} + +void baseThemeNight::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void baseThemeNight::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void baseThemeNight::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "baseThemeNight"); + s.store_class_end(); + } +} + +const std::int32_t baseThemeTinted::ID; + +object_ptr<BaseTheme> baseThemeTinted::fetch(TlBufferParser &p) { + return make_tl_object<baseThemeTinted>(); +} + +void baseThemeTinted::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void baseThemeTinted::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void baseThemeTinted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "baseThemeTinted"); + s.store_class_end(); + } +} + +const std::int32_t baseThemeArctic::ID; + +object_ptr<BaseTheme> baseThemeArctic::fetch(TlBufferParser &p) { + return make_tl_object<baseThemeArctic>(); +} + +void baseThemeArctic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void baseThemeArctic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void baseThemeArctic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "baseThemeArctic"); + s.store_class_end(); + } +} + +botCommand::botCommand(string const &command_, string const &description_) + : command_(command_) + , description_(description_) +{} + +const std::int32_t botCommand::ID; + +object_ptr<botCommand> botCommand::fetch(TlBufferParser &p) { + return make_tl_object<botCommand>(p); +} + +botCommand::botCommand(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : command_(TlFetchString<string>::parse(p)) + , description_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void botCommand::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(command_, s); + TlStoreString::store(description_, s); +} + +void botCommand::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(command_, s); + TlStoreString::store(description_, s); +} + +void botCommand::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommand"); + s.store_field("command", command_); + s.store_field("description", description_); + s.store_class_end(); + } +} + +const std::int32_t botCommandScopeDefault::ID; + +void botCommandScopeDefault::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void botCommandScopeDefault::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void botCommandScopeDefault::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeDefault"); + s.store_class_end(); + } +} + +const std::int32_t botCommandScopeUsers::ID; + +void botCommandScopeUsers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void botCommandScopeUsers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void botCommandScopeUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeUsers"); + s.store_class_end(); + } +} + +const std::int32_t botCommandScopeChats::ID; + +void botCommandScopeChats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void botCommandScopeChats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void botCommandScopeChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeChats"); + s.store_class_end(); + } +} + +const std::int32_t botCommandScopeChatAdmins::ID; + +void botCommandScopeChatAdmins::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void botCommandScopeChatAdmins::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void botCommandScopeChatAdmins::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopeChatAdmins"); + s.store_class_end(); + } +} + +botCommandScopePeer::botCommandScopePeer(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t botCommandScopePeer::ID; + +void botCommandScopePeer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void botCommandScopePeer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void botCommandScopePeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopePeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +botCommandScopePeerAdmins::botCommandScopePeerAdmins(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t botCommandScopePeerAdmins::ID; + +void botCommandScopePeerAdmins::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void botCommandScopePeerAdmins::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void botCommandScopePeerAdmins::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopePeerAdmins"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +botCommandScopePeerUser::botCommandScopePeerUser(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_) + : peer_(std::move(peer_)) + , user_id_(std::move(user_id_)) +{} + +const std::int32_t botCommandScopePeerUser::ID; + +void botCommandScopePeerUser::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void botCommandScopePeerUser::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void botCommandScopePeerUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botCommandScopePeerUser"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +botInfo::botInfo() + : flags_() + , user_id_() + , description_() + , description_photo_() + , description_document_() + , commands_() + , menu_button_() +{} + +const std::int32_t botInfo::ID; + +object_ptr<botInfo> botInfo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInfo> res = make_tl_object<botInfo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->user_id_ = TlFetchLong::parse(p); } + if (var0 & 2) { res->description_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->description_photo_ = TlFetchObject<Photo>::parse(p); } + if (var0 & 32) { res->description_document_ = TlFetchObject<Document>::parse(p); } + if (var0 & 4) { res->commands_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botCommand>, -1032140601>>, 481674261>::parse(p); } + if (var0 & 8) { res->menu_button_ = TlFetchObject<BotMenuButton>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void botInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInfo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("user_id", user_id_); } + if (var0 & 2) { s.store_field("description", description_); } + if (var0 & 16) { s.store_object_field("description_photo", static_cast<const BaseObject *>(description_photo_.get())); } + if (var0 & 32) { s.store_object_field("description_document", static_cast<const BaseObject *>(description_document_.get())); } + if (var0 & 4) { { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 8) { s.store_object_field("menu_button", static_cast<const BaseObject *>(menu_button_.get())); } + s.store_class_end(); + } +} + +object_ptr<BotInlineMessage> BotInlineMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case botInlineMessageMediaAuto::ID: + return botInlineMessageMediaAuto::fetch(p); + case botInlineMessageText::ID: + return botInlineMessageText::fetch(p); + case botInlineMessageMediaGeo::ID: + return botInlineMessageMediaGeo::fetch(p); + case botInlineMessageMediaVenue::ID: + return botInlineMessageMediaVenue::fetch(p); + case botInlineMessageMediaContact::ID: + return botInlineMessageMediaContact::fetch(p); + case botInlineMessageMediaInvoice::ID: + return botInlineMessageMediaInvoice::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +botInlineMessageMediaAuto::botInlineMessageMediaAuto() + : flags_() + , message_() + , entities_() + , reply_markup_() +{} + +const std::int32_t botInlineMessageMediaAuto::ID; + +object_ptr<BotInlineMessage> botInlineMessageMediaAuto::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineMessageMediaAuto> res = make_tl_object<botInlineMessageMediaAuto>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineMessageMediaAuto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineMessageMediaAuto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("message", message_); + if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +botInlineMessageText::botInlineMessageText() + : flags_() + , no_webpage_() + , message_() + , entities_() + , reply_markup_() +{} + +const std::int32_t botInlineMessageText::ID; + +object_ptr<BotInlineMessage> botInlineMessageText::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineMessageText> res = make_tl_object<botInlineMessageText>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->no_webpage_ = TlFetchTrue::parse(p); } + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineMessageText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineMessageText"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("message", message_); + if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +botInlineMessageMediaGeo::botInlineMessageMediaGeo() + : flags_() + , geo_() + , heading_() + , period_() + , proximity_notification_radius_() + , reply_markup_() +{} + +const std::int32_t botInlineMessageMediaGeo::ID; + +object_ptr<BotInlineMessage> botInlineMessageMediaGeo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineMessageMediaGeo> res = make_tl_object<botInlineMessageMediaGeo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->geo_ = TlFetchObject<GeoPoint>::parse(p); + if (var0 & 1) { res->heading_ = TlFetchInt::parse(p); } + if (var0 & 2) { res->period_ = TlFetchInt::parse(p); } + if (var0 & 8) { res->proximity_notification_radius_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineMessageMediaGeo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineMessageMediaGeo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); + if (var0 & 1) { s.store_field("heading", heading_); } + if (var0 & 2) { s.store_field("period", period_); } + if (var0 & 8) { s.store_field("proximity_notification_radius", proximity_notification_radius_); } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +botInlineMessageMediaVenue::botInlineMessageMediaVenue() + : flags_() + , geo_() + , title_() + , address_() + , provider_() + , venue_id_() + , venue_type_() + , reply_markup_() +{} + +const std::int32_t botInlineMessageMediaVenue::ID; + +object_ptr<BotInlineMessage> botInlineMessageMediaVenue::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineMessageMediaVenue> res = make_tl_object<botInlineMessageMediaVenue>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->geo_ = TlFetchObject<GeoPoint>::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->address_ = TlFetchString<string>::parse(p); + res->provider_ = TlFetchString<string>::parse(p); + res->venue_id_ = TlFetchString<string>::parse(p); + res->venue_type_ = TlFetchString<string>::parse(p); + if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineMessageMediaVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineMessageMediaVenue"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); + s.store_field("title", title_); + s.store_field("address", address_); + s.store_field("provider", provider_); + s.store_field("venue_id", venue_id_); + s.store_field("venue_type", venue_type_); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +botInlineMessageMediaContact::botInlineMessageMediaContact() + : flags_() + , phone_number_() + , first_name_() + , last_name_() + , vcard_() + , reply_markup_() +{} + +const std::int32_t botInlineMessageMediaContact::ID; + +object_ptr<BotInlineMessage> botInlineMessageMediaContact::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineMessageMediaContact> res = make_tl_object<botInlineMessageMediaContact>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->phone_number_ = TlFetchString<string>::parse(p); + res->first_name_ = TlFetchString<string>::parse(p); + res->last_name_ = TlFetchString<string>::parse(p); + res->vcard_ = TlFetchString<string>::parse(p); + if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineMessageMediaContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineMessageMediaContact"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("phone_number", phone_number_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("vcard", vcard_); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +botInlineMessageMediaInvoice::botInlineMessageMediaInvoice() + : flags_() + , shipping_address_requested_() + , test_() + , title_() + , description_() + , photo_() + , currency_() + , total_amount_() + , reply_markup_() +{} + +const std::int32_t botInlineMessageMediaInvoice::ID; + +object_ptr<BotInlineMessage> botInlineMessageMediaInvoice::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineMessageMediaInvoice> res = make_tl_object<botInlineMessageMediaInvoice>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->shipping_address_requested_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->test_ = TlFetchTrue::parse(p); } + res->title_ = TlFetchString<string>::parse(p); + res->description_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->photo_ = TlFetchObject<WebDocument>::parse(p); } + res->currency_ = TlFetchString<string>::parse(p); + res->total_amount_ = TlFetchLong::parse(p); + if (var0 & 4) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineMessageMediaInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineMessageMediaInvoice"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("title", title_); + s.store_field("description", description_); + if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +object_ptr<BotInlineResult> BotInlineResult::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case botInlineResult::ID: + return botInlineResult::fetch(p); + case botInlineMediaResult::ID: + return botInlineMediaResult::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +botInlineResult::botInlineResult() + : flags_() + , id_() + , type_() + , title_() + , description_() + , url_() + , thumb_() + , content_() + , send_message_() +{} + +const std::int32_t botInlineResult::ID; + +object_ptr<BotInlineResult> botInlineResult::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineResult> res = make_tl_object<botInlineResult>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchString<string>::parse(p); + res->type_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->description_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->url_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->thumb_ = TlFetchObject<WebDocument>::parse(p); } + if (var0 & 32) { res->content_ = TlFetchObject<WebDocument>::parse(p); } + res->send_message_ = TlFetchObject<BotInlineMessage>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineResult"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("type", type_); + if (var0 & 2) { s.store_field("title", title_); } + if (var0 & 4) { s.store_field("description", description_); } + if (var0 & 8) { s.store_field("url", url_); } + if (var0 & 16) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); } + if (var0 & 32) { s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); } + s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get())); + s.store_class_end(); + } +} + +botInlineMediaResult::botInlineMediaResult() + : flags_() + , id_() + , type_() + , photo_() + , document_() + , title_() + , description_() + , send_message_() +{} + +const std::int32_t botInlineMediaResult::ID; + +object_ptr<BotInlineResult> botInlineMediaResult::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<botInlineMediaResult> res = make_tl_object<botInlineMediaResult>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchString<string>::parse(p); + res->type_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->photo_ = TlFetchObject<Photo>::parse(p); } + if (var0 & 2) { res->document_ = TlFetchObject<Document>::parse(p); } + if (var0 & 4) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->description_ = TlFetchString<string>::parse(p); } + res->send_message_ = TlFetchObject<BotInlineMessage>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void botInlineMediaResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botInlineMediaResult"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("type", type_); + if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + if (var0 & 2) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 4) { s.store_field("title", title_); } + if (var0 & 8) { s.store_field("description", description_); } + s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get())); + s.store_class_end(); + } +} + +object_ptr<BotMenuButton> BotMenuButton::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case botMenuButtonDefault::ID: + return botMenuButtonDefault::fetch(p); + case botMenuButtonCommands::ID: + return botMenuButtonCommands::fetch(p); + case botMenuButton::ID: + return botMenuButton::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t botMenuButtonDefault::ID; + +object_ptr<BotMenuButton> botMenuButtonDefault::fetch(TlBufferParser &p) { + return make_tl_object<botMenuButtonDefault>(); +} + +void botMenuButtonDefault::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void botMenuButtonDefault::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void botMenuButtonDefault::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botMenuButtonDefault"); + s.store_class_end(); + } +} + +const std::int32_t botMenuButtonCommands::ID; + +object_ptr<BotMenuButton> botMenuButtonCommands::fetch(TlBufferParser &p) { + return make_tl_object<botMenuButtonCommands>(); +} + +void botMenuButtonCommands::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void botMenuButtonCommands::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void botMenuButtonCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botMenuButtonCommands"); + s.store_class_end(); + } +} + +botMenuButton::botMenuButton(string const &text_, string const &url_) + : text_(text_) + , url_(url_) +{} + +const std::int32_t botMenuButton::ID; + +object_ptr<BotMenuButton> botMenuButton::fetch(TlBufferParser &p) { + return make_tl_object<botMenuButton>(p); +} + +botMenuButton::botMenuButton(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void botMenuButton::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void botMenuButton::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void botMenuButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "botMenuButton"); + s.store_field("text", text_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +const std::int32_t cdnConfig::ID; + +object_ptr<cdnConfig> cdnConfig::fetch(TlBufferParser &p) { + return make_tl_object<cdnConfig>(p); +} + +cdnConfig::cdnConfig(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : public_keys_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<cdnPublicKey>, -914167110>>, 481674261>::parse(p)) +#undef FAIL +{} + +void cdnConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "cdnConfig"); + { s.store_vector_begin("public_keys", public_keys_.size()); for (const auto &_value : public_keys_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t cdnPublicKey::ID; + +object_ptr<cdnPublicKey> cdnPublicKey::fetch(TlBufferParser &p) { + return make_tl_object<cdnPublicKey>(p); +} + +cdnPublicKey::cdnPublicKey(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dc_id_(TlFetchInt::parse(p)) + , public_key_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void cdnPublicKey::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "cdnPublicKey"); + s.store_field("dc_id", dc_id_); + s.store_field("public_key", public_key_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEvent::ID; + +object_ptr<channelAdminLogEvent> channelAdminLogEvent::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEvent>(p); +} + +channelAdminLogEvent::channelAdminLogEvent(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , action_(TlFetchObject<ChannelAdminLogEventAction>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEvent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEvent"); + s.store_field("id", id_); + s.store_field("date", date_); + s.store_field("user_id", user_id_); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +object_ptr<ChannelAdminLogEventAction> ChannelAdminLogEventAction::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case channelAdminLogEventActionChangeTitle::ID: + return channelAdminLogEventActionChangeTitle::fetch(p); + case channelAdminLogEventActionChangeAbout::ID: + return channelAdminLogEventActionChangeAbout::fetch(p); + case channelAdminLogEventActionChangeUsername::ID: + return channelAdminLogEventActionChangeUsername::fetch(p); + case channelAdminLogEventActionChangePhoto::ID: + return channelAdminLogEventActionChangePhoto::fetch(p); + case channelAdminLogEventActionToggleInvites::ID: + return channelAdminLogEventActionToggleInvites::fetch(p); + case channelAdminLogEventActionToggleSignatures::ID: + return channelAdminLogEventActionToggleSignatures::fetch(p); + case channelAdminLogEventActionUpdatePinned::ID: + return channelAdminLogEventActionUpdatePinned::fetch(p); + case channelAdminLogEventActionEditMessage::ID: + return channelAdminLogEventActionEditMessage::fetch(p); + case channelAdminLogEventActionDeleteMessage::ID: + return channelAdminLogEventActionDeleteMessage::fetch(p); + case channelAdminLogEventActionParticipantJoin::ID: + return channelAdminLogEventActionParticipantJoin::fetch(p); + case channelAdminLogEventActionParticipantLeave::ID: + return channelAdminLogEventActionParticipantLeave::fetch(p); + case channelAdminLogEventActionParticipantInvite::ID: + return channelAdminLogEventActionParticipantInvite::fetch(p); + case channelAdminLogEventActionParticipantToggleBan::ID: + return channelAdminLogEventActionParticipantToggleBan::fetch(p); + case channelAdminLogEventActionParticipantToggleAdmin::ID: + return channelAdminLogEventActionParticipantToggleAdmin::fetch(p); + case channelAdminLogEventActionChangeStickerSet::ID: + return channelAdminLogEventActionChangeStickerSet::fetch(p); + case channelAdminLogEventActionTogglePreHistoryHidden::ID: + return channelAdminLogEventActionTogglePreHistoryHidden::fetch(p); + case channelAdminLogEventActionDefaultBannedRights::ID: + return channelAdminLogEventActionDefaultBannedRights::fetch(p); + case channelAdminLogEventActionStopPoll::ID: + return channelAdminLogEventActionStopPoll::fetch(p); + case channelAdminLogEventActionChangeLinkedChat::ID: + return channelAdminLogEventActionChangeLinkedChat::fetch(p); + case channelAdminLogEventActionChangeLocation::ID: + return channelAdminLogEventActionChangeLocation::fetch(p); + case channelAdminLogEventActionToggleSlowMode::ID: + return channelAdminLogEventActionToggleSlowMode::fetch(p); + case channelAdminLogEventActionStartGroupCall::ID: + return channelAdminLogEventActionStartGroupCall::fetch(p); + case channelAdminLogEventActionDiscardGroupCall::ID: + return channelAdminLogEventActionDiscardGroupCall::fetch(p); + case channelAdminLogEventActionParticipantMute::ID: + return channelAdminLogEventActionParticipantMute::fetch(p); + case channelAdminLogEventActionParticipantUnmute::ID: + return channelAdminLogEventActionParticipantUnmute::fetch(p); + case channelAdminLogEventActionToggleGroupCallSetting::ID: + return channelAdminLogEventActionToggleGroupCallSetting::fetch(p); + case channelAdminLogEventActionParticipantJoinByInvite::ID: + return channelAdminLogEventActionParticipantJoinByInvite::fetch(p); + case channelAdminLogEventActionExportedInviteDelete::ID: + return channelAdminLogEventActionExportedInviteDelete::fetch(p); + case channelAdminLogEventActionExportedInviteRevoke::ID: + return channelAdminLogEventActionExportedInviteRevoke::fetch(p); + case channelAdminLogEventActionExportedInviteEdit::ID: + return channelAdminLogEventActionExportedInviteEdit::fetch(p); + case channelAdminLogEventActionParticipantVolume::ID: + return channelAdminLogEventActionParticipantVolume::fetch(p); + case channelAdminLogEventActionChangeHistoryTTL::ID: + return channelAdminLogEventActionChangeHistoryTTL::fetch(p); + case channelAdminLogEventActionParticipantJoinByRequest::ID: + return channelAdminLogEventActionParticipantJoinByRequest::fetch(p); + case channelAdminLogEventActionToggleNoForwards::ID: + return channelAdminLogEventActionToggleNoForwards::fetch(p); + case channelAdminLogEventActionSendMessage::ID: + return channelAdminLogEventActionSendMessage::fetch(p); + case channelAdminLogEventActionChangeAvailableReactions::ID: + return channelAdminLogEventActionChangeAvailableReactions::fetch(p); + case channelAdminLogEventActionChangeUsernames::ID: + return channelAdminLogEventActionChangeUsernames::fetch(p); + case channelAdminLogEventActionToggleForum::ID: + return channelAdminLogEventActionToggleForum::fetch(p); + case channelAdminLogEventActionCreateTopic::ID: + return channelAdminLogEventActionCreateTopic::fetch(p); + case channelAdminLogEventActionEditTopic::ID: + return channelAdminLogEventActionEditTopic::fetch(p); + case channelAdminLogEventActionDeleteTopic::ID: + return channelAdminLogEventActionDeleteTopic::fetch(p); + case channelAdminLogEventActionPinTopic::ID: + return channelAdminLogEventActionPinTopic::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t channelAdminLogEventActionChangeTitle::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeTitle::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeTitle>(p); +} + +channelAdminLogEventActionChangeTitle::channelAdminLogEventActionChangeTitle(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchString<string>::parse(p)) + , new_value_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeTitle"); + s.store_field("prev_value", prev_value_); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeAbout::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeAbout::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeAbout>(p); +} + +channelAdminLogEventActionChangeAbout::channelAdminLogEventActionChangeAbout(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchString<string>::parse(p)) + , new_value_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeAbout::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeAbout"); + s.store_field("prev_value", prev_value_); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeUsername::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeUsername::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeUsername>(p); +} + +channelAdminLogEventActionChangeUsername::channelAdminLogEventActionChangeUsername(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchString<string>::parse(p)) + , new_value_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeUsername"); + s.store_field("prev_value", prev_value_); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangePhoto::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangePhoto::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangePhoto>(p); +} + +channelAdminLogEventActionChangePhoto::channelAdminLogEventActionChangePhoto(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_photo_(TlFetchObject<Photo>::parse(p)) + , new_photo_(TlFetchObject<Photo>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangePhoto"); + s.store_object_field("prev_photo", static_cast<const BaseObject *>(prev_photo_.get())); + s.store_object_field("new_photo", static_cast<const BaseObject *>(new_photo_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionToggleInvites::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleInvites::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionToggleInvites>(p); +} + +channelAdminLogEventActionToggleInvites::channelAdminLogEventActionToggleInvites(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : new_value_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionToggleInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionToggleInvites"); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionToggleSignatures::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleSignatures::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionToggleSignatures>(p); +} + +channelAdminLogEventActionToggleSignatures::channelAdminLogEventActionToggleSignatures(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : new_value_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionToggleSignatures::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionToggleSignatures"); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionUpdatePinned::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionUpdatePinned::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionUpdatePinned>(p); +} + +channelAdminLogEventActionUpdatePinned::channelAdminLogEventActionUpdatePinned(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionUpdatePinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionUpdatePinned"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionEditMessage::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionEditMessage::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionEditMessage>(p); +} + +channelAdminLogEventActionEditMessage::channelAdminLogEventActionEditMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_message_(TlFetchObject<Message>::parse(p)) + , new_message_(TlFetchObject<Message>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionEditMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionEditMessage"); + s.store_object_field("prev_message", static_cast<const BaseObject *>(prev_message_.get())); + s.store_object_field("new_message", static_cast<const BaseObject *>(new_message_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionDeleteMessage::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDeleteMessage::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionDeleteMessage>(p); +} + +channelAdminLogEventActionDeleteMessage::channelAdminLogEventActionDeleteMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionDeleteMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionDeleteMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantJoin::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantJoin::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantJoin>(); +} + +void channelAdminLogEventActionParticipantJoin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantJoin"); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantLeave::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantLeave::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantLeave>(); +} + +void channelAdminLogEventActionParticipantLeave::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantLeave"); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantInvite::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantInvite::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantInvite>(p); +} + +channelAdminLogEventActionParticipantInvite::channelAdminLogEventActionParticipantInvite(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : participant_(TlFetchObject<ChannelParticipant>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantInvite"); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantToggleBan::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantToggleBan::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantToggleBan>(p); +} + +channelAdminLogEventActionParticipantToggleBan::channelAdminLogEventActionParticipantToggleBan(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_participant_(TlFetchObject<ChannelParticipant>::parse(p)) + , new_participant_(TlFetchObject<ChannelParticipant>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantToggleBan::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantToggleBan"); + s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get())); + s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantToggleAdmin::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantToggleAdmin::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantToggleAdmin>(p); +} + +channelAdminLogEventActionParticipantToggleAdmin::channelAdminLogEventActionParticipantToggleAdmin(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_participant_(TlFetchObject<ChannelParticipant>::parse(p)) + , new_participant_(TlFetchObject<ChannelParticipant>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantToggleAdmin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantToggleAdmin"); + s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get())); + s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeStickerSet::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeStickerSet::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeStickerSet>(p); +} + +channelAdminLogEventActionChangeStickerSet::channelAdminLogEventActionChangeStickerSet(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_stickerset_(TlFetchObject<InputStickerSet>::parse(p)) + , new_stickerset_(TlFetchObject<InputStickerSet>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeStickerSet"); + s.store_object_field("prev_stickerset", static_cast<const BaseObject *>(prev_stickerset_.get())); + s.store_object_field("new_stickerset", static_cast<const BaseObject *>(new_stickerset_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionTogglePreHistoryHidden::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionTogglePreHistoryHidden::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionTogglePreHistoryHidden>(p); +} + +channelAdminLogEventActionTogglePreHistoryHidden::channelAdminLogEventActionTogglePreHistoryHidden(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : new_value_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionTogglePreHistoryHidden::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionTogglePreHistoryHidden"); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionDefaultBannedRights::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDefaultBannedRights::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionDefaultBannedRights>(p); +} + +channelAdminLogEventActionDefaultBannedRights::channelAdminLogEventActionDefaultBannedRights(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_banned_rights_(TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p)) + , new_banned_rights_(TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionDefaultBannedRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionDefaultBannedRights"); + s.store_object_field("prev_banned_rights", static_cast<const BaseObject *>(prev_banned_rights_.get())); + s.store_object_field("new_banned_rights", static_cast<const BaseObject *>(new_banned_rights_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionStopPoll::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionStopPoll::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionStopPoll>(p); +} + +channelAdminLogEventActionStopPoll::channelAdminLogEventActionStopPoll(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionStopPoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionStopPoll"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeLinkedChat::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeLinkedChat::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeLinkedChat>(p); +} + +channelAdminLogEventActionChangeLinkedChat::channelAdminLogEventActionChangeLinkedChat(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchLong::parse(p)) + , new_value_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeLinkedChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeLinkedChat"); + s.store_field("prev_value", prev_value_); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeLocation::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeLocation::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeLocation>(p); +} + +channelAdminLogEventActionChangeLocation::channelAdminLogEventActionChangeLocation(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchObject<ChannelLocation>::parse(p)) + , new_value_(TlFetchObject<ChannelLocation>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeLocation"); + s.store_object_field("prev_value", static_cast<const BaseObject *>(prev_value_.get())); + s.store_object_field("new_value", static_cast<const BaseObject *>(new_value_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionToggleSlowMode::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleSlowMode::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionToggleSlowMode>(p); +} + +channelAdminLogEventActionToggleSlowMode::channelAdminLogEventActionToggleSlowMode(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchInt::parse(p)) + , new_value_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionToggleSlowMode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionToggleSlowMode"); + s.store_field("prev_value", prev_value_); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionStartGroupCall::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionStartGroupCall::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionStartGroupCall>(p); +} + +channelAdminLogEventActionStartGroupCall::channelAdminLogEventActionStartGroupCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionStartGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionStartGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionDiscardGroupCall::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDiscardGroupCall::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionDiscardGroupCall>(p); +} + +channelAdminLogEventActionDiscardGroupCall::channelAdminLogEventActionDiscardGroupCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionDiscardGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionDiscardGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantMute::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantMute::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantMute>(p); +} + +channelAdminLogEventActionParticipantMute::channelAdminLogEventActionParticipantMute(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : participant_(TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantMute::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantMute"); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantUnmute::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantUnmute::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantUnmute>(p); +} + +channelAdminLogEventActionParticipantUnmute::channelAdminLogEventActionParticipantUnmute(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : participant_(TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantUnmute::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantUnmute"); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionToggleGroupCallSetting::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleGroupCallSetting::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionToggleGroupCallSetting>(p); +} + +channelAdminLogEventActionToggleGroupCallSetting::channelAdminLogEventActionToggleGroupCallSetting(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : join_muted_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionToggleGroupCallSetting::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionToggleGroupCallSetting"); + s.store_field("join_muted", join_muted_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantJoinByInvite::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantJoinByInvite::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantJoinByInvite>(p); +} + +channelAdminLogEventActionParticipantJoinByInvite::channelAdminLogEventActionParticipantJoinByInvite(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : invite_(TlFetchObject<ExportedChatInvite>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantJoinByInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantJoinByInvite"); + s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionExportedInviteDelete::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionExportedInviteDelete::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionExportedInviteDelete>(p); +} + +channelAdminLogEventActionExportedInviteDelete::channelAdminLogEventActionExportedInviteDelete(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : invite_(TlFetchObject<ExportedChatInvite>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionExportedInviteDelete::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionExportedInviteDelete"); + s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionExportedInviteRevoke::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionExportedInviteRevoke::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionExportedInviteRevoke>(p); +} + +channelAdminLogEventActionExportedInviteRevoke::channelAdminLogEventActionExportedInviteRevoke(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : invite_(TlFetchObject<ExportedChatInvite>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionExportedInviteRevoke::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionExportedInviteRevoke"); + s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionExportedInviteEdit::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionExportedInviteEdit::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionExportedInviteEdit>(p); +} + +channelAdminLogEventActionExportedInviteEdit::channelAdminLogEventActionExportedInviteEdit(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_invite_(TlFetchObject<ExportedChatInvite>::parse(p)) + , new_invite_(TlFetchObject<ExportedChatInvite>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionExportedInviteEdit::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionExportedInviteEdit"); + s.store_object_field("prev_invite", static_cast<const BaseObject *>(prev_invite_.get())); + s.store_object_field("new_invite", static_cast<const BaseObject *>(new_invite_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantVolume::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantVolume::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantVolume>(p); +} + +channelAdminLogEventActionParticipantVolume::channelAdminLogEventActionParticipantVolume(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : participant_(TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantVolume::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantVolume"); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeHistoryTTL::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeHistoryTTL::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeHistoryTTL>(p); +} + +channelAdminLogEventActionChangeHistoryTTL::channelAdminLogEventActionChangeHistoryTTL(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchInt::parse(p)) + , new_value_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeHistoryTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeHistoryTTL"); + s.store_field("prev_value", prev_value_); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionParticipantJoinByRequest::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionParticipantJoinByRequest::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionParticipantJoinByRequest>(p); +} + +channelAdminLogEventActionParticipantJoinByRequest::channelAdminLogEventActionParticipantJoinByRequest(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : invite_(TlFetchObject<ExportedChatInvite>::parse(p)) + , approved_by_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionParticipantJoinByRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionParticipantJoinByRequest"); + s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); + s.store_field("approved_by", approved_by_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionToggleNoForwards::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleNoForwards::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionToggleNoForwards>(p); +} + +channelAdminLogEventActionToggleNoForwards::channelAdminLogEventActionToggleNoForwards(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : new_value_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionToggleNoForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionToggleNoForwards"); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionSendMessage::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionSendMessage::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionSendMessage>(p); +} + +channelAdminLogEventActionSendMessage::channelAdminLogEventActionSendMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionSendMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionSendMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeAvailableReactions::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeAvailableReactions::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeAvailableReactions>(p); +} + +channelAdminLogEventActionChangeAvailableReactions::channelAdminLogEventActionChangeAvailableReactions(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchObject<ChatReactions>::parse(p)) + , new_value_(TlFetchObject<ChatReactions>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeAvailableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeAvailableReactions"); + s.store_object_field("prev_value", static_cast<const BaseObject *>(prev_value_.get())); + s.store_object_field("new_value", static_cast<const BaseObject *>(new_value_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionChangeUsernames::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionChangeUsernames::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionChangeUsernames>(p); +} + +channelAdminLogEventActionChangeUsernames::channelAdminLogEventActionChangeUsernames(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_value_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p)) + , new_value_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionChangeUsernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionChangeUsernames"); + { s.store_vector_begin("prev_value", prev_value_.size()); for (const auto &_value : prev_value_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("new_value", new_value_.size()); for (const auto &_value : new_value_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionToggleForum::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionToggleForum::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionToggleForum>(p); +} + +channelAdminLogEventActionToggleForum::channelAdminLogEventActionToggleForum(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : new_value_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionToggleForum::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionToggleForum"); + s.store_field("new_value", new_value_); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionCreateTopic::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionCreateTopic::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionCreateTopic>(p); +} + +channelAdminLogEventActionCreateTopic::channelAdminLogEventActionCreateTopic(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : topic_(TlFetchObject<ForumTopic>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionCreateTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionCreateTopic"); + s.store_object_field("topic", static_cast<const BaseObject *>(topic_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionEditTopic::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionEditTopic::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionEditTopic>(p); +} + +channelAdminLogEventActionEditTopic::channelAdminLogEventActionEditTopic(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prev_topic_(TlFetchObject<ForumTopic>::parse(p)) + , new_topic_(TlFetchObject<ForumTopic>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionEditTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionEditTopic"); + s.store_object_field("prev_topic", static_cast<const BaseObject *>(prev_topic_.get())); + s.store_object_field("new_topic", static_cast<const BaseObject *>(new_topic_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelAdminLogEventActionDeleteTopic::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionDeleteTopic::fetch(TlBufferParser &p) { + return make_tl_object<channelAdminLogEventActionDeleteTopic>(p); +} + +channelAdminLogEventActionDeleteTopic::channelAdminLogEventActionDeleteTopic(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : topic_(TlFetchObject<ForumTopic>::parse(p)) +#undef FAIL +{} + +void channelAdminLogEventActionDeleteTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionDeleteTopic"); + s.store_object_field("topic", static_cast<const BaseObject *>(topic_.get())); + s.store_class_end(); + } +} + +channelAdminLogEventActionPinTopic::channelAdminLogEventActionPinTopic() + : flags_() + , prev_topic_() + , new_topic_() +{} + +const std::int32_t channelAdminLogEventActionPinTopic::ID; + +object_ptr<ChannelAdminLogEventAction> channelAdminLogEventActionPinTopic::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channelAdminLogEventActionPinTopic> res = make_tl_object<channelAdminLogEventActionPinTopic>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->prev_topic_ = TlFetchObject<ForumTopic>::parse(p); } + if (var0 & 2) { res->new_topic_ = TlFetchObject<ForumTopic>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channelAdminLogEventActionPinTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventActionPinTopic"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("prev_topic", static_cast<const BaseObject *>(prev_topic_.get())); } + if (var0 & 2) { s.store_object_field("new_topic", static_cast<const BaseObject *>(new_topic_.get())); } + s.store_class_end(); + } +} + +channelAdminLogEventsFilter::channelAdminLogEventsFilter(int32 flags_, bool join_, bool leave_, bool invite_, bool ban_, bool unban_, bool kick_, bool unkick_, bool promote_, bool demote_, bool info_, bool settings_, bool pinned_, bool edit_, bool delete_, bool group_call_, bool invites_, bool send_, bool forums_) + : flags_(flags_) + , join_(join_) + , leave_(leave_) + , invite_(invite_) + , ban_(ban_) + , unban_(unban_) + , kick_(kick_) + , unkick_(unkick_) + , promote_(promote_) + , demote_(demote_) + , info_(info_) + , settings_(settings_) + , pinned_(pinned_) + , edit_(edit_) + , delete_(delete_) + , group_call_(group_call_) + , invites_(invites_) + , send_(send_) + , forums_(forums_) +{} + +const std::int32_t channelAdminLogEventsFilter::ID; + +void channelAdminLogEventsFilter::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void channelAdminLogEventsFilter::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void channelAdminLogEventsFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelAdminLogEventsFilter"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +object_ptr<ChannelLocation> ChannelLocation::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case channelLocationEmpty::ID: + return channelLocationEmpty::fetch(p); + case channelLocation::ID: + return channelLocation::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t channelLocationEmpty::ID; + +object_ptr<ChannelLocation> channelLocationEmpty::fetch(TlBufferParser &p) { + return make_tl_object<channelLocationEmpty>(); +} + +void channelLocationEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelLocationEmpty"); + s.store_class_end(); + } +} + +const std::int32_t channelLocation::ID; + +object_ptr<ChannelLocation> channelLocation::fetch(TlBufferParser &p) { + return make_tl_object<channelLocation>(p); +} + +channelLocation::channelLocation(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : geo_point_(TlFetchObject<GeoPoint>::parse(p)) + , address_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void channelLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelLocation"); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + s.store_field("address", address_); + s.store_class_end(); + } +} + +const std::int32_t channelMessagesFilterEmpty::ID; + +void channelMessagesFilterEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void channelMessagesFilterEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void channelMessagesFilterEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelMessagesFilterEmpty"); + s.store_class_end(); + } +} + +channelMessagesFilter::channelMessagesFilter(int32 flags_, bool exclude_new_messages_, array<object_ptr<messageRange>> &&ranges_) + : flags_(flags_) + , exclude_new_messages_(exclude_new_messages_) + , ranges_(std::move(ranges_)) +{} + +const std::int32_t channelMessagesFilter::ID; + +void channelMessagesFilter::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 182649427>>, 481674261>::store(ranges_, s); +} + +void channelMessagesFilter::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 182649427>>, 481674261>::store(ranges_, s); +} + +void channelMessagesFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelMessagesFilter"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("ranges", ranges_.size()); for (const auto &_value : ranges_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<ChannelParticipant> ChannelParticipant::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case channelParticipant::ID: + return channelParticipant::fetch(p); + case channelParticipantSelf::ID: + return channelParticipantSelf::fetch(p); + case channelParticipantCreator::ID: + return channelParticipantCreator::fetch(p); + case channelParticipantAdmin::ID: + return channelParticipantAdmin::fetch(p); + case channelParticipantBanned::ID: + return channelParticipantBanned::fetch(p); + case channelParticipantLeft::ID: + return channelParticipantLeft::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t channelParticipant::ID; + +object_ptr<ChannelParticipant> channelParticipant::fetch(TlBufferParser &p) { + return make_tl_object<channelParticipant>(p); +} + +channelParticipant::channelParticipant(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void channelParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipant"); + s.store_field("user_id", user_id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +channelParticipantSelf::channelParticipantSelf() + : flags_() + , via_request_() + , user_id_() + , inviter_id_() + , date_() +{} + +const std::int32_t channelParticipantSelf::ID; + +object_ptr<ChannelParticipant> channelParticipantSelf::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channelParticipantSelf> res = make_tl_object<channelParticipantSelf>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->via_request_ = TlFetchTrue::parse(p); } + res->user_id_ = TlFetchLong::parse(p); + res->inviter_id_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channelParticipantSelf::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantSelf"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("user_id", user_id_); + s.store_field("inviter_id", inviter_id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +channelParticipantCreator::channelParticipantCreator() + : flags_() + , user_id_() + , admin_rights_() + , rank_() +{} + +const std::int32_t channelParticipantCreator::ID; + +object_ptr<ChannelParticipant> channelParticipantCreator::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channelParticipantCreator> res = make_tl_object<channelParticipantCreator>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->user_id_ = TlFetchLong::parse(p); + res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); + if (var0 & 1) { res->rank_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channelParticipantCreator::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantCreator"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("user_id", user_id_); + s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); + if (var0 & 1) { s.store_field("rank", rank_); } + s.store_class_end(); + } +} + +channelParticipantAdmin::channelParticipantAdmin() + : flags_() + , can_edit_() + , self_() + , user_id_() + , inviter_id_() + , promoted_by_() + , date_() + , admin_rights_() + , rank_() +{} + +const std::int32_t channelParticipantAdmin::ID; + +object_ptr<ChannelParticipant> channelParticipantAdmin::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channelParticipantAdmin> res = make_tl_object<channelParticipantAdmin>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->can_edit_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->self_ = TlFetchTrue::parse(p); } + res->user_id_ = TlFetchLong::parse(p); + if (var0 & 2) { res->inviter_id_ = TlFetchLong::parse(p); } + res->promoted_by_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); + if (var0 & 4) { res->rank_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channelParticipantAdmin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantAdmin"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("user_id", user_id_); + if (var0 & 2) { s.store_field("inviter_id", inviter_id_); } + s.store_field("promoted_by", promoted_by_); + s.store_field("date", date_); + s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); + if (var0 & 4) { s.store_field("rank", rank_); } + s.store_class_end(); + } +} + +channelParticipantBanned::channelParticipantBanned() + : flags_() + , left_() + , peer_() + , kicked_by_() + , date_() + , banned_rights_() +{} + +const std::int32_t channelParticipantBanned::ID; + +object_ptr<ChannelParticipant> channelParticipantBanned::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channelParticipantBanned> res = make_tl_object<channelParticipantBanned>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->left_ = TlFetchTrue::parse(p); } + res->peer_ = TlFetchObject<Peer>::parse(p); + res->kicked_by_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channelParticipantBanned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantBanned"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("kicked_by", kicked_by_); + s.store_field("date", date_); + s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelParticipantLeft::ID; + +object_ptr<ChannelParticipant> channelParticipantLeft::fetch(TlBufferParser &p) { + return make_tl_object<channelParticipantLeft>(p); +} + +channelParticipantLeft::channelParticipantLeft(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) +#undef FAIL +{} + +void channelParticipantLeft::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantLeft"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +const std::int32_t channelParticipantsRecent::ID; + +void channelParticipantsRecent::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void channelParticipantsRecent::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void channelParticipantsRecent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsRecent"); + s.store_class_end(); + } +} + +const std::int32_t channelParticipantsAdmins::ID; + +void channelParticipantsAdmins::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void channelParticipantsAdmins::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void channelParticipantsAdmins::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsAdmins"); + s.store_class_end(); + } +} + +channelParticipantsKicked::channelParticipantsKicked(string const &q_) + : q_(q_) +{} + +const std::int32_t channelParticipantsKicked::ID; + +void channelParticipantsKicked::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsKicked::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsKicked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsKicked"); + s.store_field("q", q_); + s.store_class_end(); + } +} + +const std::int32_t channelParticipantsBots::ID; + +void channelParticipantsBots::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void channelParticipantsBots::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void channelParticipantsBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsBots"); + s.store_class_end(); + } +} + +channelParticipantsBanned::channelParticipantsBanned(string const &q_) + : q_(q_) +{} + +const std::int32_t channelParticipantsBanned::ID; + +void channelParticipantsBanned::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsBanned::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsBanned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsBanned"); + s.store_field("q", q_); + s.store_class_end(); + } +} + +channelParticipantsSearch::channelParticipantsSearch(string const &q_) + : q_(q_) +{} + +const std::int32_t channelParticipantsSearch::ID; + +void channelParticipantsSearch::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsSearch::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsSearch::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsSearch"); + s.store_field("q", q_); + s.store_class_end(); + } +} + +channelParticipantsContacts::channelParticipantsContacts(string const &q_) + : q_(q_) +{} + +const std::int32_t channelParticipantsContacts::ID; + +void channelParticipantsContacts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsContacts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(q_, s); +} + +void channelParticipantsContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsContacts"); + s.store_field("q", q_); + s.store_class_end(); + } +} + +channelParticipantsMentions::channelParticipantsMentions(int32 flags_, string const &q_, int32 top_msg_id_) + : flags_(flags_) + , q_(q_) + , top_msg_id_(top_msg_id_) +{} + +const std::int32_t channelParticipantsMentions::ID; + +void channelParticipantsMentions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreString::store(q_, s); } + if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); } +} + +void channelParticipantsMentions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreString::store(q_, s); } + if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); } +} + +void channelParticipantsMentions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelParticipantsMentions"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("q", q_); } + if (var0 & 2) { s.store_field("top_msg_id", top_msg_id_); } + s.store_class_end(); + } +} + +object_ptr<Chat> Chat::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatEmpty::ID: + return chatEmpty::fetch(p); + case chat::ID: + return chat::fetch(p); + case chatForbidden::ID: + return chatForbidden::fetch(p); + case channel::ID: + return channel::fetch(p); + case channelForbidden::ID: + return channelForbidden::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t chatEmpty::ID; + +object_ptr<Chat> chatEmpty::fetch(TlBufferParser &p) { + return make_tl_object<chatEmpty>(p); +} + +chatEmpty::chatEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void chatEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatEmpty"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +chat::chat() + : flags_() + , creator_() + , left_() + , deactivated_() + , call_active_() + , call_not_empty_() + , noforwards_() + , id_() + , title_() + , photo_() + , participants_count_() + , date_() + , version_() + , migrated_to_() + , admin_rights_() + , default_banned_rights_() +{} + +const std::int32_t chat::ID; + +object_ptr<Chat> chat::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chat> res = make_tl_object<chat>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->left_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->deactivated_ = TlFetchTrue::parse(p); } + if (var0 & 8388608) { res->call_active_ = TlFetchTrue::parse(p); } + if (var0 & 16777216) { res->call_not_empty_ = TlFetchTrue::parse(p); } + if (var0 & 33554432) { res->noforwards_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->photo_ = TlFetchObject<ChatPhoto>::parse(p); + res->participants_count_ = TlFetchInt::parse(p); + res->date_ = TlFetchInt::parse(p); + res->version_ = TlFetchInt::parse(p); + if (var0 & 64) { res->migrated_to_ = TlFetchObject<InputChannel>::parse(p); } + if (var0 & 16384) { res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); } + if (var0 & 262144) { res->default_banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void chat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chat"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("participants_count", participants_count_); + s.store_field("date", date_); + s.store_field("version", version_); + if (var0 & 64) { s.store_object_field("migrated_to", static_cast<const BaseObject *>(migrated_to_.get())); } + if (var0 & 16384) { s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); } + if (var0 & 262144) { s.store_object_field("default_banned_rights", static_cast<const BaseObject *>(default_banned_rights_.get())); } + s.store_class_end(); + } +} + +const std::int32_t chatForbidden::ID; + +object_ptr<Chat> chatForbidden::fetch(TlBufferParser &p) { + return make_tl_object<chatForbidden>(p); +} + +chatForbidden::chatForbidden(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , title_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void chatForbidden::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatForbidden"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +channel::channel() + : flags_() + , creator_() + , left_() + , broadcast_() + , verified_() + , megagroup_() + , restricted_() + , signatures_() + , min_() + , scam_() + , has_link_() + , has_geo_() + , slowmode_enabled_() + , call_active_() + , call_not_empty_() + , fake_() + , gigagroup_() + , noforwards_() + , join_to_send_() + , join_request_() + , forum_() + , flags2_() + , id_() + , access_hash_() + , title_() + , username_() + , photo_() + , date_() + , restriction_reason_() + , admin_rights_() + , banned_rights_() + , default_banned_rights_() + , participants_count_() + , usernames_() +{} + +const std::int32_t channel::ID; + +object_ptr<Chat> channel::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channel> res = make_tl_object<channel>(); + int32 var0; + int32 var1; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->left_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->broadcast_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->verified_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->megagroup_ = TlFetchTrue::parse(p); } + if (var0 & 512) { res->restricted_ = TlFetchTrue::parse(p); } + if (var0 & 2048) { res->signatures_ = TlFetchTrue::parse(p); } + if (var0 & 4096) { res->min_ = TlFetchTrue::parse(p); } + if (var0 & 524288) { res->scam_ = TlFetchTrue::parse(p); } + if (var0 & 1048576) { res->has_link_ = TlFetchTrue::parse(p); } + if (var0 & 2097152) { res->has_geo_ = TlFetchTrue::parse(p); } + if (var0 & 4194304) { res->slowmode_enabled_ = TlFetchTrue::parse(p); } + if (var0 & 8388608) { res->call_active_ = TlFetchTrue::parse(p); } + if (var0 & 16777216) { res->call_not_empty_ = TlFetchTrue::parse(p); } + if (var0 & 33554432) { res->fake_ = TlFetchTrue::parse(p); } + if (var0 & 67108864) { res->gigagroup_ = TlFetchTrue::parse(p); } + if (var0 & 134217728) { res->noforwards_ = TlFetchTrue::parse(p); } + if (var0 & 268435456) { res->join_to_send_ = TlFetchTrue::parse(p); } + if (var0 & 536870912) { res->join_request_ = TlFetchTrue::parse(p); } + if (var0 & 1073741824) { res->forum_ = TlFetchTrue::parse(p); } + if ((var1 = res->flags2_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchLong::parse(p); + if (var0 & 8192) { res->access_hash_ = TlFetchLong::parse(p); } + res->title_ = TlFetchString<string>::parse(p); + if (var0 & 64) { res->username_ = TlFetchString<string>::parse(p); } + res->photo_ = TlFetchObject<ChatPhoto>::parse(p); + res->date_ = TlFetchInt::parse(p); + if (var0 & 512) { res->restriction_reason_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<restrictionReason>, -797791052>>, 481674261>::parse(p); } + if (var0 & 16384) { res->admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); } + if (var0 & 32768) { res->banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p); } + if (var0 & 262144) { res->default_banned_rights_ = TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p); } + if (var0 & 131072) { res->participants_count_ = TlFetchInt::parse(p); } + if (var1 & 1) { res->usernames_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<username>, -1274595769>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channel"); + int32 var0; + int32 var1; + s.store_field("flags", (var0 = flags_)); + s.store_field("flags2", (var1 = flags2_)); + s.store_field("id", id_); + if (var0 & 8192) { s.store_field("access_hash", access_hash_); } + s.store_field("title", title_); + if (var0 & 64) { s.store_field("username", username_); } + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("date", date_); + if (var0 & 512) { { s.store_vector_begin("restriction_reason", restriction_reason_.size()); for (const auto &_value : restriction_reason_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 16384) { s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); } + if (var0 & 32768) { s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get())); } + if (var0 & 262144) { s.store_object_field("default_banned_rights", static_cast<const BaseObject *>(default_banned_rights_.get())); } + if (var0 & 131072) { s.store_field("participants_count", participants_count_); } + if (var1 & 1) { { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +channelForbidden::channelForbidden() + : flags_() + , broadcast_() + , megagroup_() + , id_() + , access_hash_() + , title_() + , until_date_() +{} + +channelForbidden::channelForbidden(int32 flags_, bool broadcast_, bool megagroup_, int64 id_, int64 access_hash_, string const &title_, int32 until_date_) + : flags_(flags_) + , broadcast_(broadcast_) + , megagroup_(megagroup_) + , id_(id_) + , access_hash_(access_hash_) + , title_(title_) + , until_date_(until_date_) +{} + +const std::int32_t channelForbidden::ID; + +object_ptr<Chat> channelForbidden::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channelForbidden> res = make_tl_object<channelForbidden>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 32) { res->broadcast_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->megagroup_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->title_ = TlFetchString<string>::parse(p); + if (var0 & 65536) { res->until_date_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channelForbidden::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelForbidden"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("title", title_); + if (var0 & 65536) { s.store_field("until_date", until_date_); } + s.store_class_end(); + } +} + +chatAdminRights::chatAdminRights() + : flags_() + , change_info_() + , post_messages_() + , edit_messages_() + , delete_messages_() + , ban_users_() + , invite_users_() + , pin_messages_() + , add_admins_() + , anonymous_() + , manage_call_() + , other_() + , manage_topics_() +{} + +chatAdminRights::chatAdminRights(int32 flags_, bool change_info_, bool post_messages_, bool edit_messages_, bool delete_messages_, bool ban_users_, bool invite_users_, bool pin_messages_, bool add_admins_, bool anonymous_, bool manage_call_, bool other_, bool manage_topics_) + : flags_(flags_) + , change_info_(change_info_) + , post_messages_(post_messages_) + , edit_messages_(edit_messages_) + , delete_messages_(delete_messages_) + , ban_users_(ban_users_) + , invite_users_(invite_users_) + , pin_messages_(pin_messages_) + , add_admins_(add_admins_) + , anonymous_(anonymous_) + , manage_call_(manage_call_) + , other_(other_) + , manage_topics_(manage_topics_) +{} + +const std::int32_t chatAdminRights::ID; + +object_ptr<chatAdminRights> chatAdminRights::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatAdminRights> res = make_tl_object<chatAdminRights>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->change_info_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->post_messages_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->edit_messages_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->delete_messages_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->ban_users_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->invite_users_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->pin_messages_ = TlFetchTrue::parse(p); } + if (var0 & 512) { res->add_admins_ = TlFetchTrue::parse(p); } + if (var0 & 1024) { res->anonymous_ = TlFetchTrue::parse(p); } + if (var0 & 2048) { res->manage_call_ = TlFetchTrue::parse(p); } + if (var0 & 4096) { res->other_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->manage_topics_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void chatAdminRights::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void chatAdminRights::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void chatAdminRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatAdminRights"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +const std::int32_t chatAdminWithInvites::ID; + +object_ptr<chatAdminWithInvites> chatAdminWithInvites::fetch(TlBufferParser &p) { + return make_tl_object<chatAdminWithInvites>(p); +} + +chatAdminWithInvites::chatAdminWithInvites(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : admin_id_(TlFetchLong::parse(p)) + , invites_count_(TlFetchInt::parse(p)) + , revoked_invites_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void chatAdminWithInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatAdminWithInvites"); + s.store_field("admin_id", admin_id_); + s.store_field("invites_count", invites_count_); + s.store_field("revoked_invites_count", revoked_invites_count_); + s.store_class_end(); + } +} + +chatBannedRights::chatBannedRights() + : flags_() + , view_messages_() + , send_messages_() + , send_media_() + , send_stickers_() + , send_gifs_() + , send_games_() + , send_inline_() + , embed_links_() + , send_polls_() + , change_info_() + , invite_users_() + , pin_messages_() + , manage_topics_() + , until_date_() +{} + +chatBannedRights::chatBannedRights(int32 flags_, bool view_messages_, bool send_messages_, bool send_media_, bool send_stickers_, bool send_gifs_, bool send_games_, bool send_inline_, bool embed_links_, bool send_polls_, bool change_info_, bool invite_users_, bool pin_messages_, bool manage_topics_, int32 until_date_) + : flags_(flags_) + , view_messages_(view_messages_) + , send_messages_(send_messages_) + , send_media_(send_media_) + , send_stickers_(send_stickers_) + , send_gifs_(send_gifs_) + , send_games_(send_games_) + , send_inline_(send_inline_) + , embed_links_(embed_links_) + , send_polls_(send_polls_) + , change_info_(change_info_) + , invite_users_(invite_users_) + , pin_messages_(pin_messages_) + , manage_topics_(manage_topics_) + , until_date_(until_date_) +{} + +const std::int32_t chatBannedRights::ID; + +object_ptr<chatBannedRights> chatBannedRights::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatBannedRights> res = make_tl_object<chatBannedRights>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->view_messages_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->send_messages_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->send_media_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->send_stickers_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->send_gifs_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->send_games_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->send_inline_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->embed_links_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->send_polls_ = TlFetchTrue::parse(p); } + if (var0 & 1024) { res->change_info_ = TlFetchTrue::parse(p); } + if (var0 & 32768) { res->invite_users_ = TlFetchTrue::parse(p); } + if (var0 & 131072) { res->pin_messages_ = TlFetchTrue::parse(p); } + if (var0 & 262144) { res->manage_topics_ = TlFetchTrue::parse(p); } + res->until_date_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void chatBannedRights::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(until_date_, s); +} + +void chatBannedRights::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(until_date_, s); +} + +void chatBannedRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatBannedRights"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("until_date", until_date_); + s.store_class_end(); + } +} + +object_ptr<ChatFull> ChatFull::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatFull::ID: + return chatFull::fetch(p); + case channelFull::ID: + return channelFull::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +chatFull::chatFull() + : flags_() + , can_set_username_() + , has_scheduled_() + , id_() + , about_() + , participants_() + , chat_photo_() + , notify_settings_() + , exported_invite_() + , bot_info_() + , pinned_msg_id_() + , folder_id_() + , call_() + , ttl_period_() + , groupcall_default_join_as_() + , theme_emoticon_() + , requests_pending_() + , recent_requesters_() + , available_reactions_() +{} + +const std::int32_t chatFull::ID; + +object_ptr<ChatFull> chatFull::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatFull> res = make_tl_object<chatFull>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 128) { res->can_set_username_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->has_scheduled_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->about_ = TlFetchString<string>::parse(p); + res->participants_ = TlFetchObject<ChatParticipants>::parse(p); + if (var0 & 4) { res->chat_photo_ = TlFetchObject<Photo>::parse(p); } + res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p); + if (var0 & 8192) { res->exported_invite_ = TlFetchObject<ExportedChatInvite>::parse(p); } + if (var0 & 8) { res->bot_info_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botInfo>, -1892676777>>, 481674261>::parse(p); } + if (var0 & 64) { res->pinned_msg_id_ = TlFetchInt::parse(p); } + if (var0 & 2048) { res->folder_id_ = TlFetchInt::parse(p); } + if (var0 & 4096) { res->call_ = TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p); } + if (var0 & 16384) { res->ttl_period_ = TlFetchInt::parse(p); } + if (var0 & 32768) { res->groupcall_default_join_as_ = TlFetchObject<Peer>::parse(p); } + if (var0 & 65536) { res->theme_emoticon_ = TlFetchString<string>::parse(p); } + if (var0 & 131072) { res->requests_pending_ = TlFetchInt::parse(p); } + if (var0 & 131072) { res->recent_requesters_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); } + if (var0 & 262144) { res->available_reactions_ = TlFetchObject<ChatReactions>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void chatFull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatFull"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("about", about_); + s.store_object_field("participants", static_cast<const BaseObject *>(participants_.get())); + if (var0 & 4) { s.store_object_field("chat_photo", static_cast<const BaseObject *>(chat_photo_.get())); } + s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get())); + if (var0 & 8192) { s.store_object_field("exported_invite", static_cast<const BaseObject *>(exported_invite_.get())); } + if (var0 & 8) { { s.store_vector_begin("bot_info", bot_info_.size()); for (const auto &_value : bot_info_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 64) { s.store_field("pinned_msg_id", pinned_msg_id_); } + if (var0 & 2048) { s.store_field("folder_id", folder_id_); } + if (var0 & 4096) { s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); } + if (var0 & 16384) { s.store_field("ttl_period", ttl_period_); } + if (var0 & 32768) { s.store_object_field("groupcall_default_join_as", static_cast<const BaseObject *>(groupcall_default_join_as_.get())); } + if (var0 & 65536) { s.store_field("theme_emoticon", theme_emoticon_); } + if (var0 & 131072) { s.store_field("requests_pending", requests_pending_); } + if (var0 & 131072) { { s.store_vector_begin("recent_requesters", recent_requesters_.size()); for (const auto &_value : recent_requesters_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 262144) { s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); } + s.store_class_end(); + } +} + +channelFull::channelFull() + : flags_() + , can_view_participants_() + , can_set_username_() + , can_set_stickers_() + , hidden_prehistory_() + , can_set_location_() + , has_scheduled_() + , can_view_stats_() + , blocked_() + , flags2_() + , can_delete_channel_() + , id_() + , about_() + , participants_count_() + , admins_count_() + , kicked_count_() + , banned_count_() + , online_count_() + , read_inbox_max_id_() + , read_outbox_max_id_() + , unread_count_() + , chat_photo_() + , notify_settings_() + , exported_invite_() + , bot_info_() + , migrated_from_chat_id_() + , migrated_from_max_id_() + , pinned_msg_id_() + , stickerset_() + , available_min_id_() + , folder_id_() + , linked_chat_id_() + , location_() + , slowmode_seconds_() + , slowmode_next_send_date_() + , stats_dc_() + , pts_() + , call_() + , ttl_period_() + , pending_suggestions_() + , groupcall_default_join_as_() + , theme_emoticon_() + , requests_pending_() + , recent_requesters_() + , default_send_as_() + , available_reactions_() +{} + +const std::int32_t channelFull::ID; + +object_ptr<ChatFull> channelFull::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<channelFull> res = make_tl_object<channelFull>(); + int32 var0; + int32 var1; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 8) { res->can_view_participants_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->can_set_username_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->can_set_stickers_ = TlFetchTrue::parse(p); } + if (var0 & 1024) { res->hidden_prehistory_ = TlFetchTrue::parse(p); } + if (var0 & 65536) { res->can_set_location_ = TlFetchTrue::parse(p); } + if (var0 & 524288) { res->has_scheduled_ = TlFetchTrue::parse(p); } + if (var0 & 1048576) { res->can_view_stats_ = TlFetchTrue::parse(p); } + if (var0 & 4194304) { res->blocked_ = TlFetchTrue::parse(p); } + if ((var1 = res->flags2_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var1 & 1) { res->can_delete_channel_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->about_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->participants_count_ = TlFetchInt::parse(p); } + if (var0 & 2) { res->admins_count_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->kicked_count_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->banned_count_ = TlFetchInt::parse(p); } + if (var0 & 8192) { res->online_count_ = TlFetchInt::parse(p); } + res->read_inbox_max_id_ = TlFetchInt::parse(p); + res->read_outbox_max_id_ = TlFetchInt::parse(p); + res->unread_count_ = TlFetchInt::parse(p); + res->chat_photo_ = TlFetchObject<Photo>::parse(p); + res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p); + if (var0 & 8388608) { res->exported_invite_ = TlFetchObject<ExportedChatInvite>::parse(p); } + res->bot_info_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botInfo>, -1892676777>>, 481674261>::parse(p); + if (var0 & 16) { res->migrated_from_chat_id_ = TlFetchLong::parse(p); } + if (var0 & 16) { res->migrated_from_max_id_ = TlFetchInt::parse(p); } + if (var0 & 32) { res->pinned_msg_id_ = TlFetchInt::parse(p); } + if (var0 & 256) { res->stickerset_ = TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p); } + if (var0 & 512) { res->available_min_id_ = TlFetchInt::parse(p); } + if (var0 & 2048) { res->folder_id_ = TlFetchInt::parse(p); } + if (var0 & 16384) { res->linked_chat_id_ = TlFetchLong::parse(p); } + if (var0 & 32768) { res->location_ = TlFetchObject<ChannelLocation>::parse(p); } + if (var0 & 131072) { res->slowmode_seconds_ = TlFetchInt::parse(p); } + if (var0 & 262144) { res->slowmode_next_send_date_ = TlFetchInt::parse(p); } + if (var0 & 4096) { res->stats_dc_ = TlFetchInt::parse(p); } + res->pts_ = TlFetchInt::parse(p); + if (var0 & 2097152) { res->call_ = TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p); } + if (var0 & 16777216) { res->ttl_period_ = TlFetchInt::parse(p); } + if (var0 & 33554432) { res->pending_suggestions_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p); } + if (var0 & 67108864) { res->groupcall_default_join_as_ = TlFetchObject<Peer>::parse(p); } + if (var0 & 134217728) { res->theme_emoticon_ = TlFetchString<string>::parse(p); } + if (var0 & 268435456) { res->requests_pending_ = TlFetchInt::parse(p); } + if (var0 & 268435456) { res->recent_requesters_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); } + if (var0 & 536870912) { res->default_send_as_ = TlFetchObject<Peer>::parse(p); } + if (var0 & 1073741824) { res->available_reactions_ = TlFetchObject<ChatReactions>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void channelFull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channelFull"); + int32 var0; + int32 var1; + s.store_field("flags", (var0 = flags_)); + s.store_field("flags2", (var1 = flags2_)); + s.store_field("id", id_); + s.store_field("about", about_); + if (var0 & 1) { s.store_field("participants_count", participants_count_); } + if (var0 & 2) { s.store_field("admins_count", admins_count_); } + if (var0 & 4) { s.store_field("kicked_count", kicked_count_); } + if (var0 & 4) { s.store_field("banned_count", banned_count_); } + if (var0 & 8192) { s.store_field("online_count", online_count_); } + s.store_field("read_inbox_max_id", read_inbox_max_id_); + s.store_field("read_outbox_max_id", read_outbox_max_id_); + s.store_field("unread_count", unread_count_); + s.store_object_field("chat_photo", static_cast<const BaseObject *>(chat_photo_.get())); + s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get())); + if (var0 & 8388608) { s.store_object_field("exported_invite", static_cast<const BaseObject *>(exported_invite_.get())); } + { s.store_vector_begin("bot_info", bot_info_.size()); for (const auto &_value : bot_info_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 16) { s.store_field("migrated_from_chat_id", migrated_from_chat_id_); } + if (var0 & 16) { s.store_field("migrated_from_max_id", migrated_from_max_id_); } + if (var0 & 32) { s.store_field("pinned_msg_id", pinned_msg_id_); } + if (var0 & 256) { s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); } + if (var0 & 512) { s.store_field("available_min_id", available_min_id_); } + if (var0 & 2048) { s.store_field("folder_id", folder_id_); } + if (var0 & 16384) { s.store_field("linked_chat_id", linked_chat_id_); } + if (var0 & 32768) { s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); } + if (var0 & 131072) { s.store_field("slowmode_seconds", slowmode_seconds_); } + if (var0 & 262144) { s.store_field("slowmode_next_send_date", slowmode_next_send_date_); } + if (var0 & 4096) { s.store_field("stats_dc", stats_dc_); } + s.store_field("pts", pts_); + if (var0 & 2097152) { s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); } + if (var0 & 16777216) { s.store_field("ttl_period", ttl_period_); } + if (var0 & 33554432) { { s.store_vector_begin("pending_suggestions", pending_suggestions_.size()); for (const auto &_value : pending_suggestions_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 67108864) { s.store_object_field("groupcall_default_join_as", static_cast<const BaseObject *>(groupcall_default_join_as_.get())); } + if (var0 & 134217728) { s.store_field("theme_emoticon", theme_emoticon_); } + if (var0 & 268435456) { s.store_field("requests_pending", requests_pending_); } + if (var0 & 268435456) { { s.store_vector_begin("recent_requesters", recent_requesters_.size()); for (const auto &_value : recent_requesters_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 536870912) { s.store_object_field("default_send_as", static_cast<const BaseObject *>(default_send_as_.get())); } + if (var0 & 1073741824) { s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); } + s.store_class_end(); + } +} + +object_ptr<ChatInvite> ChatInvite::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatInviteAlready::ID: + return chatInviteAlready::fetch(p); + case chatInvite::ID: + return chatInvite::fetch(p); + case chatInvitePeek::ID: + return chatInvitePeek::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t chatInviteAlready::ID; + +object_ptr<ChatInvite> chatInviteAlready::fetch(TlBufferParser &p) { + return make_tl_object<chatInviteAlready>(p); +} + +chatInviteAlready::chatInviteAlready(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_(TlFetchObject<Chat>::parse(p)) +#undef FAIL +{} + +void chatInviteAlready::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteAlready"); + s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get())); + s.store_class_end(); + } +} + +chatInvite::chatInvite() + : flags_() + , channel_() + , broadcast_() + , public_() + , megagroup_() + , request_needed_() + , title_() + , about_() + , photo_() + , participants_count_() + , participants_() +{} + +const std::int32_t chatInvite::ID; + +object_ptr<ChatInvite> chatInvite::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatInvite> res = make_tl_object<chatInvite>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->channel_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->broadcast_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->public_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->megagroup_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->request_needed_ = TlFetchTrue::parse(p); } + res->title_ = TlFetchString<string>::parse(p); + if (var0 & 32) { res->about_ = TlFetchString<string>::parse(p); } + res->photo_ = TlFetchObject<Photo>::parse(p); + res->participants_count_ = TlFetchInt::parse(p); + if (var0 & 16) { res->participants_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void chatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInvite"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("title", title_); + if (var0 & 32) { s.store_field("about", about_); } + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("participants_count", participants_count_); + if (var0 & 16) { { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +const std::int32_t chatInvitePeek::ID; + +object_ptr<ChatInvite> chatInvitePeek::fetch(TlBufferParser &p) { + return make_tl_object<chatInvitePeek>(p); +} + +chatInvitePeek::chatInvitePeek(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_(TlFetchObject<Chat>::parse(p)) + , expires_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void chatInvitePeek::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInvitePeek"); + s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get())); + s.store_field("expires", expires_); + s.store_class_end(); + } +} + +chatInviteImporter::chatInviteImporter() + : flags_() + , requested_() + , user_id_() + , date_() + , about_() + , approved_by_() +{} + +const std::int32_t chatInviteImporter::ID; + +object_ptr<chatInviteImporter> chatInviteImporter::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatInviteImporter> res = make_tl_object<chatInviteImporter>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->requested_ = TlFetchTrue::parse(p); } + res->user_id_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + if (var0 & 4) { res->about_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->approved_by_ = TlFetchLong::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void chatInviteImporter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteImporter"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("user_id", user_id_); + s.store_field("date", date_); + if (var0 & 4) { s.store_field("about", about_); } + if (var0 & 2) { s.store_field("approved_by", approved_by_); } + s.store_class_end(); + } +} + +const std::int32_t chatOnlines::ID; + +object_ptr<chatOnlines> chatOnlines::fetch(TlBufferParser &p) { + return make_tl_object<chatOnlines>(p); +} + +chatOnlines::chatOnlines(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : onlines_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void chatOnlines::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatOnlines"); + s.store_field("onlines", onlines_); + s.store_class_end(); + } +} + +object_ptr<ChatParticipant> ChatParticipant::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatParticipant::ID: + return chatParticipant::fetch(p); + case chatParticipantCreator::ID: + return chatParticipantCreator::fetch(p); + case chatParticipantAdmin::ID: + return chatParticipantAdmin::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t chatParticipant::ID; + +object_ptr<ChatParticipant> chatParticipant::fetch(TlBufferParser &p) { + return make_tl_object<chatParticipant>(p); +} + +chatParticipant::chatParticipant(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , inviter_id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void chatParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatParticipant"); + s.store_field("user_id", user_id_); + s.store_field("inviter_id", inviter_id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t chatParticipantCreator::ID; + +object_ptr<ChatParticipant> chatParticipantCreator::fetch(TlBufferParser &p) { + return make_tl_object<chatParticipantCreator>(p); +} + +chatParticipantCreator::chatParticipantCreator(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void chatParticipantCreator::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatParticipantCreator"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +const std::int32_t chatParticipantAdmin::ID; + +object_ptr<ChatParticipant> chatParticipantAdmin::fetch(TlBufferParser &p) { + return make_tl_object<chatParticipantAdmin>(p); +} + +chatParticipantAdmin::chatParticipantAdmin(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , inviter_id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void chatParticipantAdmin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatParticipantAdmin"); + s.store_field("user_id", user_id_); + s.store_field("inviter_id", inviter_id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +object_ptr<ChatParticipants> ChatParticipants::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatParticipantsForbidden::ID: + return chatParticipantsForbidden::fetch(p); + case chatParticipants::ID: + return chatParticipants::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +chatParticipantsForbidden::chatParticipantsForbidden() + : flags_() + , chat_id_() + , self_participant_() +{} + +const std::int32_t chatParticipantsForbidden::ID; + +object_ptr<ChatParticipants> chatParticipantsForbidden::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatParticipantsForbidden> res = make_tl_object<chatParticipantsForbidden>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->chat_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->self_participant_ = TlFetchObject<ChatParticipant>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void chatParticipantsForbidden::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatParticipantsForbidden"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("chat_id", chat_id_); + if (var0 & 1) { s.store_object_field("self_participant", static_cast<const BaseObject *>(self_participant_.get())); } + s.store_class_end(); + } +} + +const std::int32_t chatParticipants::ID; + +object_ptr<ChatParticipants> chatParticipants::fetch(TlBufferParser &p) { + return make_tl_object<chatParticipants>(p); +} + +chatParticipants::chatParticipants(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) + , participants_(TlFetchBoxed<TlFetchVector<TlFetchObject<ChatParticipant>>, 481674261>::parse(p)) + , version_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void chatParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatParticipants"); + s.store_field("chat_id", chat_id_); + { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("version", version_); + s.store_class_end(); + } +} + +object_ptr<ChatPhoto> ChatPhoto::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatPhotoEmpty::ID: + return chatPhotoEmpty::fetch(p); + case chatPhoto::ID: + return chatPhoto::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t chatPhotoEmpty::ID; + +object_ptr<ChatPhoto> chatPhotoEmpty::fetch(TlBufferParser &p) { + return make_tl_object<chatPhotoEmpty>(); +} + +void chatPhotoEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatPhotoEmpty"); + s.store_class_end(); + } +} + +chatPhoto::chatPhoto() + : flags_() + , has_video_() + , photo_id_() + , stripped_thumb_() + , dc_id_() +{} + +const std::int32_t chatPhoto::ID; + +object_ptr<ChatPhoto> chatPhoto::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatPhoto> res = make_tl_object<chatPhoto>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->has_video_ = TlFetchTrue::parse(p); } + res->photo_id_ = TlFetchLong::parse(p); + if (var0 & 2) { res->stripped_thumb_ = TlFetchBytes<bytes>::parse(p); } + res->dc_id_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void chatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatPhoto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("photo_id", photo_id_); + if (var0 & 2) { s.store_bytes_field("stripped_thumb", stripped_thumb_); } + s.store_field("dc_id", dc_id_); + s.store_class_end(); + } +} + +object_ptr<ChatReactions> ChatReactions::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatReactionsNone::ID: + return chatReactionsNone::fetch(p); + case chatReactionsAll::ID: + return chatReactionsAll::fetch(p); + case chatReactionsSome::ID: + return chatReactionsSome::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t chatReactionsNone::ID; + +object_ptr<ChatReactions> chatReactionsNone::fetch(TlBufferParser &p) { + return make_tl_object<chatReactionsNone>(); +} + +void chatReactionsNone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void chatReactionsNone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void chatReactionsNone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReactionsNone"); + s.store_class_end(); + } +} + +chatReactionsAll::chatReactionsAll() + : flags_() + , allow_custom_() +{} + +chatReactionsAll::chatReactionsAll(int32 flags_, bool allow_custom_) + : flags_(flags_) + , allow_custom_(allow_custom_) +{} + +const std::int32_t chatReactionsAll::ID; + +object_ptr<ChatReactions> chatReactionsAll::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatReactionsAll> res = make_tl_object<chatReactionsAll>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->allow_custom_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void chatReactionsAll::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void chatReactionsAll::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void chatReactionsAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReactionsAll"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +chatReactionsSome::chatReactionsSome(array<object_ptr<Reaction>> &&reactions_) + : reactions_(std::move(reactions_)) +{} + +const std::int32_t chatReactionsSome::ID; + +object_ptr<ChatReactions> chatReactionsSome::fetch(TlBufferParser &p) { + return make_tl_object<chatReactionsSome>(p); +} + +chatReactionsSome::chatReactionsSome(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : reactions_(TlFetchBoxed<TlFetchVector<TlFetchObject<Reaction>>, 481674261>::parse(p)) +#undef FAIL +{} + +void chatReactionsSome::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reactions_, s); +} + +void chatReactionsSome::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reactions_, s); +} + +void chatReactionsSome::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatReactionsSome"); + { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +codeSettings::codeSettings(int32 flags_, bool allow_flashcall_, bool current_number_, bool allow_app_hash_, bool allow_missed_call_, array<bytes> &&logout_tokens_) + : flags_(flags_) + , allow_flashcall_(allow_flashcall_) + , current_number_(current_number_) + , allow_app_hash_(allow_app_hash_) + , allow_missed_call_(allow_missed_call_) + , logout_tokens_(std::move(logout_tokens_)) +{} + +const std::int32_t codeSettings::ID; + +void codeSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(logout_tokens_, s); } +} + +void codeSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(logout_tokens_, s); } +} + +void codeSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "codeSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 64) { { s.store_vector_begin("logout_tokens", logout_tokens_.size()); for (const auto &_value : logout_tokens_) { s.store_bytes_field("", _value); } s.store_class_end(); } } + s.store_class_end(); + } +} + +config::config() + : flags_() + , phonecalls_enabled_() + , default_p2p_contacts_() + , preload_featured_stickers_() + , ignore_phone_entities_() + , revoke_pm_inbox_() + , blocked_mode_() + , pfs_enabled_() + , force_try_ipv6_() + , date_() + , expires_() + , test_mode_() + , this_dc_() + , dc_options_() + , dc_txt_domain_name_() + , chat_size_max_() + , megagroup_size_max_() + , forwarded_count_max_() + , online_update_period_ms_() + , offline_blur_timeout_ms_() + , offline_idle_timeout_ms_() + , online_cloud_timeout_ms_() + , notify_cloud_delay_ms_() + , notify_default_delay_ms_() + , push_chat_period_ms_() + , push_chat_limit_() + , saved_gifs_limit_() + , edit_time_limit_() + , revoke_time_limit_() + , revoke_pm_time_limit_() + , rating_e_decay_() + , stickers_recent_limit_() + , stickers_faved_limit_() + , channels_read_media_period_() + , tmp_sessions_() + , pinned_dialogs_count_max_() + , pinned_infolder_count_max_() + , call_receive_timeout_ms_() + , call_ring_timeout_ms_() + , call_connect_timeout_ms_() + , call_packet_timeout_ms_() + , me_url_prefix_() + , autoupdate_url_prefix_() + , gif_search_username_() + , venue_search_username_() + , img_search_username_() + , static_maps_provider_() + , caption_length_max_() + , message_length_max_() + , webfile_dc_id_() + , suggested_lang_code_() + , lang_pack_version_() + , base_lang_pack_version_() + , reactions_default_() +{} + +const std::int32_t config::ID; + +object_ptr<config> config::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<config> res = make_tl_object<config>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->phonecalls_enabled_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->default_p2p_contacts_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->preload_featured_stickers_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->ignore_phone_entities_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->revoke_pm_inbox_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->blocked_mode_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->pfs_enabled_ = TlFetchTrue::parse(p); } + if (var0 & 16384) { res->force_try_ipv6_ = TlFetchTrue::parse(p); } + res->date_ = TlFetchInt::parse(p); + res->expires_ = TlFetchInt::parse(p); + res->test_mode_ = TlFetchBool::parse(p); + res->this_dc_ = TlFetchInt::parse(p); + res->dc_options_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<dcOption>, 414687501>>, 481674261>::parse(p); + res->dc_txt_domain_name_ = TlFetchString<string>::parse(p); + res->chat_size_max_ = TlFetchInt::parse(p); + res->megagroup_size_max_ = TlFetchInt::parse(p); + res->forwarded_count_max_ = TlFetchInt::parse(p); + res->online_update_period_ms_ = TlFetchInt::parse(p); + res->offline_blur_timeout_ms_ = TlFetchInt::parse(p); + res->offline_idle_timeout_ms_ = TlFetchInt::parse(p); + res->online_cloud_timeout_ms_ = TlFetchInt::parse(p); + res->notify_cloud_delay_ms_ = TlFetchInt::parse(p); + res->notify_default_delay_ms_ = TlFetchInt::parse(p); + res->push_chat_period_ms_ = TlFetchInt::parse(p); + res->push_chat_limit_ = TlFetchInt::parse(p); + res->saved_gifs_limit_ = TlFetchInt::parse(p); + res->edit_time_limit_ = TlFetchInt::parse(p); + res->revoke_time_limit_ = TlFetchInt::parse(p); + res->revoke_pm_time_limit_ = TlFetchInt::parse(p); + res->rating_e_decay_ = TlFetchInt::parse(p); + res->stickers_recent_limit_ = TlFetchInt::parse(p); + res->stickers_faved_limit_ = TlFetchInt::parse(p); + res->channels_read_media_period_ = TlFetchInt::parse(p); + if (var0 & 1) { res->tmp_sessions_ = TlFetchInt::parse(p); } + res->pinned_dialogs_count_max_ = TlFetchInt::parse(p); + res->pinned_infolder_count_max_ = TlFetchInt::parse(p); + res->call_receive_timeout_ms_ = TlFetchInt::parse(p); + res->call_ring_timeout_ms_ = TlFetchInt::parse(p); + res->call_connect_timeout_ms_ = TlFetchInt::parse(p); + res->call_packet_timeout_ms_ = TlFetchInt::parse(p); + res->me_url_prefix_ = TlFetchString<string>::parse(p); + if (var0 & 128) { res->autoupdate_url_prefix_ = TlFetchString<string>::parse(p); } + if (var0 & 512) { res->gif_search_username_ = TlFetchString<string>::parse(p); } + if (var0 & 1024) { res->venue_search_username_ = TlFetchString<string>::parse(p); } + if (var0 & 2048) { res->img_search_username_ = TlFetchString<string>::parse(p); } + if (var0 & 4096) { res->static_maps_provider_ = TlFetchString<string>::parse(p); } + res->caption_length_max_ = TlFetchInt::parse(p); + res->message_length_max_ = TlFetchInt::parse(p); + res->webfile_dc_id_ = TlFetchInt::parse(p); + if (var0 & 4) { res->suggested_lang_code_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->lang_pack_version_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->base_lang_pack_version_ = TlFetchInt::parse(p); } + if (var0 & 32768) { res->reactions_default_ = TlFetchObject<Reaction>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void config::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "config"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("date", date_); + s.store_field("expires", expires_); + s.store_field("test_mode", test_mode_); + s.store_field("this_dc", this_dc_); + { s.store_vector_begin("dc_options", dc_options_.size()); for (const auto &_value : dc_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("dc_txt_domain_name", dc_txt_domain_name_); + s.store_field("chat_size_max", chat_size_max_); + s.store_field("megagroup_size_max", megagroup_size_max_); + s.store_field("forwarded_count_max", forwarded_count_max_); + s.store_field("online_update_period_ms", online_update_period_ms_); + s.store_field("offline_blur_timeout_ms", offline_blur_timeout_ms_); + s.store_field("offline_idle_timeout_ms", offline_idle_timeout_ms_); + s.store_field("online_cloud_timeout_ms", online_cloud_timeout_ms_); + s.store_field("notify_cloud_delay_ms", notify_cloud_delay_ms_); + s.store_field("notify_default_delay_ms", notify_default_delay_ms_); + s.store_field("push_chat_period_ms", push_chat_period_ms_); + s.store_field("push_chat_limit", push_chat_limit_); + s.store_field("saved_gifs_limit", saved_gifs_limit_); + s.store_field("edit_time_limit", edit_time_limit_); + s.store_field("revoke_time_limit", revoke_time_limit_); + s.store_field("revoke_pm_time_limit", revoke_pm_time_limit_); + s.store_field("rating_e_decay", rating_e_decay_); + s.store_field("stickers_recent_limit", stickers_recent_limit_); + s.store_field("stickers_faved_limit", stickers_faved_limit_); + s.store_field("channels_read_media_period", channels_read_media_period_); + if (var0 & 1) { s.store_field("tmp_sessions", tmp_sessions_); } + s.store_field("pinned_dialogs_count_max", pinned_dialogs_count_max_); + s.store_field("pinned_infolder_count_max", pinned_infolder_count_max_); + s.store_field("call_receive_timeout_ms", call_receive_timeout_ms_); + s.store_field("call_ring_timeout_ms", call_ring_timeout_ms_); + s.store_field("call_connect_timeout_ms", call_connect_timeout_ms_); + s.store_field("call_packet_timeout_ms", call_packet_timeout_ms_); + s.store_field("me_url_prefix", me_url_prefix_); + if (var0 & 128) { s.store_field("autoupdate_url_prefix", autoupdate_url_prefix_); } + if (var0 & 512) { s.store_field("gif_search_username", gif_search_username_); } + if (var0 & 1024) { s.store_field("venue_search_username", venue_search_username_); } + if (var0 & 2048) { s.store_field("img_search_username", img_search_username_); } + if (var0 & 4096) { s.store_field("static_maps_provider", static_maps_provider_); } + s.store_field("caption_length_max", caption_length_max_); + s.store_field("message_length_max", message_length_max_); + s.store_field("webfile_dc_id", webfile_dc_id_); + if (var0 & 4) { s.store_field("suggested_lang_code", suggested_lang_code_); } + if (var0 & 4) { s.store_field("lang_pack_version", lang_pack_version_); } + if (var0 & 4) { s.store_field("base_lang_pack_version", base_lang_pack_version_); } + if (var0 & 32768) { s.store_object_field("reactions_default", static_cast<const BaseObject *>(reactions_default_.get())); } + s.store_class_end(); + } +} + +const std::int32_t contact::ID; + +object_ptr<contact> contact::fetch(TlBufferParser &p) { + return make_tl_object<contact>(p); +} + +contact::contact(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , mutual_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void contact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contact"); + s.store_field("user_id", user_id_); + s.store_field("mutual", mutual_); + s.store_class_end(); + } +} + +const std::int32_t contactStatus::ID; + +object_ptr<contactStatus> contactStatus::fetch(TlBufferParser &p) { + return make_tl_object<contactStatus>(p); +} + +contactStatus::contactStatus(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , status_(TlFetchObject<UserStatus>::parse(p)) +#undef FAIL +{} + +void contactStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contactStatus"); + s.store_field("user_id", user_id_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_class_end(); + } +} + +dataJSON::dataJSON(string const &data_) + : data_(data_) +{} + +const std::int32_t dataJSON::ID; + +object_ptr<dataJSON> dataJSON::fetch(TlBufferParser &p) { + return make_tl_object<dataJSON>(p); +} + +dataJSON::dataJSON(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : data_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void dataJSON::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(data_, s); +} + +void dataJSON::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(data_, s); +} + +void dataJSON::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dataJSON"); + s.store_field("data", data_); + s.store_class_end(); + } +} + +dcOption::dcOption() + : flags_() + , ipv6_() + , media_only_() + , tcpo_only_() + , cdn_() + , static_() + , this_port_only_() + , id_() + , ip_address_() + , port_() + , secret_() +{} + +const std::int32_t dcOption::ID; + +object_ptr<dcOption> dcOption::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<dcOption> res = make_tl_object<dcOption>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->ipv6_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->media_only_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->tcpo_only_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->cdn_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->static_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->this_port_only_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->ip_address_ = TlFetchString<string>::parse(p); + res->port_ = TlFetchInt::parse(p); + if (var0 & 1024) { res->secret_ = TlFetchBytes<bytes>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void dcOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dcOption"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("ip_address", ip_address_); + s.store_field("port", port_); + if (var0 & 1024) { s.store_bytes_field("secret", secret_); } + s.store_class_end(); + } +} + +object_ptr<Dialog> Dialog::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case dialog::ID: + return dialog::fetch(p); + case dialogFolder::ID: + return dialogFolder::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +dialog::dialog() + : flags_() + , pinned_() + , unread_mark_() + , peer_() + , top_message_() + , read_inbox_max_id_() + , read_outbox_max_id_() + , unread_count_() + , unread_mentions_count_() + , unread_reactions_count_() + , notify_settings_() + , pts_() + , draft_() + , folder_id_() +{} + +const std::int32_t dialog::ID; + +object_ptr<Dialog> dialog::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<dialog> res = make_tl_object<dialog>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->pinned_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->unread_mark_ = TlFetchTrue::parse(p); } + res->peer_ = TlFetchObject<Peer>::parse(p); + res->top_message_ = TlFetchInt::parse(p); + res->read_inbox_max_id_ = TlFetchInt::parse(p); + res->read_outbox_max_id_ = TlFetchInt::parse(p); + res->unread_count_ = TlFetchInt::parse(p); + res->unread_mentions_count_ = TlFetchInt::parse(p); + res->unread_reactions_count_ = TlFetchInt::parse(p); + res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p); + if (var0 & 1) { res->pts_ = TlFetchInt::parse(p); } + if (var0 & 2) { res->draft_ = TlFetchObject<DraftMessage>::parse(p); } + if (var0 & 16) { res->folder_id_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void dialog::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dialog"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("top_message", top_message_); + s.store_field("read_inbox_max_id", read_inbox_max_id_); + s.store_field("read_outbox_max_id", read_outbox_max_id_); + s.store_field("unread_count", unread_count_); + s.store_field("unread_mentions_count", unread_mentions_count_); + s.store_field("unread_reactions_count", unread_reactions_count_); + s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get())); + if (var0 & 1) { s.store_field("pts", pts_); } + if (var0 & 2) { s.store_object_field("draft", static_cast<const BaseObject *>(draft_.get())); } + if (var0 & 16) { s.store_field("folder_id", folder_id_); } + s.store_class_end(); + } +} + +dialogFolder::dialogFolder() + : flags_() + , pinned_() + , folder_() + , peer_() + , top_message_() + , unread_muted_peers_count_() + , unread_unmuted_peers_count_() + , unread_muted_messages_count_() + , unread_unmuted_messages_count_() +{} + +const std::int32_t dialogFolder::ID; + +object_ptr<Dialog> dialogFolder::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<dialogFolder> res = make_tl_object<dialogFolder>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->pinned_ = TlFetchTrue::parse(p); } + res->folder_ = TlFetchBoxed<TlFetchObject<folder>, -11252123>::parse(p); + res->peer_ = TlFetchObject<Peer>::parse(p); + res->top_message_ = TlFetchInt::parse(p); + res->unread_muted_peers_count_ = TlFetchInt::parse(p); + res->unread_unmuted_peers_count_ = TlFetchInt::parse(p); + res->unread_muted_messages_count_ = TlFetchInt::parse(p); + res->unread_unmuted_messages_count_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void dialogFolder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dialogFolder"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("folder", static_cast<const BaseObject *>(folder_.get())); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("top_message", top_message_); + s.store_field("unread_muted_peers_count", unread_muted_peers_count_); + s.store_field("unread_unmuted_peers_count", unread_unmuted_peers_count_); + s.store_field("unread_muted_messages_count", unread_muted_messages_count_); + s.store_field("unread_unmuted_messages_count", unread_unmuted_messages_count_); + s.store_class_end(); + } +} + +object_ptr<DialogFilter> DialogFilter::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case dialogFilter::ID: + return dialogFilter::fetch(p); + case dialogFilterDefault::ID: + return dialogFilterDefault::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +dialogFilter::dialogFilter() + : flags_() + , contacts_() + , non_contacts_() + , groups_() + , broadcasts_() + , bots_() + , exclude_muted_() + , exclude_read_() + , exclude_archived_() + , id_() + , title_() + , emoticon_() + , pinned_peers_() + , include_peers_() + , exclude_peers_() +{} + +dialogFilter::dialogFilter(int32 flags_, bool contacts_, bool non_contacts_, bool groups_, bool broadcasts_, bool bots_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, int32 id_, string const &title_, string const &emoticon_, array<object_ptr<InputPeer>> &&pinned_peers_, array<object_ptr<InputPeer>> &&include_peers_, array<object_ptr<InputPeer>> &&exclude_peers_) + : flags_(flags_) + , contacts_(contacts_) + , non_contacts_(non_contacts_) + , groups_(groups_) + , broadcasts_(broadcasts_) + , bots_(bots_) + , exclude_muted_(exclude_muted_) + , exclude_read_(exclude_read_) + , exclude_archived_(exclude_archived_) + , id_(id_) + , title_(title_) + , emoticon_(emoticon_) + , pinned_peers_(std::move(pinned_peers_)) + , include_peers_(std::move(include_peers_)) + , exclude_peers_(std::move(exclude_peers_)) +{} + +const std::int32_t dialogFilter::ID; + +object_ptr<DialogFilter> dialogFilter::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<dialogFilter> res = make_tl_object<dialogFilter>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->contacts_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->non_contacts_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->groups_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->broadcasts_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->bots_ = TlFetchTrue::parse(p); } + if (var0 & 2048) { res->exclude_muted_ = TlFetchTrue::parse(p); } + if (var0 & 4096) { res->exclude_read_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->exclude_archived_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->title_ = TlFetchString<string>::parse(p); + if (var0 & 33554432) { res->emoticon_ = TlFetchString<string>::parse(p); } + res->pinned_peers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<InputPeer>>, 481674261>::parse(p); + res->include_peers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<InputPeer>>, 481674261>::parse(p); + res->exclude_peers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<InputPeer>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void dialogFilter::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(id_, s); + TlStoreString::store(title_, s); + if (var0 & 33554432) { TlStoreString::store(emoticon_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(pinned_peers_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(include_peers_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(exclude_peers_, s); +} + +void dialogFilter::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(id_, s); + TlStoreString::store(title_, s); + if (var0 & 33554432) { TlStoreString::store(emoticon_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(pinned_peers_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(include_peers_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(exclude_peers_, s); +} + +void dialogFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dialogFilter"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("title", title_); + if (var0 & 33554432) { s.store_field("emoticon", emoticon_); } + { s.store_vector_begin("pinned_peers", pinned_peers_.size()); for (const auto &_value : pinned_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("include_peers", include_peers_.size()); for (const auto &_value : include_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("exclude_peers", exclude_peers_.size()); for (const auto &_value : exclude_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t dialogFilterDefault::ID; + +object_ptr<DialogFilter> dialogFilterDefault::fetch(TlBufferParser &p) { + return make_tl_object<dialogFilterDefault>(); +} + +void dialogFilterDefault::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void dialogFilterDefault::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void dialogFilterDefault::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dialogFilterDefault"); + s.store_class_end(); + } +} + +const std::int32_t dialogFilterSuggested::ID; + +object_ptr<dialogFilterSuggested> dialogFilterSuggested::fetch(TlBufferParser &p) { + return make_tl_object<dialogFilterSuggested>(p); +} + +dialogFilterSuggested::dialogFilterSuggested(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : filter_(TlFetchObject<DialogFilter>::parse(p)) + , description_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void dialogFilterSuggested::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dialogFilterSuggested"); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("description", description_); + s.store_class_end(); + } +} + +object_ptr<DialogPeer> DialogPeer::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case dialogPeer::ID: + return dialogPeer::fetch(p); + case dialogPeerFolder::ID: + return dialogPeerFolder::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t dialogPeer::ID; + +object_ptr<DialogPeer> dialogPeer::fetch(TlBufferParser &p) { + return make_tl_object<dialogPeer>(p); +} + +dialogPeer::dialogPeer(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) +#undef FAIL +{} + +void dialogPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dialogPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +const std::int32_t dialogPeerFolder::ID; + +object_ptr<DialogPeer> dialogPeerFolder::fetch(TlBufferParser &p) { + return make_tl_object<dialogPeerFolder>(p); +} + +dialogPeerFolder::dialogPeerFolder(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : folder_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void dialogPeerFolder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "dialogPeerFolder"); + s.store_field("folder_id", folder_id_); + s.store_class_end(); + } +} + +object_ptr<Document> Document::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case documentEmpty::ID: + return documentEmpty::fetch(p); + case document::ID: + return document::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t documentEmpty::ID; + +object_ptr<Document> documentEmpty::fetch(TlBufferParser &p) { + return make_tl_object<documentEmpty>(p); +} + +documentEmpty::documentEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void documentEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentEmpty"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +document::document() + : flags_() + , id_() + , access_hash_() + , file_reference_() + , date_() + , mime_type_() + , size_() + , thumbs_() + , video_thumbs_() + , dc_id_() + , attributes_() +{} + +document::document(int32 flags_, int64 id_, int64 access_hash_, bytes &&file_reference_, int32 date_, string const &mime_type_, int64 size_, array<object_ptr<PhotoSize>> &&thumbs_, array<object_ptr<videoSize>> &&video_thumbs_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_) + : flags_(flags_) + , id_(id_) + , access_hash_(access_hash_) + , file_reference_(std::move(file_reference_)) + , date_(date_) + , mime_type_(mime_type_) + , size_(size_) + , thumbs_(std::move(thumbs_)) + , video_thumbs_(std::move(video_thumbs_)) + , dc_id_(dc_id_) + , attributes_(std::move(attributes_)) +{} + +const std::int32_t document::ID; + +object_ptr<Document> document::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<document> res = make_tl_object<document>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->file_reference_ = TlFetchBytes<bytes>::parse(p); + res->date_ = TlFetchInt::parse(p); + res->mime_type_ = TlFetchString<string>::parse(p); + res->size_ = TlFetchLong::parse(p); + if (var0 & 1) { res->thumbs_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhotoSize>>, 481674261>::parse(p); } + if (var0 & 2) { res->video_thumbs_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<videoSize>, -567037804>>, 481674261>::parse(p); } + res->dc_id_ = TlFetchInt::parse(p); + res->attributes_ = TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void document::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "document"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_bytes_field("file_reference", file_reference_); + s.store_field("date", date_); + s.store_field("mime_type", mime_type_); + s.store_field("size", size_); + if (var0 & 1) { { s.store_vector_begin("thumbs", thumbs_.size()); for (const auto &_value : thumbs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 2) { { s.store_vector_begin("video_thumbs", video_thumbs_.size()); for (const auto &_value : video_thumbs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_field("dc_id", dc_id_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<DocumentAttribute> DocumentAttribute::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case documentAttributeImageSize::ID: + return documentAttributeImageSize::fetch(p); + case documentAttributeAnimated::ID: + return documentAttributeAnimated::fetch(p); + case documentAttributeSticker::ID: + return documentAttributeSticker::fetch(p); + case documentAttributeVideo::ID: + return documentAttributeVideo::fetch(p); + case documentAttributeAudio::ID: + return documentAttributeAudio::fetch(p); + case documentAttributeFilename::ID: + return documentAttributeFilename::fetch(p); + case documentAttributeHasStickers::ID: + return documentAttributeHasStickers::fetch(p); + case documentAttributeCustomEmoji::ID: + return documentAttributeCustomEmoji::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +documentAttributeImageSize::documentAttributeImageSize(int32 w_, int32 h_) + : w_(w_) + , h_(h_) +{} + +const std::int32_t documentAttributeImageSize::ID; + +object_ptr<DocumentAttribute> documentAttributeImageSize::fetch(TlBufferParser &p) { + return make_tl_object<documentAttributeImageSize>(p); +} + +documentAttributeImageSize::documentAttributeImageSize(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void documentAttributeImageSize::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeImageSize::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeImageSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeImageSize"); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_class_end(); + } +} + +const std::int32_t documentAttributeAnimated::ID; + +object_ptr<DocumentAttribute> documentAttributeAnimated::fetch(TlBufferParser &p) { + return make_tl_object<documentAttributeAnimated>(); +} + +void documentAttributeAnimated::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void documentAttributeAnimated::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void documentAttributeAnimated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeAnimated"); + s.store_class_end(); + } +} + +documentAttributeSticker::documentAttributeSticker() + : flags_() + , mask_() + , alt_() + , stickerset_() + , mask_coords_() +{} + +documentAttributeSticker::documentAttributeSticker(int32 flags_, bool mask_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_, object_ptr<maskCoords> &&mask_coords_) + : flags_(flags_) + , mask_(mask_) + , alt_(alt_) + , stickerset_(std::move(stickerset_)) + , mask_coords_(std::move(mask_coords_)) +{} + +const std::int32_t documentAttributeSticker::ID; + +object_ptr<DocumentAttribute> documentAttributeSticker::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<documentAttributeSticker> res = make_tl_object<documentAttributeSticker>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->mask_ = TlFetchTrue::parse(p); } + res->alt_ = TlFetchString<string>::parse(p); + res->stickerset_ = TlFetchObject<InputStickerSet>::parse(p); + if (var0 & 1) { res->mask_coords_ = TlFetchBoxed<TlFetchObject<maskCoords>, -1361650766>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void documentAttributeSticker::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(alt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); } +} + +void documentAttributeSticker::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(alt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); } +} + +void documentAttributeSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeSticker"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("alt", alt_); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + if (var0 & 1) { s.store_object_field("mask_coords", static_cast<const BaseObject *>(mask_coords_.get())); } + s.store_class_end(); + } +} + +documentAttributeVideo::documentAttributeVideo() + : flags_() + , round_message_() + , supports_streaming_() + , duration_() + , w_() + , h_() +{} + +documentAttributeVideo::documentAttributeVideo(int32 flags_, bool round_message_, bool supports_streaming_, int32 duration_, int32 w_, int32 h_) + : flags_(flags_) + , round_message_(round_message_) + , supports_streaming_(supports_streaming_) + , duration_(duration_) + , w_(w_) + , h_(h_) +{} + +const std::int32_t documentAttributeVideo::ID; + +object_ptr<DocumentAttribute> documentAttributeVideo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<documentAttributeVideo> res = make_tl_object<documentAttributeVideo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->round_message_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->supports_streaming_ = TlFetchTrue::parse(p); } + res->duration_ = TlFetchInt::parse(p); + res->w_ = TlFetchInt::parse(p); + res->h_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void documentAttributeVideo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeVideo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); +} + +void documentAttributeVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeVideo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("duration", duration_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_class_end(); + } +} + +documentAttributeAudio::documentAttributeAudio() + : flags_() + , voice_() + , duration_() + , title_() + , performer_() + , waveform_() +{} + +documentAttributeAudio::documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_) + : flags_(flags_) + , voice_(voice_) + , duration_(duration_) + , title_(title_) + , performer_(performer_) + , waveform_(std::move(waveform_)) +{} + +const std::int32_t documentAttributeAudio::ID; + +object_ptr<DocumentAttribute> documentAttributeAudio::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<documentAttributeAudio> res = make_tl_object<documentAttributeAudio>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1024) { res->voice_ = TlFetchTrue::parse(p); } + res->duration_ = TlFetchInt::parse(p); + if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->performer_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->waveform_ = TlFetchBytes<bytes>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void documentAttributeAudio::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreString::store(performer_, s); } + if (var0 & 4) { TlStoreString::store(waveform_, s); } +} + +void documentAttributeAudio::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(duration_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreString::store(performer_, s); } + if (var0 & 4) { TlStoreString::store(waveform_, s); } +} + +void documentAttributeAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeAudio"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("duration", duration_); + if (var0 & 1) { s.store_field("title", title_); } + if (var0 & 2) { s.store_field("performer", performer_); } + if (var0 & 4) { s.store_bytes_field("waveform", waveform_); } + s.store_class_end(); + } +} + +documentAttributeFilename::documentAttributeFilename(string const &file_name_) + : file_name_(file_name_) +{} + +const std::int32_t documentAttributeFilename::ID; + +object_ptr<DocumentAttribute> documentAttributeFilename::fetch(TlBufferParser &p) { + return make_tl_object<documentAttributeFilename>(p); +} + +documentAttributeFilename::documentAttributeFilename(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : file_name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void documentAttributeFilename::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(file_name_, s); +} + +void documentAttributeFilename::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(file_name_, s); +} + +void documentAttributeFilename::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeFilename"); + s.store_field("file_name", file_name_); + s.store_class_end(); + } +} + +const std::int32_t documentAttributeHasStickers::ID; + +object_ptr<DocumentAttribute> documentAttributeHasStickers::fetch(TlBufferParser &p) { + return make_tl_object<documentAttributeHasStickers>(); +} + +void documentAttributeHasStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void documentAttributeHasStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void documentAttributeHasStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeHasStickers"); + s.store_class_end(); + } +} + +documentAttributeCustomEmoji::documentAttributeCustomEmoji() + : flags_() + , free_() + , alt_() + , stickerset_() +{} + +documentAttributeCustomEmoji::documentAttributeCustomEmoji(int32 flags_, bool free_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_) + : flags_(flags_) + , free_(free_) + , alt_(alt_) + , stickerset_(std::move(stickerset_)) +{} + +const std::int32_t documentAttributeCustomEmoji::ID; + +object_ptr<DocumentAttribute> documentAttributeCustomEmoji::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<documentAttributeCustomEmoji> res = make_tl_object<documentAttributeCustomEmoji>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->free_ = TlFetchTrue::parse(p); } + res->alt_ = TlFetchString<string>::parse(p); + res->stickerset_ = TlFetchObject<InputStickerSet>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void documentAttributeCustomEmoji::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(alt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void documentAttributeCustomEmoji::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(alt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void documentAttributeCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "documentAttributeCustomEmoji"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("alt", alt_); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_class_end(); + } +} + +object_ptr<DraftMessage> DraftMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case draftMessageEmpty::ID: + return draftMessageEmpty::fetch(p); + case draftMessage::ID: + return draftMessage::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +draftMessageEmpty::draftMessageEmpty() + : flags_() + , date_() +{} + +const std::int32_t draftMessageEmpty::ID; + +object_ptr<DraftMessage> draftMessageEmpty::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<draftMessageEmpty> res = make_tl_object<draftMessageEmpty>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->date_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void draftMessageEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "draftMessageEmpty"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("date", date_); } + s.store_class_end(); + } +} + +draftMessage::draftMessage() + : flags_() + , no_webpage_() + , reply_to_msg_id_() + , message_() + , entities_() + , date_() +{} + +const std::int32_t draftMessage::ID; + +object_ptr<DraftMessage> draftMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<draftMessage> res = make_tl_object<draftMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->no_webpage_ = TlFetchTrue::parse(p); } + if (var0 & 1) { res->reply_to_msg_id_ = TlFetchInt::parse(p); } + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 8) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + res->date_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void draftMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "draftMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + s.store_field("message", message_); + if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_field("date", date_); + s.store_class_end(); + } +} + +emailVerificationCode::emailVerificationCode(string const &code_) + : code_(code_) +{} + +const std::int32_t emailVerificationCode::ID; + +void emailVerificationCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(code_, s); +} + +void emailVerificationCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(code_, s); +} + +void emailVerificationCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailVerificationCode"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +emailVerificationGoogle::emailVerificationGoogle(string const &token_) + : token_(token_) +{} + +const std::int32_t emailVerificationGoogle::ID; + +void emailVerificationGoogle::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(token_, s); +} + +void emailVerificationGoogle::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(token_, s); +} + +void emailVerificationGoogle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailVerificationGoogle"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +emailVerificationApple::emailVerificationApple(string const &token_) + : token_(token_) +{} + +const std::int32_t emailVerificationApple::ID; + +void emailVerificationApple::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(token_, s); +} + +void emailVerificationApple::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(token_, s); +} + +void emailVerificationApple::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailVerificationApple"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +emailVerifyPurposeLoginSetup::emailVerifyPurposeLoginSetup(string const &phone_number_, string const &phone_code_hash_) + : phone_number_(phone_number_) + , phone_code_hash_(phone_code_hash_) +{} + +const std::int32_t emailVerifyPurposeLoginSetup::ID; + +void emailVerifyPurposeLoginSetup::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); +} + +void emailVerifyPurposeLoginSetup::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); +} + +void emailVerifyPurposeLoginSetup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailVerifyPurposeLoginSetup"); + s.store_field("phone_number", phone_number_); + s.store_field("phone_code_hash", phone_code_hash_); + s.store_class_end(); + } +} + +const std::int32_t emailVerifyPurposeLoginChange::ID; + +void emailVerifyPurposeLoginChange::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void emailVerifyPurposeLoginChange::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void emailVerifyPurposeLoginChange::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailVerifyPurposeLoginChange"); + s.store_class_end(); + } +} + +const std::int32_t emailVerifyPurposePassport::ID; + +void emailVerifyPurposePassport::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void emailVerifyPurposePassport::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void emailVerifyPurposePassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emailVerifyPurposePassport"); + s.store_class_end(); + } +} + +object_ptr<EmojiKeyword> EmojiKeyword::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case emojiKeyword::ID: + return emojiKeyword::fetch(p); + case emojiKeywordDeleted::ID: + return emojiKeywordDeleted::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t emojiKeyword::ID; + +object_ptr<EmojiKeyword> emojiKeyword::fetch(TlBufferParser &p) { + return make_tl_object<emojiKeyword>(p); +} + +emojiKeyword::emojiKeyword(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : keyword_(TlFetchString<string>::parse(p)) + , emoticons_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p)) +#undef FAIL +{} + +void emojiKeyword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiKeyword"); + s.store_field("keyword", keyword_); + { s.store_vector_begin("emoticons", emoticons_.size()); for (const auto &_value : emoticons_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t emojiKeywordDeleted::ID; + +object_ptr<EmojiKeyword> emojiKeywordDeleted::fetch(TlBufferParser &p) { + return make_tl_object<emojiKeywordDeleted>(p); +} + +emojiKeywordDeleted::emojiKeywordDeleted(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : keyword_(TlFetchString<string>::parse(p)) + , emoticons_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p)) +#undef FAIL +{} + +void emojiKeywordDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiKeywordDeleted"); + s.store_field("keyword", keyword_); + { s.store_vector_begin("emoticons", emoticons_.size()); for (const auto &_value : emoticons_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t emojiKeywordsDifference::ID; + +object_ptr<emojiKeywordsDifference> emojiKeywordsDifference::fetch(TlBufferParser &p) { + return make_tl_object<emojiKeywordsDifference>(p); +} + +emojiKeywordsDifference::emojiKeywordsDifference(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : lang_code_(TlFetchString<string>::parse(p)) + , from_version_(TlFetchInt::parse(p)) + , version_(TlFetchInt::parse(p)) + , keywords_(TlFetchBoxed<TlFetchVector<TlFetchObject<EmojiKeyword>>, 481674261>::parse(p)) +#undef FAIL +{} + +void emojiKeywordsDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiKeywordsDifference"); + s.store_field("lang_code", lang_code_); + s.store_field("from_version", from_version_); + s.store_field("version", version_); + { s.store_vector_begin("keywords", keywords_.size()); for (const auto &_value : keywords_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t emojiLanguage::ID; + +object_ptr<emojiLanguage> emojiLanguage::fetch(TlBufferParser &p) { + return make_tl_object<emojiLanguage>(p); +} + +emojiLanguage::emojiLanguage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : lang_code_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void emojiLanguage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiLanguage"); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +object_ptr<EmojiStatus> EmojiStatus::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case emojiStatusEmpty::ID: + return emojiStatusEmpty::fetch(p); + case emojiStatus::ID: + return emojiStatus::fetch(p); + case emojiStatusUntil::ID: + return emojiStatusUntil::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t emojiStatusEmpty::ID; + +object_ptr<EmojiStatus> emojiStatusEmpty::fetch(TlBufferParser &p) { + return make_tl_object<emojiStatusEmpty>(); +} + +void emojiStatusEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void emojiStatusEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void emojiStatusEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiStatusEmpty"); + s.store_class_end(); + } +} + +emojiStatus::emojiStatus(int64 document_id_) + : document_id_(document_id_) +{} + +const std::int32_t emojiStatus::ID; + +object_ptr<EmojiStatus> emojiStatus::fetch(TlBufferParser &p) { + return make_tl_object<emojiStatus>(p); +} + +emojiStatus::emojiStatus(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : document_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void emojiStatus::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(document_id_, s); +} + +void emojiStatus::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(document_id_, s); +} + +void emojiStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiStatus"); + s.store_field("document_id", document_id_); + s.store_class_end(); + } +} + +emojiStatusUntil::emojiStatusUntil(int64 document_id_, int32 until_) + : document_id_(document_id_) + , until_(until_) +{} + +const std::int32_t emojiStatusUntil::ID; + +object_ptr<EmojiStatus> emojiStatusUntil::fetch(TlBufferParser &p) { + return make_tl_object<emojiStatusUntil>(p); +} + +emojiStatusUntil::emojiStatusUntil(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : document_id_(TlFetchLong::parse(p)) + , until_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void emojiStatusUntil::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(document_id_, s); + TlStoreBinary::store(until_, s); +} + +void emojiStatusUntil::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(document_id_, s); + TlStoreBinary::store(until_, s); +} + +void emojiStatusUntil::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiStatusUntil"); + s.store_field("document_id", document_id_); + s.store_field("until", until_); + s.store_class_end(); + } +} + +const std::int32_t emojiURL::ID; + +object_ptr<emojiURL> emojiURL::fetch(TlBufferParser &p) { + return make_tl_object<emojiURL>(p); +} + +emojiURL::emojiURL(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void emojiURL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "emojiURL"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +object_ptr<EncryptedChat> EncryptedChat::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case encryptedChatEmpty::ID: + return encryptedChatEmpty::fetch(p); + case encryptedChatWaiting::ID: + return encryptedChatWaiting::fetch(p); + case encryptedChatRequested::ID: + return encryptedChatRequested::fetch(p); + case encryptedChat::ID: + return encryptedChat::fetch(p); + case encryptedChatDiscarded::ID: + return encryptedChatDiscarded::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t encryptedChatEmpty::ID; + +object_ptr<EncryptedChat> encryptedChatEmpty::fetch(TlBufferParser &p) { + return make_tl_object<encryptedChatEmpty>(p); +} + +encryptedChatEmpty::encryptedChatEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void encryptedChatEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedChatEmpty"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +encryptedChatWaiting::encryptedChatWaiting(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_) + : id_(id_) + , access_hash_(access_hash_) + , date_(date_) + , admin_id_(admin_id_) + , participant_id_(participant_id_) +{} + +const std::int32_t encryptedChatWaiting::ID; + +object_ptr<EncryptedChat> encryptedChatWaiting::fetch(TlBufferParser &p) { + return make_tl_object<encryptedChatWaiting>(p); +} + +encryptedChatWaiting::encryptedChatWaiting(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchInt::parse(p)) + , access_hash_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) + , admin_id_(TlFetchLong::parse(p)) + , participant_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void encryptedChatWaiting::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedChatWaiting"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("admin_id", admin_id_); + s.store_field("participant_id", participant_id_); + s.store_class_end(); + } +} + +encryptedChatRequested::encryptedChatRequested() + : flags_() + , folder_id_() + , id_() + , access_hash_() + , date_() + , admin_id_() + , participant_id_() + , g_a_() +{} + +encryptedChatRequested::encryptedChatRequested(int32 flags_, int32 folder_id_, int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_) + : flags_(flags_) + , folder_id_(folder_id_) + , id_(id_) + , access_hash_(access_hash_) + , date_(date_) + , admin_id_(admin_id_) + , participant_id_(participant_id_) + , g_a_(std::move(g_a_)) +{} + +const std::int32_t encryptedChatRequested::ID; + +object_ptr<EncryptedChat> encryptedChatRequested::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<encryptedChatRequested> res = make_tl_object<encryptedChatRequested>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->folder_id_ = TlFetchInt::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->admin_id_ = TlFetchLong::parse(p); + res->participant_id_ = TlFetchLong::parse(p); + res->g_a_ = TlFetchBytes<bytes>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void encryptedChatRequested::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedChatRequested"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("folder_id", folder_id_); } + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("admin_id", admin_id_); + s.store_field("participant_id", participant_id_); + s.store_bytes_field("g_a", g_a_); + s.store_class_end(); + } +} + +encryptedChat::encryptedChat(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_or_b_, int64 key_fingerprint_) + : id_(id_) + , access_hash_(access_hash_) + , date_(date_) + , admin_id_(admin_id_) + , participant_id_(participant_id_) + , g_a_or_b_(std::move(g_a_or_b_)) + , key_fingerprint_(key_fingerprint_) +{} + +const std::int32_t encryptedChat::ID; + +object_ptr<EncryptedChat> encryptedChat::fetch(TlBufferParser &p) { + return make_tl_object<encryptedChat>(p); +} + +encryptedChat::encryptedChat(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchInt::parse(p)) + , access_hash_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) + , admin_id_(TlFetchLong::parse(p)) + , participant_id_(TlFetchLong::parse(p)) + , g_a_or_b_(TlFetchBytes<bytes>::parse(p)) + , key_fingerprint_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void encryptedChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedChat"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("admin_id", admin_id_); + s.store_field("participant_id", participant_id_); + s.store_bytes_field("g_a_or_b", g_a_or_b_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_class_end(); + } +} + +encryptedChatDiscarded::encryptedChatDiscarded() + : flags_() + , history_deleted_() + , id_() +{} + +const std::int32_t encryptedChatDiscarded::ID; + +object_ptr<EncryptedChat> encryptedChatDiscarded::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<encryptedChatDiscarded> res = make_tl_object<encryptedChatDiscarded>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->history_deleted_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void encryptedChatDiscarded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedChatDiscarded"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_class_end(); + } +} + +object_ptr<EncryptedFile> EncryptedFile::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case encryptedFileEmpty::ID: + return encryptedFileEmpty::fetch(p); + case encryptedFile::ID: + return encryptedFile::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t encryptedFileEmpty::ID; + +object_ptr<EncryptedFile> encryptedFileEmpty::fetch(TlBufferParser &p) { + return make_tl_object<encryptedFileEmpty>(); +} + +void encryptedFileEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedFileEmpty"); + s.store_class_end(); + } +} + +const std::int32_t encryptedFile::ID; + +object_ptr<EncryptedFile> encryptedFile::fetch(TlBufferParser &p) { + return make_tl_object<encryptedFile>(p); +} + +encryptedFile::encryptedFile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) + , size_(TlFetchLong::parse(p)) + , dc_id_(TlFetchInt::parse(p)) + , key_fingerprint_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void encryptedFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedFile"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("size", size_); + s.store_field("dc_id", dc_id_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_class_end(); + } +} + +object_ptr<EncryptedMessage> EncryptedMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case encryptedMessage::ID: + return encryptedMessage::fetch(p); + case encryptedMessageService::ID: + return encryptedMessageService::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t encryptedMessage::ID; + +object_ptr<EncryptedMessage> encryptedMessage::fetch(TlBufferParser &p) { + return make_tl_object<encryptedMessage>(p); +} + +encryptedMessage::encryptedMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : random_id_(TlFetchLong::parse(p)) + , chat_id_(TlFetchInt::parse(p)) + , date_(TlFetchInt::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) + , file_(TlFetchObject<EncryptedFile>::parse(p)) +#undef FAIL +{} + +void encryptedMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedMessage"); + s.store_field("random_id", random_id_); + s.store_field("chat_id", chat_id_); + s.store_field("date", date_); + s.store_bytes_field("bytes", bytes_); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_class_end(); + } +} + +const std::int32_t encryptedMessageService::ID; + +object_ptr<EncryptedMessage> encryptedMessageService::fetch(TlBufferParser &p) { + return make_tl_object<encryptedMessageService>(p); +} + +encryptedMessageService::encryptedMessageService(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : random_id_(TlFetchLong::parse(p)) + , chat_id_(TlFetchInt::parse(p)) + , date_(TlFetchInt::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void encryptedMessageService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "encryptedMessageService"); + s.store_field("random_id", random_id_); + s.store_field("chat_id", chat_id_); + s.store_field("date", date_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +const std::int32_t error::ID; + +object_ptr<error> error::fetch(TlBufferParser &p) { + return make_tl_object<error>(p); +} + +error::error(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : code_(TlFetchInt::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void error::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "error"); + s.store_field("code", code_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +object_ptr<ExportedChatInvite> ExportedChatInvite::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case chatInviteExported::ID: + return chatInviteExported::fetch(p); + case chatInvitePublicJoinRequests::ID: + return chatInvitePublicJoinRequests::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +chatInviteExported::chatInviteExported() + : flags_() + , revoked_() + , permanent_() + , request_needed_() + , link_() + , admin_id_() + , date_() + , start_date_() + , expire_date_() + , usage_limit_() + , usage_() + , requested_() + , title_() +{} + +const std::int32_t chatInviteExported::ID; + +object_ptr<ExportedChatInvite> chatInviteExported::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<chatInviteExported> res = make_tl_object<chatInviteExported>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->revoked_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->permanent_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->request_needed_ = TlFetchTrue::parse(p); } + res->link_ = TlFetchString<string>::parse(p); + res->admin_id_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + if (var0 & 16) { res->start_date_ = TlFetchInt::parse(p); } + if (var0 & 2) { res->expire_date_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->usage_limit_ = TlFetchInt::parse(p); } + if (var0 & 8) { res->usage_ = TlFetchInt::parse(p); } + if (var0 & 128) { res->requested_ = TlFetchInt::parse(p); } + if (var0 & 256) { res->title_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void chatInviteExported::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInviteExported"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("link", link_); + s.store_field("admin_id", admin_id_); + s.store_field("date", date_); + if (var0 & 16) { s.store_field("start_date", start_date_); } + if (var0 & 2) { s.store_field("expire_date", expire_date_); } + if (var0 & 4) { s.store_field("usage_limit", usage_limit_); } + if (var0 & 8) { s.store_field("usage", usage_); } + if (var0 & 128) { s.store_field("requested", requested_); } + if (var0 & 256) { s.store_field("title", title_); } + s.store_class_end(); + } +} + +const std::int32_t chatInvitePublicJoinRequests::ID; + +object_ptr<ExportedChatInvite> chatInvitePublicJoinRequests::fetch(TlBufferParser &p) { + return make_tl_object<chatInvitePublicJoinRequests>(); +} + +void chatInvitePublicJoinRequests::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "chatInvitePublicJoinRequests"); + s.store_class_end(); + } +} + +const std::int32_t exportedMessageLink::ID; + +object_ptr<exportedMessageLink> exportedMessageLink::fetch(TlBufferParser &p) { + return make_tl_object<exportedMessageLink>(p); +} + +exportedMessageLink::exportedMessageLink(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : link_(TlFetchString<string>::parse(p)) + , html_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void exportedMessageLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "exportedMessageLink"); + s.store_field("link", link_); + s.store_field("html", html_); + s.store_class_end(); + } +} + +const std::int32_t fileHash::ID; + +object_ptr<fileHash> fileHash::fetch(TlBufferParser &p) { + return make_tl_object<fileHash>(p); +} + +fileHash::fileHash(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchLong::parse(p)) + , limit_(TlFetchInt::parse(p)) + , hash_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void fileHash::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "fileHash"); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_bytes_field("hash", hash_); + s.store_class_end(); + } +} + +folder::folder() + : flags_() + , autofill_new_broadcasts_() + , autofill_public_groups_() + , autofill_new_correspondents_() + , id_() + , title_() + , photo_() +{} + +const std::int32_t folder::ID; + +object_ptr<folder> folder::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<folder> res = make_tl_object<folder>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->autofill_new_broadcasts_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->autofill_public_groups_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->autofill_new_correspondents_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->title_ = TlFetchString<string>::parse(p); + if (var0 & 8) { res->photo_ = TlFetchObject<ChatPhoto>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void folder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "folder"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("title", title_); + if (var0 & 8) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + s.store_class_end(); + } +} + +const std::int32_t folderPeer::ID; + +object_ptr<folderPeer> folderPeer::fetch(TlBufferParser &p) { + return make_tl_object<folderPeer>(p); +} + +folderPeer::folderPeer(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , folder_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void folderPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "folderPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("folder_id", folder_id_); + s.store_class_end(); + } +} + +object_ptr<ForumTopic> ForumTopic::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case forumTopicDeleted::ID: + return forumTopicDeleted::fetch(p); + case forumTopic::ID: + return forumTopic::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t forumTopicDeleted::ID; + +object_ptr<ForumTopic> forumTopicDeleted::fetch(TlBufferParser &p) { + return make_tl_object<forumTopicDeleted>(p); +} + +forumTopicDeleted::forumTopicDeleted(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void forumTopicDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "forumTopicDeleted"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +forumTopic::forumTopic() + : flags_() + , my_() + , closed_() + , pinned_() + , id_() + , date_() + , title_() + , icon_color_() + , icon_emoji_id_() + , top_message_() + , read_inbox_max_id_() + , read_outbox_max_id_() + , unread_count_() + , unread_mentions_count_() + , unread_reactions_count_() + , from_id_() + , notify_settings_() + , draft_() +{} + +const std::int32_t forumTopic::ID; + +object_ptr<ForumTopic> forumTopic::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<forumTopic> res = make_tl_object<forumTopic>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->my_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->closed_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->pinned_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->date_ = TlFetchInt::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->icon_color_ = TlFetchInt::parse(p); + if (var0 & 1) { res->icon_emoji_id_ = TlFetchLong::parse(p); } + res->top_message_ = TlFetchInt::parse(p); + res->read_inbox_max_id_ = TlFetchInt::parse(p); + res->read_outbox_max_id_ = TlFetchInt::parse(p); + res->unread_count_ = TlFetchInt::parse(p); + res->unread_mentions_count_ = TlFetchInt::parse(p); + res->unread_reactions_count_ = TlFetchInt::parse(p); + res->from_id_ = TlFetchObject<Peer>::parse(p); + res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p); + if (var0 & 16) { res->draft_ = TlFetchObject<DraftMessage>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void forumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "forumTopic"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("date", date_); + s.store_field("title", title_); + s.store_field("icon_color", icon_color_); + if (var0 & 1) { s.store_field("icon_emoji_id", icon_emoji_id_); } + s.store_field("top_message", top_message_); + s.store_field("read_inbox_max_id", read_inbox_max_id_); + s.store_field("read_outbox_max_id", read_outbox_max_id_); + s.store_field("unread_count", unread_count_); + s.store_field("unread_mentions_count", unread_mentions_count_); + s.store_field("unread_reactions_count", unread_reactions_count_); + s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); + s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get())); + if (var0 & 16) { s.store_object_field("draft", static_cast<const BaseObject *>(draft_.get())); } + s.store_class_end(); + } +} + +game::game() + : flags_() + , id_() + , access_hash_() + , short_name_() + , title_() + , description_() + , photo_() + , document_() +{} + +const std::int32_t game::ID; + +object_ptr<game> game::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<game> res = make_tl_object<game>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->short_name_ = TlFetchString<string>::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->description_ = TlFetchString<string>::parse(p); + res->photo_ = TlFetchObject<Photo>::parse(p); + if (var0 & 1) { res->document_ = TlFetchObject<Document>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void game::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "game"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("short_name", short_name_); + s.store_field("title", title_); + s.store_field("description", description_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + if (var0 & 1) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + s.store_class_end(); + } +} + +object_ptr<GeoPoint> GeoPoint::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case geoPointEmpty::ID: + return geoPointEmpty::fetch(p); + case geoPoint::ID: + return geoPoint::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t geoPointEmpty::ID; + +object_ptr<GeoPoint> geoPointEmpty::fetch(TlBufferParser &p) { + return make_tl_object<geoPointEmpty>(); +} + +void geoPointEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "geoPointEmpty"); + s.store_class_end(); + } +} + +geoPoint::geoPoint() + : flags_() + , long_() + , lat_() + , access_hash_() + , accuracy_radius_() +{} + +const std::int32_t geoPoint::ID; + +object_ptr<GeoPoint> geoPoint::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<geoPoint> res = make_tl_object<geoPoint>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->long_ = TlFetchDouble::parse(p); + res->lat_ = TlFetchDouble::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + if (var0 & 1) { res->accuracy_radius_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void geoPoint::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "geoPoint"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("long", long_); + s.store_field("lat", lat_); + s.store_field("access_hash", access_hash_); + if (var0 & 1) { s.store_field("accuracy_radius", accuracy_radius_); } + s.store_class_end(); + } +} + +globalPrivacySettings::globalPrivacySettings() + : flags_() + , archive_and_mute_new_noncontact_peers_() +{} + +globalPrivacySettings::globalPrivacySettings(int32 flags_, bool archive_and_mute_new_noncontact_peers_) + : flags_(flags_) + , archive_and_mute_new_noncontact_peers_(archive_and_mute_new_noncontact_peers_) +{} + +const std::int32_t globalPrivacySettings::ID; + +object_ptr<globalPrivacySettings> globalPrivacySettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<globalPrivacySettings> res = make_tl_object<globalPrivacySettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->archive_and_mute_new_noncontact_peers_ = TlFetchBool::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void globalPrivacySettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBool::store(archive_and_mute_new_noncontact_peers_, s); } +} + +void globalPrivacySettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBool::store(archive_and_mute_new_noncontact_peers_, s); } +} + +void globalPrivacySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "globalPrivacySettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("archive_and_mute_new_noncontact_peers", archive_and_mute_new_noncontact_peers_); } + s.store_class_end(); + } +} + +object_ptr<GroupCall> GroupCall::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case groupCallDiscarded::ID: + return groupCallDiscarded::fetch(p); + case groupCall::ID: + return groupCall::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t groupCallDiscarded::ID; + +object_ptr<GroupCall> groupCallDiscarded::fetch(TlBufferParser &p) { + return make_tl_object<groupCallDiscarded>(p); +} + +groupCallDiscarded::groupCallDiscarded(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) + , duration_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void groupCallDiscarded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallDiscarded"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("duration", duration_); + s.store_class_end(); + } +} + +groupCall::groupCall() + : flags_() + , join_muted_() + , can_change_join_muted_() + , join_date_asc_() + , schedule_start_subscribed_() + , can_start_video_() + , record_video_active_() + , rtmp_stream_() + , listeners_hidden_() + , id_() + , access_hash_() + , participants_count_() + , title_() + , stream_dc_id_() + , record_start_date_() + , schedule_date_() + , unmuted_video_count_() + , unmuted_video_limit_() + , version_() +{} + +const std::int32_t groupCall::ID; + +object_ptr<GroupCall> groupCall::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<groupCall> res = make_tl_object<groupCall>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->join_muted_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->can_change_join_muted_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->join_date_asc_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->schedule_start_subscribed_ = TlFetchTrue::parse(p); } + if (var0 & 512) { res->can_start_video_ = TlFetchTrue::parse(p); } + if (var0 & 2048) { res->record_video_active_ = TlFetchTrue::parse(p); } + if (var0 & 4096) { res->rtmp_stream_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->listeners_hidden_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->participants_count_ = TlFetchInt::parse(p); + if (var0 & 8) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->stream_dc_id_ = TlFetchInt::parse(p); } + if (var0 & 32) { res->record_start_date_ = TlFetchInt::parse(p); } + if (var0 & 128) { res->schedule_date_ = TlFetchInt::parse(p); } + if (var0 & 1024) { res->unmuted_video_count_ = TlFetchInt::parse(p); } + res->unmuted_video_limit_ = TlFetchInt::parse(p); + res->version_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void groupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCall"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("participants_count", participants_count_); + if (var0 & 8) { s.store_field("title", title_); } + if (var0 & 16) { s.store_field("stream_dc_id", stream_dc_id_); } + if (var0 & 32) { s.store_field("record_start_date", record_start_date_); } + if (var0 & 128) { s.store_field("schedule_date", schedule_date_); } + if (var0 & 1024) { s.store_field("unmuted_video_count", unmuted_video_count_); } + s.store_field("unmuted_video_limit", unmuted_video_limit_); + s.store_field("version", version_); + s.store_class_end(); + } +} + +groupCallParticipant::groupCallParticipant() + : flags_() + , muted_() + , left_() + , can_self_unmute_() + , just_joined_() + , versioned_() + , min_() + , muted_by_you_() + , volume_by_admin_() + , self_() + , video_joined_() + , peer_() + , date_() + , active_date_() + , source_() + , volume_() + , about_() + , raise_hand_rating_() + , video_() + , presentation_() +{} + +const std::int32_t groupCallParticipant::ID; + +object_ptr<groupCallParticipant> groupCallParticipant::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<groupCallParticipant> res = make_tl_object<groupCallParticipant>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->muted_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->left_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->can_self_unmute_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->just_joined_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->versioned_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->min_ = TlFetchTrue::parse(p); } + if (var0 & 512) { res->muted_by_you_ = TlFetchTrue::parse(p); } + if (var0 & 1024) { res->volume_by_admin_ = TlFetchTrue::parse(p); } + if (var0 & 4096) { res->self_ = TlFetchTrue::parse(p); } + if (var0 & 32768) { res->video_joined_ = TlFetchTrue::parse(p); } + res->peer_ = TlFetchObject<Peer>::parse(p); + res->date_ = TlFetchInt::parse(p); + if (var0 & 8) { res->active_date_ = TlFetchInt::parse(p); } + res->source_ = TlFetchInt::parse(p); + if (var0 & 128) { res->volume_ = TlFetchInt::parse(p); } + if (var0 & 2048) { res->about_ = TlFetchString<string>::parse(p); } + if (var0 & 8192) { res->raise_hand_rating_ = TlFetchLong::parse(p); } + if (var0 & 64) { res->video_ = TlFetchBoxed<TlFetchObject<groupCallParticipantVideo>, 1735736008>::parse(p); } + if (var0 & 16384) { res->presentation_ = TlFetchBoxed<TlFetchObject<groupCallParticipantVideo>, 1735736008>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void groupCallParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallParticipant"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("date", date_); + if (var0 & 8) { s.store_field("active_date", active_date_); } + s.store_field("source", source_); + if (var0 & 128) { s.store_field("volume", volume_); } + if (var0 & 2048) { s.store_field("about", about_); } + if (var0 & 8192) { s.store_field("raise_hand_rating", raise_hand_rating_); } + if (var0 & 64) { s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); } + if (var0 & 16384) { s.store_object_field("presentation", static_cast<const BaseObject *>(presentation_.get())); } + s.store_class_end(); + } +} + +groupCallParticipantVideo::groupCallParticipantVideo() + : flags_() + , paused_() + , endpoint_() + , source_groups_() + , audio_source_() +{} + +const std::int32_t groupCallParticipantVideo::ID; + +object_ptr<groupCallParticipantVideo> groupCallParticipantVideo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<groupCallParticipantVideo> res = make_tl_object<groupCallParticipantVideo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->paused_ = TlFetchTrue::parse(p); } + res->endpoint_ = TlFetchString<string>::parse(p); + res->source_groups_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipantVideoSourceGroup>, -592373577>>, 481674261>::parse(p); + if (var0 & 2) { res->audio_source_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void groupCallParticipantVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallParticipantVideo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("endpoint", endpoint_); + { s.store_vector_begin("source_groups", source_groups_.size()); for (const auto &_value : source_groups_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 2) { s.store_field("audio_source", audio_source_); } + s.store_class_end(); + } +} + +const std::int32_t groupCallParticipantVideoSourceGroup::ID; + +object_ptr<groupCallParticipantVideoSourceGroup> groupCallParticipantVideoSourceGroup::fetch(TlBufferParser &p) { + return make_tl_object<groupCallParticipantVideoSourceGroup>(p); +} + +groupCallParticipantVideoSourceGroup::groupCallParticipantVideoSourceGroup(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : semantics_(TlFetchString<string>::parse(p)) + , sources_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) +#undef FAIL +{} + +void groupCallParticipantVideoSourceGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallParticipantVideoSourceGroup"); + s.store_field("semantics", semantics_); + { s.store_vector_begin("sources", sources_.size()); for (const auto &_value : sources_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t groupCallStreamChannel::ID; + +object_ptr<groupCallStreamChannel> groupCallStreamChannel::fetch(TlBufferParser &p) { + return make_tl_object<groupCallStreamChannel>(p); +} + +groupCallStreamChannel::groupCallStreamChannel(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_(TlFetchInt::parse(p)) + , scale_(TlFetchInt::parse(p)) + , last_timestamp_ms_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void groupCallStreamChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "groupCallStreamChannel"); + s.store_field("channel", channel_); + s.store_field("scale", scale_); + s.store_field("last_timestamp_ms", last_timestamp_ms_); + s.store_class_end(); + } +} + +const std::int32_t highScore::ID; + +object_ptr<highScore> highScore::fetch(TlBufferParser &p) { + return make_tl_object<highScore>(p); +} + +highScore::highScore(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : pos_(TlFetchInt::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , score_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void highScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "highScore"); + s.store_field("pos", pos_); + s.store_field("user_id", user_id_); + s.store_field("score", score_); + s.store_class_end(); + } +} + +const std::int32_t importedContact::ID; + +object_ptr<importedContact> importedContact::fetch(TlBufferParser &p) { + return make_tl_object<importedContact>(p); +} + +importedContact::importedContact(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , client_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void importedContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "importedContact"); + s.store_field("user_id", user_id_); + s.store_field("client_id", client_id_); + s.store_class_end(); + } +} + +inlineBotSwitchPM::inlineBotSwitchPM(string const &text_, string const &start_param_) + : text_(text_) + , start_param_(start_param_) +{} + +const std::int32_t inlineBotSwitchPM::ID; + +object_ptr<inlineBotSwitchPM> inlineBotSwitchPM::fetch(TlBufferParser &p) { + return make_tl_object<inlineBotSwitchPM>(p); +} + +inlineBotSwitchPM::inlineBotSwitchPM(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , start_param_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void inlineBotSwitchPM::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(start_param_, s); +} + +void inlineBotSwitchPM::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(start_param_, s); +} + +void inlineBotSwitchPM::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineBotSwitchPM"); + s.store_field("text", text_); + s.store_field("start_param", start_param_); + s.store_class_end(); + } +} + +object_ptr<InlineQueryPeerType> InlineQueryPeerType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inlineQueryPeerTypeSameBotPM::ID: + return inlineQueryPeerTypeSameBotPM::fetch(p); + case inlineQueryPeerTypePM::ID: + return inlineQueryPeerTypePM::fetch(p); + case inlineQueryPeerTypeChat::ID: + return inlineQueryPeerTypeChat::fetch(p); + case inlineQueryPeerTypeMegagroup::ID: + return inlineQueryPeerTypeMegagroup::fetch(p); + case inlineQueryPeerTypeBroadcast::ID: + return inlineQueryPeerTypeBroadcast::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t inlineQueryPeerTypeSameBotPM::ID; + +object_ptr<InlineQueryPeerType> inlineQueryPeerTypeSameBotPM::fetch(TlBufferParser &p) { + return make_tl_object<inlineQueryPeerTypeSameBotPM>(); +} + +void inlineQueryPeerTypeSameBotPM::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryPeerTypeSameBotPM"); + s.store_class_end(); + } +} + +const std::int32_t inlineQueryPeerTypePM::ID; + +object_ptr<InlineQueryPeerType> inlineQueryPeerTypePM::fetch(TlBufferParser &p) { + return make_tl_object<inlineQueryPeerTypePM>(); +} + +void inlineQueryPeerTypePM::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryPeerTypePM"); + s.store_class_end(); + } +} + +const std::int32_t inlineQueryPeerTypeChat::ID; + +object_ptr<InlineQueryPeerType> inlineQueryPeerTypeChat::fetch(TlBufferParser &p) { + return make_tl_object<inlineQueryPeerTypeChat>(); +} + +void inlineQueryPeerTypeChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryPeerTypeChat"); + s.store_class_end(); + } +} + +const std::int32_t inlineQueryPeerTypeMegagroup::ID; + +object_ptr<InlineQueryPeerType> inlineQueryPeerTypeMegagroup::fetch(TlBufferParser &p) { + return make_tl_object<inlineQueryPeerTypeMegagroup>(); +} + +void inlineQueryPeerTypeMegagroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryPeerTypeMegagroup"); + s.store_class_end(); + } +} + +const std::int32_t inlineQueryPeerTypeBroadcast::ID; + +object_ptr<InlineQueryPeerType> inlineQueryPeerTypeBroadcast::fetch(TlBufferParser &p) { + return make_tl_object<inlineQueryPeerTypeBroadcast>(); +} + +void inlineQueryPeerTypeBroadcast::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inlineQueryPeerTypeBroadcast"); + s.store_class_end(); + } +} + +inputAppEvent::inputAppEvent(double time_, string const &type_, int64 peer_, object_ptr<JSONValue> &&data_) + : time_(time_) + , type_(type_) + , peer_(peer_) + , data_(std::move(data_)) +{} + +const std::int32_t inputAppEvent::ID; + +object_ptr<inputAppEvent> inputAppEvent::fetch(TlBufferParser &p) { + return make_tl_object<inputAppEvent>(p); +} + +inputAppEvent::inputAppEvent(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : time_(TlFetchDouble::parse(p)) + , type_(TlFetchString<string>::parse(p)) + , peer_(TlFetchLong::parse(p)) + , data_(TlFetchObject<JSONValue>::parse(p)) +#undef FAIL +{} + +void inputAppEvent::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(time_, s); + TlStoreString::store(type_, s); + TlStoreBinary::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(data_, s); +} + +void inputAppEvent::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(time_, s); + TlStoreString::store(type_, s); + TlStoreBinary::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(data_, s); +} + +void inputAppEvent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputAppEvent"); + s.store_field("time", time_); + s.store_field("type", type_); + s.store_field("peer", peer_); + s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); + s.store_class_end(); + } +} + +inputBotInlineMessageMediaAuto::inputBotInlineMessageMediaAuto(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_) + : flags_(flags_) + , message_(message_) + , entities_(std::move(entities_)) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputBotInlineMessageMediaAuto::ID; + +void inputBotInlineMessageMediaAuto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(message_, s); + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaAuto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(message_, s); + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaAuto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageMediaAuto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("message", message_); + if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +inputBotInlineMessageText::inputBotInlineMessageText(int32 flags_, bool no_webpage_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_) + : flags_(flags_) + , no_webpage_(no_webpage_) + , message_(message_) + , entities_(std::move(entities_)) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputBotInlineMessageText::ID; + +void inputBotInlineMessageText::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(message_, s); + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageText::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(message_, s); + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageText"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("message", message_); + if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +inputBotInlineMessageMediaGeo::inputBotInlineMessageMediaGeo(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_, object_ptr<ReplyMarkup> &&reply_markup_) + : flags_(flags_) + , geo_point_(std::move(geo_point_)) + , heading_(heading_) + , period_(period_) + , proximity_notification_radius_(proximity_notification_radius_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputBotInlineMessageMediaGeo::ID; + +void inputBotInlineMessageMediaGeo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + if (var0 & 1) { TlStoreBinary::store(heading_, s); } + if (var0 & 2) { TlStoreBinary::store(period_, s); } + if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaGeo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + if (var0 & 1) { TlStoreBinary::store(heading_, s); } + if (var0 & 2) { TlStoreBinary::store(period_, s); } + if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaGeo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageMediaGeo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + if (var0 & 1) { s.store_field("heading", heading_); } + if (var0 & 2) { s.store_field("period", period_); } + if (var0 & 8) { s.store_field("proximity_notification_radius", proximity_notification_radius_); } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +inputBotInlineMessageMediaVenue::inputBotInlineMessageMediaVenue(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_, object_ptr<ReplyMarkup> &&reply_markup_) + : flags_(flags_) + , geo_point_(std::move(geo_point_)) + , title_(title_) + , address_(address_) + , provider_(provider_) + , venue_id_(venue_id_) + , venue_type_(venue_type_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputBotInlineMessageMediaVenue::ID; + +void inputBotInlineMessageMediaVenue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreString::store(title_, s); + TlStoreString::store(address_, s); + TlStoreString::store(provider_, s); + TlStoreString::store(venue_id_, s); + TlStoreString::store(venue_type_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaVenue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreString::store(title_, s); + TlStoreString::store(address_, s); + TlStoreString::store(provider_, s); + TlStoreString::store(venue_id_, s); + TlStoreString::store(venue_type_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageMediaVenue"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + s.store_field("title", title_); + s.store_field("address", address_); + s.store_field("provider", provider_); + s.store_field("venue_id", venue_id_); + s.store_field("venue_type", venue_type_); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +inputBotInlineMessageMediaContact::inputBotInlineMessageMediaContact(int32 flags_, string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, object_ptr<ReplyMarkup> &&reply_markup_) + : flags_(flags_) + , phone_number_(phone_number_) + , first_name_(first_name_) + , last_name_(last_name_) + , vcard_(vcard_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputBotInlineMessageMediaContact::ID; + +void inputBotInlineMessageMediaContact::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreString::store(vcard_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaContact::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreString::store(vcard_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageMediaContact"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("phone_number", phone_number_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("vcard", vcard_); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +inputBotInlineMessageGame::inputBotInlineMessageGame(int32 flags_, object_ptr<ReplyMarkup> &&reply_markup_) + : flags_(flags_) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputBotInlineMessageGame::ID; + +void inputBotInlineMessageGame::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageGame::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageGame"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +inputBotInlineMessageMediaInvoice::inputBotInlineMessageMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, object_ptr<ReplyMarkup> &&reply_markup_) + : flags_(flags_) + , title_(title_) + , description_(description_) + , photo_(std::move(photo_)) + , invoice_(std::move(invoice_)) + , payload_(std::move(payload_)) + , provider_(provider_) + , provider_data_(std::move(provider_data_)) + , reply_markup_(std::move(reply_markup_)) +{} + +const std::int32_t inputBotInlineMessageMediaInvoice::ID; + +void inputBotInlineMessageMediaInvoice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(title_, s); + TlStoreString::store(description_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); } + TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s); + TlStoreString::store(payload_, s); + TlStoreString::store(provider_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaInvoice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(title_, s); + TlStoreString::store(description_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); } + TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s); + TlStoreString::store(payload_, s); + TlStoreString::store(provider_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } +} + +void inputBotInlineMessageMediaInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageMediaInvoice"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("title", title_); + s.store_field("description", description_); + if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_bytes_field("payload", payload_); + s.store_field("provider", provider_); + s.store_object_field("provider_data", static_cast<const BaseObject *>(provider_data_.get())); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + s.store_class_end(); + } +} + +object_ptr<InputBotInlineMessageID> InputBotInlineMessageID::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inputBotInlineMessageID::ID: + return inputBotInlineMessageID::fetch(p); + case inputBotInlineMessageID64::ID: + return inputBotInlineMessageID64::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +inputBotInlineMessageID::inputBotInlineMessageID(int32 dc_id_, int64 id_, int64 access_hash_) + : dc_id_(dc_id_) + , id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputBotInlineMessageID::ID; + +object_ptr<InputBotInlineMessageID> inputBotInlineMessageID::fetch(TlBufferParser &p) { + return make_tl_object<inputBotInlineMessageID>(p); +} + +inputBotInlineMessageID::inputBotInlineMessageID(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dc_id_(TlFetchInt::parse(p)) + , id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputBotInlineMessageID::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(dc_id_, s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputBotInlineMessageID::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(dc_id_, s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputBotInlineMessageID::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageID"); + s.store_field("dc_id", dc_id_); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputBotInlineMessageID64::inputBotInlineMessageID64(int32 dc_id_, int64 owner_id_, int32 id_, int64 access_hash_) + : dc_id_(dc_id_) + , owner_id_(owner_id_) + , id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputBotInlineMessageID64::ID; + +object_ptr<InputBotInlineMessageID> inputBotInlineMessageID64::fetch(TlBufferParser &p) { + return make_tl_object<inputBotInlineMessageID64>(p); +} + +inputBotInlineMessageID64::inputBotInlineMessageID64(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dc_id_(TlFetchInt::parse(p)) + , owner_id_(TlFetchLong::parse(p)) + , id_(TlFetchInt::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputBotInlineMessageID64::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(dc_id_, s); + TlStoreBinary::store(owner_id_, s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputBotInlineMessageID64::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(dc_id_, s); + TlStoreBinary::store(owner_id_, s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputBotInlineMessageID64::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineMessageID64"); + s.store_field("dc_id", dc_id_); + s.store_field("owner_id", owner_id_); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputBotInlineResult::inputBotInlineResult(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, string const &url_, object_ptr<inputWebDocument> &&thumb_, object_ptr<inputWebDocument> &&content_, object_ptr<InputBotInlineMessage> &&send_message_) + : flags_(flags_) + , id_(id_) + , type_(type_) + , title_(title_) + , description_(description_) + , url_(url_) + , thumb_(std::move(thumb_)) + , content_(std::move(content_)) + , send_message_(std::move(send_message_)) +{} + +const std::int32_t inputBotInlineResult::ID; + +void inputBotInlineResult::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(id_, s); + TlStoreString::store(type_, s); + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreString::store(description_, s); } + if (var0 & 8) { TlStoreString::store(url_, s); } + if (var0 & 16) { TlStoreBoxed<TlStoreObject, -1678949555>::store(thumb_, s); } + if (var0 & 32) { TlStoreBoxed<TlStoreObject, -1678949555>::store(content_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResult::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(id_, s); + TlStoreString::store(type_, s); + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreString::store(description_, s); } + if (var0 & 8) { TlStoreString::store(url_, s); } + if (var0 & 16) { TlStoreBoxed<TlStoreObject, -1678949555>::store(thumb_, s); } + if (var0 & 32) { TlStoreBoxed<TlStoreObject, -1678949555>::store(content_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineResult"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("type", type_); + if (var0 & 2) { s.store_field("title", title_); } + if (var0 & 4) { s.store_field("description", description_); } + if (var0 & 8) { s.store_field("url", url_); } + if (var0 & 16) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); } + if (var0 & 32) { s.store_object_field("content", static_cast<const BaseObject *>(content_.get())); } + s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get())); + s.store_class_end(); + } +} + +inputBotInlineResultPhoto::inputBotInlineResultPhoto(string const &id_, string const &type_, object_ptr<InputPhoto> &&photo_, object_ptr<InputBotInlineMessage> &&send_message_) + : id_(id_) + , type_(type_) + , photo_(std::move(photo_)) + , send_message_(std::move(send_message_)) +{} + +const std::int32_t inputBotInlineResultPhoto::ID; + +void inputBotInlineResultPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(type_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResultPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(type_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResultPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineResultPhoto"); + s.store_field("id", id_); + s.store_field("type", type_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get())); + s.store_class_end(); + } +} + +inputBotInlineResultDocument::inputBotInlineResultDocument(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, object_ptr<InputDocument> &&document_, object_ptr<InputBotInlineMessage> &&send_message_) + : flags_(flags_) + , id_(id_) + , type_(type_) + , title_(title_) + , description_(description_) + , document_(std::move(document_)) + , send_message_(std::move(send_message_)) +{} + +const std::int32_t inputBotInlineResultDocument::ID; + +void inputBotInlineResultDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(id_, s); + TlStoreString::store(type_, s); + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreString::store(description_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResultDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(id_, s); + TlStoreString::store(type_, s); + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreString::store(description_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResultDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineResultDocument"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("type", type_); + if (var0 & 2) { s.store_field("title", title_); } + if (var0 & 4) { s.store_field("description", description_); } + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get())); + s.store_class_end(); + } +} + +inputBotInlineResultGame::inputBotInlineResultGame(string const &id_, string const &short_name_, object_ptr<InputBotInlineMessage> &&send_message_) + : id_(id_) + , short_name_(short_name_) + , send_message_(std::move(send_message_)) +{} + +const std::int32_t inputBotInlineResultGame::ID; + +void inputBotInlineResultGame::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(short_name_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResultGame::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(short_name_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_message_, s); +} + +void inputBotInlineResultGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputBotInlineResultGame"); + s.store_field("id", id_); + s.store_field("short_name", short_name_); + s.store_object_field("send_message", static_cast<const BaseObject *>(send_message_.get())); + s.store_class_end(); + } +} + +object_ptr<InputChannel> InputChannel::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inputChannelEmpty::ID: + return inputChannelEmpty::fetch(p); + case inputChannel::ID: + return inputChannel::fetch(p); + case inputChannelFromMessage::ID: + return inputChannelFromMessage::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t inputChannelEmpty::ID; + +object_ptr<InputChannel> inputChannelEmpty::fetch(TlBufferParser &p) { + return make_tl_object<inputChannelEmpty>(); +} + +void inputChannelEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputChannelEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputChannelEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChannelEmpty"); + s.store_class_end(); + } +} + +inputChannel::inputChannel(int64 channel_id_, int64 access_hash_) + : channel_id_(channel_id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputChannel::ID; + +object_ptr<InputChannel> inputChannel::fetch(TlBufferParser &p) { + return make_tl_object<inputChannel>(p); +} + +inputChannel::inputChannel(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(channel_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(channel_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChannel"); + s.store_field("channel_id", channel_id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputChannelFromMessage::inputChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , channel_id_(channel_id_) +{} + +const std::int32_t inputChannelFromMessage::ID; + +object_ptr<InputChannel> inputChannelFromMessage::fetch(TlBufferParser &p) { + return make_tl_object<inputChannelFromMessage>(p); +} + +inputChannelFromMessage::inputChannelFromMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<InputPeer>::parse(p)) + , msg_id_(TlFetchInt::parse(p)) + , channel_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputChannelFromMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(channel_id_, s); +} + +void inputChannelFromMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(channel_id_, s); +} + +void inputChannelFromMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChannelFromMessage"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("channel_id", channel_id_); + s.store_class_end(); + } +} + +const std::int32_t inputChatPhotoEmpty::ID; + +void inputChatPhotoEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputChatPhotoEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputChatPhotoEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChatPhotoEmpty"); + s.store_class_end(); + } +} + +inputChatUploadedPhoto::inputChatUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_) + : flags_(flags_) + , file_(std::move(file_)) + , video_(std::move(video_)) + , video_start_ts_(video_start_ts_) +{} + +const std::int32_t inputChatUploadedPhoto::ID; + +void inputChatUploadedPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); } + if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); } +} + +void inputChatUploadedPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); } + if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); } +} + +void inputChatUploadedPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChatUploadedPhoto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); } + if (var0 & 2) { s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); } + if (var0 & 4) { s.store_field("video_start_ts", video_start_ts_); } + s.store_class_end(); + } +} + +inputChatPhoto::inputChatPhoto(object_ptr<InputPhoto> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t inputChatPhoto::ID; + +void inputChatPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputChatPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputChatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputChatPhoto"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +const std::int32_t inputCheckPasswordEmpty::ID; + +void inputCheckPasswordEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputCheckPasswordEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputCheckPasswordEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputCheckPasswordEmpty"); + s.store_class_end(); + } +} + +inputCheckPasswordSRP::inputCheckPasswordSRP(int64 srp_id_, bytes &&A_, bytes &&M1_) + : srp_id_(srp_id_) + , A_(std::move(A_)) + , M1_(std::move(M1_)) +{} + +const std::int32_t inputCheckPasswordSRP::ID; + +void inputCheckPasswordSRP::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(srp_id_, s); + TlStoreString::store(A_, s); + TlStoreString::store(M1_, s); +} + +void inputCheckPasswordSRP::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(srp_id_, s); + TlStoreString::store(A_, s); + TlStoreString::store(M1_, s); +} + +void inputCheckPasswordSRP::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputCheckPasswordSRP"); + s.store_field("srp_id", srp_id_); + s.store_bytes_field("A", A_); + s.store_bytes_field("M1", M1_); + s.store_class_end(); + } +} + +const std::int32_t inputClientProxy::ID; + +void inputClientProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputClientProxy"); + s.store_field("address", address_); + s.store_field("port", port_); + s.store_class_end(); + } +} + +inputPhoneContact::inputPhoneContact(int64 client_id_, string const &phone_, string const &first_name_, string const &last_name_) + : client_id_(client_id_) + , phone_(phone_) + , first_name_(first_name_) + , last_name_(last_name_) +{} + +const std::int32_t inputPhoneContact::ID; + +void inputPhoneContact::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(client_id_, s); + TlStoreString::store(phone_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); +} + +void inputPhoneContact::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(client_id_, s); + TlStoreString::store(phone_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); +} + +void inputPhoneContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPhoneContact"); + s.store_field("client_id", client_id_); + s.store_field("phone", phone_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_class_end(); + } +} + +inputDialogPeer::inputDialogPeer(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t inputDialogPeer::ID; + +void inputDialogPeer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void inputDialogPeer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void inputDialogPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputDialogPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +inputDialogPeerFolder::inputDialogPeerFolder(int32 folder_id_) + : folder_id_(folder_id_) +{} + +const std::int32_t inputDialogPeerFolder::ID; + +void inputDialogPeerFolder::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(folder_id_, s); +} + +void inputDialogPeerFolder::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(folder_id_, s); +} + +void inputDialogPeerFolder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputDialogPeerFolder"); + s.store_field("folder_id", folder_id_); + s.store_class_end(); + } +} + +const std::int32_t inputDocumentEmpty::ID; + +void inputDocumentEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputDocumentEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputDocumentEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputDocumentEmpty"); + s.store_class_end(); + } +} + +inputDocument::inputDocument(int64 id_, int64 access_hash_, bytes &&file_reference_) + : id_(id_) + , access_hash_(access_hash_) + , file_reference_(std::move(file_reference_)) +{} + +const std::int32_t inputDocument::ID; + +void inputDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); +} + +void inputDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); +} + +void inputDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputDocument"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_bytes_field("file_reference", file_reference_); + s.store_class_end(); + } +} + +inputEncryptedChat::inputEncryptedChat(int32 chat_id_, int64 access_hash_) + : chat_id_(chat_id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputEncryptedChat::ID; + +void inputEncryptedChat::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(chat_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputEncryptedChat::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(chat_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputEncryptedChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputEncryptedChat"); + s.store_field("chat_id", chat_id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +const std::int32_t inputEncryptedFileEmpty::ID; + +void inputEncryptedFileEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputEncryptedFileEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputEncryptedFileEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputEncryptedFileEmpty"); + s.store_class_end(); + } +} + +inputEncryptedFileUploaded::inputEncryptedFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, int32 key_fingerprint_) + : id_(id_) + , parts_(parts_) + , md5_checksum_(md5_checksum_) + , key_fingerprint_(key_fingerprint_) +{} + +const std::int32_t inputEncryptedFileUploaded::ID; + +void inputEncryptedFileUploaded::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(md5_checksum_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void inputEncryptedFileUploaded::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(md5_checksum_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void inputEncryptedFileUploaded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputEncryptedFileUploaded"); + s.store_field("id", id_); + s.store_field("parts", parts_); + s.store_field("md5_checksum", md5_checksum_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_class_end(); + } +} + +inputEncryptedFile::inputEncryptedFile(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputEncryptedFile::ID; + +void inputEncryptedFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputEncryptedFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputEncryptedFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputEncryptedFile"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputEncryptedFileBigUploaded::inputEncryptedFileBigUploaded(int64 id_, int32 parts_, int32 key_fingerprint_) + : id_(id_) + , parts_(parts_) + , key_fingerprint_(key_fingerprint_) +{} + +const std::int32_t inputEncryptedFileBigUploaded::ID; + +void inputEncryptedFileBigUploaded::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void inputEncryptedFileBigUploaded::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void inputEncryptedFileBigUploaded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputEncryptedFileBigUploaded"); + s.store_field("id", id_); + s.store_field("parts", parts_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_class_end(); + } +} + +inputFile::inputFile(int64 id_, int32 parts_, string const &name_, string const &md5_checksum_) + : id_(id_) + , parts_(parts_) + , name_(name_) + , md5_checksum_(md5_checksum_) +{} + +const std::int32_t inputFile::ID; + +void inputFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(name_, s); + TlStoreString::store(md5_checksum_, s); +} + +void inputFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(name_, s); + TlStoreString::store(md5_checksum_, s); +} + +void inputFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFile"); + s.store_field("id", id_); + s.store_field("parts", parts_); + s.store_field("name", name_); + s.store_field("md5_checksum", md5_checksum_); + s.store_class_end(); + } +} + +inputFileBig::inputFileBig(int64 id_, int32 parts_, string const &name_) + : id_(id_) + , parts_(parts_) + , name_(name_) +{} + +const std::int32_t inputFileBig::ID; + +void inputFileBig::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(name_, s); +} + +void inputFileBig::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(name_, s); +} + +void inputFileBig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFileBig"); + s.store_field("id", id_); + s.store_field("parts", parts_); + s.store_field("name", name_); + s.store_class_end(); + } +} + +inputPeerPhotoFileLocationLegacy::inputPeerPhotoFileLocationLegacy(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 volume_id_, int32 local_id_) + : flags_(flags_) + , big_(big_) + , peer_(std::move(peer_)) + , volume_id_(volume_id_) + , local_id_(local_id_) +{} + +const std::int32_t inputPeerPhotoFileLocationLegacy::ID; + +void inputPeerPhotoFileLocationLegacy::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); +} + +void inputPeerPhotoFileLocationLegacy::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); +} + +void inputPeerPhotoFileLocationLegacy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerPhotoFileLocationLegacy"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("volume_id", volume_id_); + s.store_field("local_id", local_id_); + s.store_class_end(); + } +} + +inputStickerSetThumbLegacy::inputStickerSetThumbLegacy(object_ptr<InputStickerSet> &&stickerset_, int64 volume_id_, int32 local_id_) + : stickerset_(std::move(stickerset_)) + , volume_id_(volume_id_) + , local_id_(local_id_) +{} + +const std::int32_t inputStickerSetThumbLegacy::ID; + +void inputStickerSetThumbLegacy::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); +} + +void inputStickerSetThumbLegacy::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); +} + +void inputStickerSetThumbLegacy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetThumbLegacy"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_field("volume_id", volume_id_); + s.store_field("local_id", local_id_); + s.store_class_end(); + } +} + +inputFileLocation::inputFileLocation(int64 volume_id_, int32 local_id_, int64 secret_, bytes &&file_reference_) + : volume_id_(volume_id_) + , local_id_(local_id_) + , secret_(secret_) + , file_reference_(std::move(file_reference_)) +{} + +const std::int32_t inputFileLocation::ID; + +void inputFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); + TlStoreString::store(file_reference_, s); +} + +void inputFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); + TlStoreString::store(file_reference_, s); +} + +void inputFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFileLocation"); + s.store_field("volume_id", volume_id_); + s.store_field("local_id", local_id_); + s.store_field("secret", secret_); + s.store_bytes_field("file_reference", file_reference_); + s.store_class_end(); + } +} + +inputEncryptedFileLocation::inputEncryptedFileLocation(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputEncryptedFileLocation::ID; + +void inputEncryptedFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputEncryptedFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputEncryptedFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputEncryptedFileLocation"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputDocumentFileLocation::inputDocumentFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_) + : id_(id_) + , access_hash_(access_hash_) + , file_reference_(std::move(file_reference_)) + , thumb_size_(thumb_size_) +{} + +const std::int32_t inputDocumentFileLocation::ID; + +void inputDocumentFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); + TlStoreString::store(thumb_size_, s); +} + +void inputDocumentFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); + TlStoreString::store(thumb_size_, s); +} + +void inputDocumentFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputDocumentFileLocation"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_bytes_field("file_reference", file_reference_); + s.store_field("thumb_size", thumb_size_); + s.store_class_end(); + } +} + +inputSecureFileLocation::inputSecureFileLocation(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputSecureFileLocation::ID; + +void inputSecureFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputSecureFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputSecureFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputSecureFileLocation"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +const std::int32_t inputTakeoutFileLocation::ID; + +void inputTakeoutFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputTakeoutFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputTakeoutFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputTakeoutFileLocation"); + s.store_class_end(); + } +} + +inputPhotoFileLocation::inputPhotoFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_) + : id_(id_) + , access_hash_(access_hash_) + , file_reference_(std::move(file_reference_)) + , thumb_size_(thumb_size_) +{} + +const std::int32_t inputPhotoFileLocation::ID; + +void inputPhotoFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); + TlStoreString::store(thumb_size_, s); +} + +void inputPhotoFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); + TlStoreString::store(thumb_size_, s); +} + +void inputPhotoFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPhotoFileLocation"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_bytes_field("file_reference", file_reference_); + s.store_field("thumb_size", thumb_size_); + s.store_class_end(); + } +} + +inputPhotoLegacyFileLocation::inputPhotoLegacyFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, int64 volume_id_, int32 local_id_, int64 secret_) + : id_(id_) + , access_hash_(access_hash_) + , file_reference_(std::move(file_reference_)) + , volume_id_(volume_id_) + , local_id_(local_id_) + , secret_(secret_) +{} + +const std::int32_t inputPhotoLegacyFileLocation::ID; + +void inputPhotoLegacyFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); +} + +void inputPhotoLegacyFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); + TlStoreBinary::store(volume_id_, s); + TlStoreBinary::store(local_id_, s); + TlStoreBinary::store(secret_, s); +} + +void inputPhotoLegacyFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPhotoLegacyFileLocation"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_bytes_field("file_reference", file_reference_); + s.store_field("volume_id", volume_id_); + s.store_field("local_id", local_id_); + s.store_field("secret", secret_); + s.store_class_end(); + } +} + +inputPeerPhotoFileLocation::inputPeerPhotoFileLocation(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 photo_id_) + : flags_(flags_) + , big_(big_) + , peer_(std::move(peer_)) + , photo_id_(photo_id_) +{} + +const std::int32_t inputPeerPhotoFileLocation::ID; + +void inputPeerPhotoFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(photo_id_, s); +} + +void inputPeerPhotoFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(photo_id_, s); +} + +void inputPeerPhotoFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerPhotoFileLocation"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("photo_id", photo_id_); + s.store_class_end(); + } +} + +inputStickerSetThumb::inputStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, int32 thumb_version_) + : stickerset_(std::move(stickerset_)) + , thumb_version_(thumb_version_) +{} + +const std::int32_t inputStickerSetThumb::ID; + +void inputStickerSetThumb::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBinary::store(thumb_version_, s); +} + +void inputStickerSetThumb::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBinary::store(thumb_version_, s); +} + +void inputStickerSetThumb::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetThumb"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_field("thumb_version", thumb_version_); + s.store_class_end(); + } +} + +inputGroupCallStream::inputGroupCallStream(int32 flags_, object_ptr<inputGroupCall> &&call_, int64 time_ms_, int32 scale_, int32 video_channel_, int32 video_quality_) + : flags_(flags_) + , call_(std::move(call_)) + , time_ms_(time_ms_) + , scale_(scale_) + , video_channel_(video_channel_) + , video_quality_(video_quality_) +{} + +const std::int32_t inputGroupCallStream::ID; + +void inputGroupCallStream::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBinary::store(time_ms_, s); + TlStoreBinary::store(scale_, s); + if (var0 & 1) { TlStoreBinary::store(video_channel_, s); } + if (var0 & 1) { TlStoreBinary::store(video_quality_, s); } +} + +void inputGroupCallStream::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBinary::store(time_ms_, s); + TlStoreBinary::store(scale_, s); + if (var0 & 1) { TlStoreBinary::store(video_channel_, s); } + if (var0 & 1) { TlStoreBinary::store(video_quality_, s); } +} + +void inputGroupCallStream::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputGroupCallStream"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_field("time_ms", time_ms_); + s.store_field("scale", scale_); + if (var0 & 1) { s.store_field("video_channel", video_channel_); } + if (var0 & 1) { s.store_field("video_quality", video_quality_); } + s.store_class_end(); + } +} + +inputFolderPeer::inputFolderPeer(object_ptr<InputPeer> &&peer_, int32 folder_id_) + : peer_(std::move(peer_)) + , folder_id_(folder_id_) +{} + +const std::int32_t inputFolderPeer::ID; + +void inputFolderPeer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(folder_id_, s); +} + +void inputFolderPeer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(folder_id_, s); +} + +void inputFolderPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputFolderPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("folder_id", folder_id_); + s.store_class_end(); + } +} + +inputGameID::inputGameID(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputGameID::ID; + +void inputGameID::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputGameID::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputGameID::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputGameID"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputGameShortName::inputGameShortName(object_ptr<InputUser> &&bot_id_, string const &short_name_) + : bot_id_(std::move(bot_id_)) + , short_name_(short_name_) +{} + +const std::int32_t inputGameShortName::ID; + +void inputGameShortName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_id_, s); + TlStoreString::store(short_name_, s); +} + +void inputGameShortName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_id_, s); + TlStoreString::store(short_name_, s); +} + +void inputGameShortName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputGameShortName"); + s.store_object_field("bot_id", static_cast<const BaseObject *>(bot_id_.get())); + s.store_field("short_name", short_name_); + s.store_class_end(); + } +} + +const std::int32_t inputGeoPointEmpty::ID; + +void inputGeoPointEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputGeoPointEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputGeoPointEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputGeoPointEmpty"); + s.store_class_end(); + } +} + +inputGeoPoint::inputGeoPoint(int32 flags_, double lat_, double long_, int32 accuracy_radius_) + : flags_(flags_) + , lat_(lat_) + , long_(long_) + , accuracy_radius_(accuracy_radius_) +{} + +const std::int32_t inputGeoPoint::ID; + +void inputGeoPoint::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(lat_, s); + TlStoreBinary::store(long_, s); + if (var0 & 1) { TlStoreBinary::store(accuracy_radius_, s); } +} + +void inputGeoPoint::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(lat_, s); + TlStoreBinary::store(long_, s); + if (var0 & 1) { TlStoreBinary::store(accuracy_radius_, s); } +} + +void inputGeoPoint::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputGeoPoint"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("lat", lat_); + s.store_field("long", long_); + if (var0 & 1) { s.store_field("accuracy_radius", accuracy_radius_); } + s.store_class_end(); + } +} + +inputGroupCall::inputGroupCall(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputGroupCall::ID; + +object_ptr<inputGroupCall> inputGroupCall::fetch(TlBufferParser &p) { + return make_tl_object<inputGroupCall>(p); +} + +inputGroupCall::inputGroupCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputGroupCall"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputInvoiceMessage::inputInvoiceMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) +{} + +const std::int32_t inputInvoiceMessage::ID; + +void inputInvoiceMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void inputInvoiceMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void inputInvoiceMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInvoiceMessage"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +inputInvoiceSlug::inputInvoiceSlug(string const &slug_) + : slug_(slug_) +{} + +const std::int32_t inputInvoiceSlug::ID; + +void inputInvoiceSlug::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(slug_, s); +} + +void inputInvoiceSlug::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(slug_, s); +} + +void inputInvoiceSlug::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputInvoiceSlug"); + s.store_field("slug", slug_); + s.store_class_end(); + } +} + +const std::int32_t inputMediaEmpty::ID; + +void inputMediaEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMediaEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMediaEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaEmpty"); + s.store_class_end(); + } +} + +inputMediaUploadedPhoto::inputMediaUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_) + : flags_(flags_) + , file_(std::move(file_)) + , stickers_(std::move(stickers_)) + , ttl_seconds_(ttl_seconds_) +{} + +const std::int32_t inputMediaUploadedPhoto::ID; + +void inputMediaUploadedPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); } + if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaUploadedPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); } + if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaUploadedPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaUploadedPhoto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + if (var0 & 1) { { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 2) { s.store_field("ttl_seconds", ttl_seconds_); } + s.store_class_end(); + } +} + +inputMediaPhoto::inputMediaPhoto(int32 flags_, object_ptr<InputPhoto> &&id_, int32 ttl_seconds_) + : flags_(flags_) + , id_(std::move(id_)) + , ttl_seconds_(ttl_seconds_) +{} + +const std::int32_t inputMediaPhoto::ID; + +void inputMediaPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaPhoto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); } + s.store_class_end(); + } +} + +inputMediaGeoPoint::inputMediaGeoPoint(object_ptr<InputGeoPoint> &&geo_point_) + : geo_point_(std::move(geo_point_)) +{} + +const std::int32_t inputMediaGeoPoint::ID; + +void inputMediaGeoPoint::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); +} + +void inputMediaGeoPoint::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); +} + +void inputMediaGeoPoint::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaGeoPoint"); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + s.store_class_end(); + } +} + +inputMediaContact::inputMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_) + : phone_number_(phone_number_) + , first_name_(first_name_) + , last_name_(last_name_) + , vcard_(vcard_) +{} + +const std::int32_t inputMediaContact::ID; + +void inputMediaContact::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreString::store(vcard_, s); +} + +void inputMediaContact::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreString::store(vcard_, s); +} + +void inputMediaContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaContact"); + s.store_field("phone_number", phone_number_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("vcard", vcard_); + s.store_class_end(); + } +} + +inputMediaUploadedDocument::inputMediaUploadedDocument(int32 flags_, bool nosound_video_, bool force_file_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_) + : flags_(flags_) + , nosound_video_(nosound_video_) + , force_file_(force_file_) + , file_(std::move(file_)) + , thumb_(std::move(thumb_)) + , mime_type_(mime_type_) + , attributes_(std::move(attributes_)) + , stickers_(std::move(stickers_)) + , ttl_seconds_(ttl_seconds_) +{} + +const std::int32_t inputMediaUploadedDocument::ID; + +void inputMediaUploadedDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); } + TlStoreString::store(mime_type_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); } + if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaUploadedDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); } + TlStoreString::store(mime_type_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickers_, s); } + if (var0 & 2) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaUploadedDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaUploadedDocument"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + if (var0 & 4) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); } + s.store_field("mime_type", mime_type_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 1) { { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 2) { s.store_field("ttl_seconds", ttl_seconds_); } + s.store_class_end(); + } +} + +inputMediaDocument::inputMediaDocument(int32 flags_, object_ptr<InputDocument> &&id_, int32 ttl_seconds_, string const &query_) + : flags_(flags_) + , id_(std::move(id_)) + , ttl_seconds_(ttl_seconds_) + , query_(query_) +{} + +const std::int32_t inputMediaDocument::ID; + +void inputMediaDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } + if (var0 & 2) { TlStoreString::store(query_, s); } +} + +void inputMediaDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } + if (var0 & 2) { TlStoreString::store(query_, s); } +} + +void inputMediaDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaDocument"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); } + if (var0 & 2) { s.store_field("query", query_); } + s.store_class_end(); + } +} + +inputMediaVenue::inputMediaVenue(object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_) + : geo_point_(std::move(geo_point_)) + , title_(title_) + , address_(address_) + , provider_(provider_) + , venue_id_(venue_id_) + , venue_type_(venue_type_) +{} + +const std::int32_t inputMediaVenue::ID; + +void inputMediaVenue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreString::store(title_, s); + TlStoreString::store(address_, s); + TlStoreString::store(provider_, s); + TlStoreString::store(venue_id_, s); + TlStoreString::store(venue_type_, s); +} + +void inputMediaVenue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreString::store(title_, s); + TlStoreString::store(address_, s); + TlStoreString::store(provider_, s); + TlStoreString::store(venue_id_, s); + TlStoreString::store(venue_type_, s); +} + +void inputMediaVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaVenue"); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + s.store_field("title", title_); + s.store_field("address", address_); + s.store_field("provider", provider_); + s.store_field("venue_id", venue_id_); + s.store_field("venue_type", venue_type_); + s.store_class_end(); + } +} + +inputMediaPhotoExternal::inputMediaPhotoExternal(int32 flags_, string const &url_, int32 ttl_seconds_) + : flags_(flags_) + , url_(url_) + , ttl_seconds_(ttl_seconds_) +{} + +const std::int32_t inputMediaPhotoExternal::ID; + +void inputMediaPhotoExternal::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(url_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaPhotoExternal::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(url_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaPhotoExternal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaPhotoExternal"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("url", url_); + if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); } + s.store_class_end(); + } +} + +inputMediaDocumentExternal::inputMediaDocumentExternal(int32 flags_, string const &url_, int32 ttl_seconds_) + : flags_(flags_) + , url_(url_) + , ttl_seconds_(ttl_seconds_) +{} + +const std::int32_t inputMediaDocumentExternal::ID; + +void inputMediaDocumentExternal::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(url_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaDocumentExternal::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(url_, s); + if (var0 & 1) { TlStoreBinary::store(ttl_seconds_, s); } +} + +void inputMediaDocumentExternal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaDocumentExternal"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("url", url_); + if (var0 & 1) { s.store_field("ttl_seconds", ttl_seconds_); } + s.store_class_end(); + } +} + +inputMediaGame::inputMediaGame(object_ptr<InputGame> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t inputMediaGame::ID; + +void inputMediaGame::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputMediaGame::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputMediaGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaGame"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +inputMediaInvoice::inputMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, string const &start_param_, object_ptr<InputMedia> &&extended_media_) + : flags_(flags_) + , title_(title_) + , description_(description_) + , photo_(std::move(photo_)) + , invoice_(std::move(invoice_)) + , payload_(std::move(payload_)) + , provider_(provider_) + , provider_data_(std::move(provider_data_)) + , start_param_(start_param_) + , extended_media_(std::move(extended_media_)) +{} + +const std::int32_t inputMediaInvoice::ID; + +void inputMediaInvoice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(title_, s); + TlStoreString::store(description_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); } + TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s); + TlStoreString::store(payload_, s); + TlStoreString::store(provider_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s); + if (var0 & 2) { TlStoreString::store(start_param_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(extended_media_, s); } +} + +void inputMediaInvoice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(title_, s); + TlStoreString::store(description_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1678949555>::store(photo_, s); } + TlStoreBoxed<TlStoreObject, 1048946971>::store(invoice_, s); + TlStoreString::store(payload_, s); + TlStoreString::store(provider_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(provider_data_, s); + if (var0 & 2) { TlStoreString::store(start_param_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(extended_media_, s); } +} + +void inputMediaInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaInvoice"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("title", title_); + s.store_field("description", description_); + if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_bytes_field("payload", payload_); + s.store_field("provider", provider_); + s.store_object_field("provider_data", static_cast<const BaseObject *>(provider_data_.get())); + if (var0 & 2) { s.store_field("start_param", start_param_); } + if (var0 & 4) { s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get())); } + s.store_class_end(); + } +} + +inputMediaGeoLive::inputMediaGeoLive(int32 flags_, bool stopped_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_) + : flags_(flags_) + , stopped_(stopped_) + , geo_point_(std::move(geo_point_)) + , heading_(heading_) + , period_(period_) + , proximity_notification_radius_(proximity_notification_radius_) +{} + +const std::int32_t inputMediaGeoLive::ID; + +void inputMediaGeoLive::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + if (var0 & 4) { TlStoreBinary::store(heading_, s); } + if (var0 & 2) { TlStoreBinary::store(period_, s); } + if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); } +} + +void inputMediaGeoLive::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + if (var0 & 4) { TlStoreBinary::store(heading_, s); } + if (var0 & 2) { TlStoreBinary::store(period_, s); } + if (var0 & 8) { TlStoreBinary::store(proximity_notification_radius_, s); } +} + +void inputMediaGeoLive::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaGeoLive"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + if (var0 & 4) { s.store_field("heading", heading_); } + if (var0 & 2) { s.store_field("period", period_); } + if (var0 & 8) { s.store_field("proximity_notification_radius", proximity_notification_radius_); } + s.store_class_end(); + } +} + +inputMediaPoll::inputMediaPoll(int32 flags_, object_ptr<poll> &&poll_, array<bytes> &&correct_answers_, string const &solution_, array<object_ptr<MessageEntity>> &&solution_entities_) + : flags_(flags_) + , poll_(std::move(poll_)) + , correct_answers_(std::move(correct_answers_)) + , solution_(solution_) + , solution_entities_(std::move(solution_entities_)) +{} + +const std::int32_t inputMediaPoll::ID; + +void inputMediaPoll::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -2032041631>::store(poll_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(correct_answers_, s); } + if (var0 & 2) { TlStoreString::store(solution_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(solution_entities_, s); } +} + +void inputMediaPoll::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -2032041631>::store(poll_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(correct_answers_, s); } + if (var0 & 2) { TlStoreString::store(solution_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(solution_entities_, s); } +} + +void inputMediaPoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaPoll"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get())); + if (var0 & 1) { { s.store_vector_begin("correct_answers", correct_answers_.size()); for (const auto &_value : correct_answers_) { s.store_bytes_field("", _value); } s.store_class_end(); } } + if (var0 & 2) { s.store_field("solution", solution_); } + if (var0 & 2) { { s.store_vector_begin("solution_entities", solution_entities_.size()); for (const auto &_value : solution_entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +inputMediaDice::inputMediaDice(string const &emoticon_) + : emoticon_(emoticon_) +{} + +const std::int32_t inputMediaDice::ID; + +void inputMediaDice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void inputMediaDice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void inputMediaDice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMediaDice"); + s.store_field("emoticon", emoticon_); + s.store_class_end(); + } +} + +inputMessageID::inputMessageID(int32 id_) + : id_(id_) +{} + +const std::int32_t inputMessageID::ID; + +void inputMessageID::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void inputMessageID::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void inputMessageID::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageID"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +inputMessageReplyTo::inputMessageReplyTo(int32 id_) + : id_(id_) +{} + +const std::int32_t inputMessageReplyTo::ID; + +void inputMessageReplyTo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void inputMessageReplyTo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void inputMessageReplyTo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageReplyTo"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +const std::int32_t inputMessagePinned::ID; + +void inputMessagePinned::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagePinned::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagePinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagePinned"); + s.store_class_end(); + } +} + +inputMessageCallbackQuery::inputMessageCallbackQuery(int32 id_, int64 query_id_) + : id_(id_) + , query_id_(query_id_) +{} + +const std::int32_t inputMessageCallbackQuery::ID; + +void inputMessageCallbackQuery::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(query_id_, s); +} + +void inputMessageCallbackQuery::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(query_id_, s); +} + +void inputMessageCallbackQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageCallbackQuery"); + s.store_field("id", id_); + s.store_field("query_id", query_id_); + s.store_class_end(); + } +} + +inputNotifyPeer::inputNotifyPeer(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t inputNotifyPeer::ID; + +void inputNotifyPeer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void inputNotifyPeer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void inputNotifyPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputNotifyPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +const std::int32_t inputNotifyUsers::ID; + +void inputNotifyUsers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputNotifyUsers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputNotifyUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputNotifyUsers"); + s.store_class_end(); + } +} + +const std::int32_t inputNotifyChats::ID; + +void inputNotifyChats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputNotifyChats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputNotifyChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputNotifyChats"); + s.store_class_end(); + } +} + +const std::int32_t inputNotifyBroadcasts::ID; + +void inputNotifyBroadcasts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputNotifyBroadcasts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputNotifyBroadcasts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputNotifyBroadcasts"); + s.store_class_end(); + } +} + +inputNotifyForumTopic::inputNotifyForumTopic(object_ptr<InputPeer> &&peer_, int32 top_msg_id_) + : peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) +{} + +const std::int32_t inputNotifyForumTopic::ID; + +void inputNotifyForumTopic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(top_msg_id_, s); +} + +void inputNotifyForumTopic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(top_msg_id_, s); +} + +void inputNotifyForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputNotifyForumTopic"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("top_msg_id", top_msg_id_); + s.store_class_end(); + } +} + +inputPaymentCredentialsSaved::inputPaymentCredentialsSaved(string const &id_, bytes &&tmp_password_) + : id_(id_) + , tmp_password_(std::move(tmp_password_)) +{} + +const std::int32_t inputPaymentCredentialsSaved::ID; + +void inputPaymentCredentialsSaved::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(tmp_password_, s); +} + +void inputPaymentCredentialsSaved::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(tmp_password_, s); +} + +void inputPaymentCredentialsSaved::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPaymentCredentialsSaved"); + s.store_field("id", id_); + s.store_bytes_field("tmp_password", tmp_password_); + s.store_class_end(); + } +} + +inputPaymentCredentials::inputPaymentCredentials(int32 flags_, bool save_, object_ptr<dataJSON> &&data_) + : flags_(flags_) + , save_(save_) + , data_(std::move(data_)) +{} + +const std::int32_t inputPaymentCredentials::ID; + +void inputPaymentCredentials::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s); +} + +void inputPaymentCredentials::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s); +} + +void inputPaymentCredentials::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPaymentCredentials"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); + s.store_class_end(); + } +} + +inputPaymentCredentialsApplePay::inputPaymentCredentialsApplePay(object_ptr<dataJSON> &&payment_data_) + : payment_data_(std::move(payment_data_)) +{} + +const std::int32_t inputPaymentCredentialsApplePay::ID; + +void inputPaymentCredentialsApplePay::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_data_, s); +} + +void inputPaymentCredentialsApplePay::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_data_, s); +} + +void inputPaymentCredentialsApplePay::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPaymentCredentialsApplePay"); + s.store_object_field("payment_data", static_cast<const BaseObject *>(payment_data_.get())); + s.store_class_end(); + } +} + +inputPaymentCredentialsGooglePay::inputPaymentCredentialsGooglePay(object_ptr<dataJSON> &&payment_token_) + : payment_token_(std::move(payment_token_)) +{} + +const std::int32_t inputPaymentCredentialsGooglePay::ID; + +void inputPaymentCredentialsGooglePay::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_token_, s); +} + +void inputPaymentCredentialsGooglePay::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(payment_token_, s); +} + +void inputPaymentCredentialsGooglePay::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPaymentCredentialsGooglePay"); + s.store_object_field("payment_token", static_cast<const BaseObject *>(payment_token_.get())); + s.store_class_end(); + } +} + +object_ptr<InputPeer> InputPeer::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inputPeerEmpty::ID: + return inputPeerEmpty::fetch(p); + case inputPeerSelf::ID: + return inputPeerSelf::fetch(p); + case inputPeerChat::ID: + return inputPeerChat::fetch(p); + case inputPeerUser::ID: + return inputPeerUser::fetch(p); + case inputPeerChannel::ID: + return inputPeerChannel::fetch(p); + case inputPeerUserFromMessage::ID: + return inputPeerUserFromMessage::fetch(p); + case inputPeerChannelFromMessage::ID: + return inputPeerChannelFromMessage::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t inputPeerEmpty::ID; + +object_ptr<InputPeer> inputPeerEmpty::fetch(TlBufferParser &p) { + return make_tl_object<inputPeerEmpty>(); +} + +void inputPeerEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPeerEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPeerEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerEmpty"); + s.store_class_end(); + } +} + +const std::int32_t inputPeerSelf::ID; + +object_ptr<InputPeer> inputPeerSelf::fetch(TlBufferParser &p) { + return make_tl_object<inputPeerSelf>(); +} + +void inputPeerSelf::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPeerSelf::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPeerSelf::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerSelf"); + s.store_class_end(); + } +} + +inputPeerChat::inputPeerChat(int64 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t inputPeerChat::ID; + +object_ptr<InputPeer> inputPeerChat::fetch(TlBufferParser &p) { + return make_tl_object<inputPeerChat>(p); +} + +inputPeerChat::inputPeerChat(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputPeerChat::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(chat_id_, s); +} + +void inputPeerChat::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(chat_id_, s); +} + +void inputPeerChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +inputPeerUser::inputPeerUser(int64 user_id_, int64 access_hash_) + : user_id_(user_id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputPeerUser::ID; + +object_ptr<InputPeer> inputPeerUser::fetch(TlBufferParser &p) { + return make_tl_object<inputPeerUser>(p); +} + +inputPeerUser::inputPeerUser(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputPeerUser::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(user_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputPeerUser::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(user_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputPeerUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerUser"); + s.store_field("user_id", user_id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputPeerChannel::inputPeerChannel(int64 channel_id_, int64 access_hash_) + : channel_id_(channel_id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputPeerChannel::ID; + +object_ptr<InputPeer> inputPeerChannel::fetch(TlBufferParser &p) { + return make_tl_object<inputPeerChannel>(p); +} + +inputPeerChannel::inputPeerChannel(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputPeerChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(channel_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputPeerChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(channel_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputPeerChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerChannel"); + s.store_field("channel_id", channel_id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputPeerUserFromMessage::inputPeerUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , user_id_(user_id_) +{} + +const std::int32_t inputPeerUserFromMessage::ID; + +object_ptr<InputPeer> inputPeerUserFromMessage::fetch(TlBufferParser &p) { + return make_tl_object<inputPeerUserFromMessage>(p); +} + +inputPeerUserFromMessage::inputPeerUserFromMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<InputPeer>::parse(p)) + , msg_id_(TlFetchInt::parse(p)) + , user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputPeerUserFromMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(user_id_, s); +} + +void inputPeerUserFromMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(user_id_, s); +} + +void inputPeerUserFromMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerUserFromMessage"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +inputPeerChannelFromMessage::inputPeerChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , channel_id_(channel_id_) +{} + +const std::int32_t inputPeerChannelFromMessage::ID; + +object_ptr<InputPeer> inputPeerChannelFromMessage::fetch(TlBufferParser &p) { + return make_tl_object<inputPeerChannelFromMessage>(p); +} + +inputPeerChannelFromMessage::inputPeerChannelFromMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<InputPeer>::parse(p)) + , msg_id_(TlFetchInt::parse(p)) + , channel_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputPeerChannelFromMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(channel_id_, s); +} + +void inputPeerChannelFromMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(channel_id_, s); +} + +void inputPeerChannelFromMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerChannelFromMessage"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("channel_id", channel_id_); + s.store_class_end(); + } +} + +inputPeerNotifySettings::inputPeerNotifySettings(int32 flags_, bool show_previews_, bool silent_, int32 mute_until_, object_ptr<NotificationSound> &&sound_) + : flags_(flags_) + , show_previews_(show_previews_) + , silent_(silent_) + , mute_until_(mute_until_) + , sound_(std::move(sound_)) +{} + +const std::int32_t inputPeerNotifySettings::ID; + +void inputPeerNotifySettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBool::store(show_previews_, s); } + if (var0 & 2) { TlStoreBool::store(silent_, s); } + if (var0 & 4) { TlStoreBinary::store(mute_until_, s); } + if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(sound_, s); } +} + +void inputPeerNotifySettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBool::store(show_previews_, s); } + if (var0 & 2) { TlStoreBool::store(silent_, s); } + if (var0 & 4) { TlStoreBinary::store(mute_until_, s); } + if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(sound_, s); } +} + +void inputPeerNotifySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPeerNotifySettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("show_previews", show_previews_); } + if (var0 & 2) { s.store_field("silent", silent_); } + if (var0 & 4) { s.store_field("mute_until", mute_until_); } + if (var0 & 8) { s.store_object_field("sound", static_cast<const BaseObject *>(sound_.get())); } + s.store_class_end(); + } +} + +inputPhoneCall::inputPhoneCall(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputPhoneCall::ID; + +void inputPhoneCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputPhoneCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputPhoneCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPhoneCall"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +const std::int32_t inputPhotoEmpty::ID; + +void inputPhotoEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPhotoEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPhotoEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPhotoEmpty"); + s.store_class_end(); + } +} + +inputPhoto::inputPhoto(int64 id_, int64 access_hash_, bytes &&file_reference_) + : id_(id_) + , access_hash_(access_hash_) + , file_reference_(std::move(file_reference_)) +{} + +const std::int32_t inputPhoto::ID; + +void inputPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); +} + +void inputPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreString::store(file_reference_, s); +} + +void inputPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPhoto"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_bytes_field("file_reference", file_reference_); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyStatusTimestamp::ID; + +void inputPrivacyKeyStatusTimestamp::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyStatusTimestamp::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyStatusTimestamp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyStatusTimestamp"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyChatInvite::ID; + +void inputPrivacyKeyChatInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyChatInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyChatInvite"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyPhoneCall::ID; + +void inputPrivacyKeyPhoneCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyPhoneCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyPhoneCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyPhoneCall"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyPhoneP2P::ID; + +void inputPrivacyKeyPhoneP2P::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyPhoneP2P::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyPhoneP2P::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyPhoneP2P"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyForwards::ID; + +void inputPrivacyKeyForwards::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyForwards::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyForwards"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyProfilePhoto::ID; + +void inputPrivacyKeyProfilePhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyProfilePhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyProfilePhoto"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyPhoneNumber::ID; + +void inputPrivacyKeyPhoneNumber::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyPhoneNumber::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyPhoneNumber"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyAddedByPhone::ID; + +void inputPrivacyKeyAddedByPhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyAddedByPhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyAddedByPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyAddedByPhone"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyKeyVoiceMessages::ID; + +void inputPrivacyKeyVoiceMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyVoiceMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyKeyVoiceMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyKeyVoiceMessages"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyValueAllowContacts::ID; + +void inputPrivacyValueAllowContacts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueAllowContacts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueAllowContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueAllowContacts"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyValueAllowAll::ID; + +void inputPrivacyValueAllowAll::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueAllowAll::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueAllowAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueAllowAll"); + s.store_class_end(); + } +} + +inputPrivacyValueAllowUsers::inputPrivacyValueAllowUsers(array<object_ptr<InputUser>> &&users_) + : users_(std::move(users_)) +{} + +const std::int32_t inputPrivacyValueAllowUsers::ID; + +void inputPrivacyValueAllowUsers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void inputPrivacyValueAllowUsers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void inputPrivacyValueAllowUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueAllowUsers"); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyValueDisallowContacts::ID; + +void inputPrivacyValueDisallowContacts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueDisallowContacts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueDisallowContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueDisallowContacts"); + s.store_class_end(); + } +} + +const std::int32_t inputPrivacyValueDisallowAll::ID; + +void inputPrivacyValueDisallowAll::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueDisallowAll::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputPrivacyValueDisallowAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueDisallowAll"); + s.store_class_end(); + } +} + +inputPrivacyValueDisallowUsers::inputPrivacyValueDisallowUsers(array<object_ptr<InputUser>> &&users_) + : users_(std::move(users_)) +{} + +const std::int32_t inputPrivacyValueDisallowUsers::ID; + +void inputPrivacyValueDisallowUsers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void inputPrivacyValueDisallowUsers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void inputPrivacyValueDisallowUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueDisallowUsers"); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputPrivacyValueAllowChatParticipants::inputPrivacyValueAllowChatParticipants(array<int64> &&chats_) + : chats_(std::move(chats_)) +{} + +const std::int32_t inputPrivacyValueAllowChatParticipants::ID; + +void inputPrivacyValueAllowChatParticipants::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s); +} + +void inputPrivacyValueAllowChatParticipants::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s); +} + +void inputPrivacyValueAllowChatParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueAllowChatParticipants"); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputPrivacyValueDisallowChatParticipants::inputPrivacyValueDisallowChatParticipants(array<int64> &&chats_) + : chats_(std::move(chats_)) +{} + +const std::int32_t inputPrivacyValueDisallowChatParticipants::ID; + +void inputPrivacyValueDisallowChatParticipants::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s); +} + +void inputPrivacyValueDisallowChatParticipants::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(chats_, s); +} + +void inputPrivacyValueDisallowChatParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputPrivacyValueDisallowChatParticipants"); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputSecureFileUploaded::inputSecureFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, bytes &&file_hash_, bytes &&secret_) + : id_(id_) + , parts_(parts_) + , md5_checksum_(md5_checksum_) + , file_hash_(std::move(file_hash_)) + , secret_(std::move(secret_)) +{} + +const std::int32_t inputSecureFileUploaded::ID; + +void inputSecureFileUploaded::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(md5_checksum_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(secret_, s); +} + +void inputSecureFileUploaded::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(parts_, s); + TlStoreString::store(md5_checksum_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(secret_, s); +} + +void inputSecureFileUploaded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputSecureFileUploaded"); + s.store_field("id", id_); + s.store_field("parts", parts_); + s.store_field("md5_checksum", md5_checksum_); + s.store_bytes_field("file_hash", file_hash_); + s.store_bytes_field("secret", secret_); + s.store_class_end(); + } +} + +inputSecureFile::inputSecureFile(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputSecureFile::ID; + +void inputSecureFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputSecureFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputSecureFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputSecureFile"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputSecureValue::inputSecureValue(int32 flags_, object_ptr<SecureValueType> &&type_, object_ptr<secureData> &&data_, object_ptr<InputSecureFile> &&front_side_, object_ptr<InputSecureFile> &&reverse_side_, object_ptr<InputSecureFile> &&selfie_, array<object_ptr<InputSecureFile>> &&translation_, array<object_ptr<InputSecureFile>> &&files_, object_ptr<SecurePlainData> &&plain_data_) + : flags_(flags_) + , type_(std::move(type_)) + , data_(std::move(data_)) + , front_side_(std::move(front_side_)) + , reverse_side_(std::move(reverse_side_)) + , selfie_(std::move(selfie_)) + , translation_(std::move(translation_)) + , files_(std::move(files_)) + , plain_data_(std::move(plain_data_)) +{} + +const std::int32_t inputSecureValue::ID; + +void inputSecureValue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1964327229>::store(data_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(front_side_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reverse_side_, s); } + if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(selfie_, s); } + if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(translation_, s); } + if (var0 & 16) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(files_, s); } + if (var0 & 32) { TlStoreBoxedUnknown<TlStoreObject>::store(plain_data_, s); } +} + +void inputSecureValue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1964327229>::store(data_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(front_side_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reverse_side_, s); } + if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(selfie_, s); } + if (var0 & 64) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(translation_, s); } + if (var0 & 16) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(files_, s); } + if (var0 & 32) { TlStoreBoxedUnknown<TlStoreObject>::store(plain_data_, s); } +} + +void inputSecureValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputSecureValue"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + if (var0 & 1) { s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); } + if (var0 & 2) { s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get())); } + if (var0 & 4) { s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get())); } + if (var0 & 8) { s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get())); } + if (var0 & 64) { { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 16) { { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 32) { s.store_object_field("plain_data", static_cast<const BaseObject *>(plain_data_.get())); } + s.store_class_end(); + } +} + +inputSingleMedia::inputSingleMedia(int32 flags_, object_ptr<InputMedia> &&media_, int64 random_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_) + : flags_(flags_) + , media_(std::move(media_)) + , random_id_(random_id_) + , message_(message_) + , entities_(std::move(entities_)) +{} + +const std::int32_t inputSingleMedia::ID; + +void inputSingleMedia::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(message_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void inputSingleMedia::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(message_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void inputSingleMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputSingleMedia"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_field("random_id", random_id_); + s.store_field("message", message_); + if (var0 & 1) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +object_ptr<InputStickerSet> InputStickerSet::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inputStickerSetEmpty::ID: + return inputStickerSetEmpty::fetch(p); + case inputStickerSetID::ID: + return inputStickerSetID::fetch(p); + case inputStickerSetShortName::ID: + return inputStickerSetShortName::fetch(p); + case inputStickerSetAnimatedEmoji::ID: + return inputStickerSetAnimatedEmoji::fetch(p); + case inputStickerSetDice::ID: + return inputStickerSetDice::fetch(p); + case inputStickerSetAnimatedEmojiAnimations::ID: + return inputStickerSetAnimatedEmojiAnimations::fetch(p); + case inputStickerSetPremiumGifts::ID: + return inputStickerSetPremiumGifts::fetch(p); + case inputStickerSetEmojiGenericAnimations::ID: + return inputStickerSetEmojiGenericAnimations::fetch(p); + case inputStickerSetEmojiDefaultStatuses::ID: + return inputStickerSetEmojiDefaultStatuses::fetch(p); + case inputStickerSetEmojiDefaultTopicIcons::ID: + return inputStickerSetEmojiDefaultTopicIcons::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t inputStickerSetEmpty::ID; + +object_ptr<InputStickerSet> inputStickerSetEmpty::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetEmpty>(); +} + +void inputStickerSetEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetEmpty"); + s.store_class_end(); + } +} + +inputStickerSetID::inputStickerSetID(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputStickerSetID::ID; + +object_ptr<InputStickerSet> inputStickerSetID::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetID>(p); +} + +inputStickerSetID::inputStickerSetID(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputStickerSetID::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputStickerSetID::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputStickerSetID::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetID"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputStickerSetShortName::inputStickerSetShortName(string const &short_name_) + : short_name_(short_name_) +{} + +const std::int32_t inputStickerSetShortName::ID; + +object_ptr<InputStickerSet> inputStickerSetShortName::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetShortName>(p); +} + +inputStickerSetShortName::inputStickerSetShortName(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : short_name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void inputStickerSetShortName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(short_name_, s); +} + +void inputStickerSetShortName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(short_name_, s); +} + +void inputStickerSetShortName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetShortName"); + s.store_field("short_name", short_name_); + s.store_class_end(); + } +} + +const std::int32_t inputStickerSetAnimatedEmoji::ID; + +object_ptr<InputStickerSet> inputStickerSetAnimatedEmoji::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetAnimatedEmoji>(); +} + +void inputStickerSetAnimatedEmoji::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetAnimatedEmoji::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetAnimatedEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetAnimatedEmoji"); + s.store_class_end(); + } +} + +inputStickerSetDice::inputStickerSetDice(string const &emoticon_) + : emoticon_(emoticon_) +{} + +const std::int32_t inputStickerSetDice::ID; + +object_ptr<InputStickerSet> inputStickerSetDice::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetDice>(p); +} + +inputStickerSetDice::inputStickerSetDice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : emoticon_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void inputStickerSetDice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void inputStickerSetDice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void inputStickerSetDice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetDice"); + s.store_field("emoticon", emoticon_); + s.store_class_end(); + } +} + +const std::int32_t inputStickerSetAnimatedEmojiAnimations::ID; + +object_ptr<InputStickerSet> inputStickerSetAnimatedEmojiAnimations::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetAnimatedEmojiAnimations>(); +} + +void inputStickerSetAnimatedEmojiAnimations::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetAnimatedEmojiAnimations::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetAnimatedEmojiAnimations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetAnimatedEmojiAnimations"); + s.store_class_end(); + } +} + +const std::int32_t inputStickerSetPremiumGifts::ID; + +object_ptr<InputStickerSet> inputStickerSetPremiumGifts::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetPremiumGifts>(); +} + +void inputStickerSetPremiumGifts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetPremiumGifts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetPremiumGifts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetPremiumGifts"); + s.store_class_end(); + } +} + +const std::int32_t inputStickerSetEmojiGenericAnimations::ID; + +object_ptr<InputStickerSet> inputStickerSetEmojiGenericAnimations::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetEmojiGenericAnimations>(); +} + +void inputStickerSetEmojiGenericAnimations::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmojiGenericAnimations::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmojiGenericAnimations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetEmojiGenericAnimations"); + s.store_class_end(); + } +} + +const std::int32_t inputStickerSetEmojiDefaultStatuses::ID; + +object_ptr<InputStickerSet> inputStickerSetEmojiDefaultStatuses::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetEmojiDefaultStatuses>(); +} + +void inputStickerSetEmojiDefaultStatuses::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmojiDefaultStatuses::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmojiDefaultStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetEmojiDefaultStatuses"); + s.store_class_end(); + } +} + +const std::int32_t inputStickerSetEmojiDefaultTopicIcons::ID; + +object_ptr<InputStickerSet> inputStickerSetEmojiDefaultTopicIcons::fetch(TlBufferParser &p) { + return make_tl_object<inputStickerSetEmojiDefaultTopicIcons>(); +} + +void inputStickerSetEmojiDefaultTopicIcons::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmojiDefaultTopicIcons::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputStickerSetEmojiDefaultTopicIcons::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetEmojiDefaultTopicIcons"); + s.store_class_end(); + } +} + +inputStickerSetItem::inputStickerSetItem(int32 flags_, object_ptr<InputDocument> &&document_, string const &emoji_, object_ptr<maskCoords> &&mask_coords_) + : flags_(flags_) + , document_(std::move(document_)) + , emoji_(emoji_) + , mask_coords_(std::move(mask_coords_)) +{} + +const std::int32_t inputStickerSetItem::ID; + +void inputStickerSetItem::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); + TlStoreString::store(emoji_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); } +} + +void inputStickerSetItem::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); + TlStoreString::store(emoji_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1361650766>::store(mask_coords_, s); } +} + +void inputStickerSetItem::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickerSetItem"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_field("emoji", emoji_); + if (var0 & 1) { s.store_object_field("mask_coords", static_cast<const BaseObject *>(mask_coords_.get())); } + s.store_class_end(); + } +} + +inputStickeredMediaPhoto::inputStickeredMediaPhoto(object_ptr<InputPhoto> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t inputStickeredMediaPhoto::ID; + +void inputStickeredMediaPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputStickeredMediaPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputStickeredMediaPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickeredMediaPhoto"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +inputStickeredMediaDocument::inputStickeredMediaDocument(object_ptr<InputDocument> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t inputStickeredMediaDocument::ID; + +void inputStickeredMediaDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputStickeredMediaDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void inputStickeredMediaDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStickeredMediaDocument"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +inputStorePaymentPremiumSubscription::inputStorePaymentPremiumSubscription(int32 flags_, bool restore_) + : flags_(flags_) + , restore_(restore_) +{} + +const std::int32_t inputStorePaymentPremiumSubscription::ID; + +void inputStorePaymentPremiumSubscription::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void inputStorePaymentPremiumSubscription::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void inputStorePaymentPremiumSubscription::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStorePaymentPremiumSubscription"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +inputStorePaymentGiftPremium::inputStorePaymentGiftPremium(object_ptr<InputUser> &&user_id_, string const ¤cy_, int64 amount_) + : user_id_(std::move(user_id_)) + , currency_(currency_) + , amount_(amount_) +{} + +const std::int32_t inputStorePaymentGiftPremium::ID; + +void inputStorePaymentGiftPremium::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreString::store(currency_, s); + TlStoreBinary::store(amount_, s); +} + +void inputStorePaymentGiftPremium::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreString::store(currency_, s); + TlStoreBinary::store(amount_, s); +} + +void inputStorePaymentGiftPremium::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputStorePaymentGiftPremium"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("currency", currency_); + s.store_field("amount", amount_); + s.store_class_end(); + } +} + +inputTheme::inputTheme(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputTheme::ID; + +void inputTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputTheme"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputThemeSlug::inputThemeSlug(string const &slug_) + : slug_(slug_) +{} + +const std::int32_t inputThemeSlug::ID; + +void inputThemeSlug::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(slug_, s); +} + +void inputThemeSlug::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(slug_, s); +} + +void inputThemeSlug::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputThemeSlug"); + s.store_field("slug", slug_); + s.store_class_end(); + } +} + +inputThemeSettings::inputThemeSettings(int32 flags_, bool message_colors_animated_, object_ptr<BaseTheme> &&base_theme_, int32 accent_color_, int32 outbox_accent_color_, array<int32> &&message_colors_, object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&wallpaper_settings_) + : flags_(flags_) + , message_colors_animated_(message_colors_animated_) + , base_theme_(std::move(base_theme_)) + , accent_color_(accent_color_) + , outbox_accent_color_(outbox_accent_color_) + , message_colors_(std::move(message_colors_)) + , wallpaper_(std::move(wallpaper_)) + , wallpaper_settings_(std::move(wallpaper_settings_)) +{} + +const std::int32_t inputThemeSettings::ID; + +void inputThemeSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s); + TlStoreBinary::store(accent_color_, s); + if (var0 & 8) { TlStoreBinary::store(outbox_accent_color_, s); } + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(message_colors_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreObject, 499236004>::store(wallpaper_settings_, s); } +} + +void inputThemeSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s); + TlStoreBinary::store(accent_color_, s); + if (var0 & 8) { TlStoreBinary::store(outbox_accent_color_, s); } + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(message_colors_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreObject, 499236004>::store(wallpaper_settings_, s); } +} + +void inputThemeSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputThemeSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("base_theme", static_cast<const BaseObject *>(base_theme_.get())); + s.store_field("accent_color", accent_color_); + if (var0 & 8) { s.store_field("outbox_accent_color", outbox_accent_color_); } + if (var0 & 1) { { s.store_vector_begin("message_colors", message_colors_.size()); for (const auto &_value : message_colors_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 2) { s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get())); } + if (var0 & 2) { s.store_object_field("wallpaper_settings", static_cast<const BaseObject *>(wallpaper_settings_.get())); } + s.store_class_end(); + } +} + +object_ptr<InputUser> InputUser::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inputUserEmpty::ID: + return inputUserEmpty::fetch(p); + case inputUserSelf::ID: + return inputUserSelf::fetch(p); + case inputUser::ID: + return inputUser::fetch(p); + case inputUserFromMessage::ID: + return inputUserFromMessage::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t inputUserEmpty::ID; + +object_ptr<InputUser> inputUserEmpty::fetch(TlBufferParser &p) { + return make_tl_object<inputUserEmpty>(); +} + +void inputUserEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputUserEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputUserEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputUserEmpty"); + s.store_class_end(); + } +} + +const std::int32_t inputUserSelf::ID; + +object_ptr<InputUser> inputUserSelf::fetch(TlBufferParser &p) { + return make_tl_object<inputUserSelf>(); +} + +void inputUserSelf::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputUserSelf::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputUserSelf::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputUserSelf"); + s.store_class_end(); + } +} + +inputUser::inputUser(int64 user_id_, int64 access_hash_) + : user_id_(user_id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputUser::ID; + +object_ptr<InputUser> inputUser::fetch(TlBufferParser &p) { + return make_tl_object<inputUser>(p); +} + +inputUser::inputUser(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputUser::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(user_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputUser::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(user_id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputUser"); + s.store_field("user_id", user_id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputUserFromMessage::inputUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , user_id_(user_id_) +{} + +const std::int32_t inputUserFromMessage::ID; + +object_ptr<InputUser> inputUserFromMessage::fetch(TlBufferParser &p) { + return make_tl_object<inputUserFromMessage>(p); +} + +inputUserFromMessage::inputUserFromMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<InputPeer>::parse(p)) + , msg_id_(TlFetchInt::parse(p)) + , user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void inputUserFromMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(user_id_, s); +} + +void inputUserFromMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(user_id_, s); +} + +void inputUserFromMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputUserFromMessage"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +inputWallPaper::inputWallPaper(int64 id_, int64 access_hash_) + : id_(id_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputWallPaper::ID; + +void inputWallPaper::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputWallPaper::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputWallPaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputWallPaper"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputWallPaperSlug::inputWallPaperSlug(string const &slug_) + : slug_(slug_) +{} + +const std::int32_t inputWallPaperSlug::ID; + +void inputWallPaperSlug::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(slug_, s); +} + +void inputWallPaperSlug::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(slug_, s); +} + +void inputWallPaperSlug::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputWallPaperSlug"); + s.store_field("slug", slug_); + s.store_class_end(); + } +} + +inputWallPaperNoFile::inputWallPaperNoFile(int64 id_) + : id_(id_) +{} + +const std::int32_t inputWallPaperNoFile::ID; + +void inputWallPaperNoFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void inputWallPaperNoFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void inputWallPaperNoFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputWallPaperNoFile"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +inputWebDocument::inputWebDocument(string const &url_, int32 size_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_) + : url_(url_) + , size_(size_) + , mime_type_(mime_type_) + , attributes_(std::move(attributes_)) +{} + +const std::int32_t inputWebDocument::ID; + +void inputWebDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(url_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(mime_type_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); +} + +void inputWebDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(url_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(mime_type_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(attributes_, s); +} + +void inputWebDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputWebDocument"); + s.store_field("url", url_); + s.store_field("size", size_); + s.store_field("mime_type", mime_type_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +inputWebFileLocation::inputWebFileLocation(string const &url_, int64 access_hash_) + : url_(url_) + , access_hash_(access_hash_) +{} + +const std::int32_t inputWebFileLocation::ID; + +void inputWebFileLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(url_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputWebFileLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(url_, s); + TlStoreBinary::store(access_hash_, s); +} + +void inputWebFileLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputWebFileLocation"); + s.store_field("url", url_); + s.store_field("access_hash", access_hash_); + s.store_class_end(); + } +} + +inputWebFileGeoPointLocation::inputWebFileGeoPointLocation(object_ptr<InputGeoPoint> &&geo_point_, int64 access_hash_, int32 w_, int32 h_, int32 zoom_, int32 scale_) + : geo_point_(std::move(geo_point_)) + , access_hash_(access_hash_) + , w_(w_) + , h_(h_) + , zoom_(zoom_) + , scale_(scale_) +{} + +const std::int32_t inputWebFileGeoPointLocation::ID; + +void inputWebFileGeoPointLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(zoom_, s); + TlStoreBinary::store(scale_, s); +} + +void inputWebFileGeoPointLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreBinary::store(access_hash_, s); + TlStoreBinary::store(w_, s); + TlStoreBinary::store(h_, s); + TlStoreBinary::store(zoom_, s); + TlStoreBinary::store(scale_, s); +} + +void inputWebFileGeoPointLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputWebFileGeoPointLocation"); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + s.store_field("access_hash", access_hash_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("zoom", zoom_); + s.store_field("scale", scale_); + s.store_class_end(); + } +} + +inputWebFileAudioAlbumThumbLocation::inputWebFileAudioAlbumThumbLocation(int32 flags_, bool small_, object_ptr<InputDocument> &&document_, string const &title_, string const &performer_) + : flags_(flags_) + , small_(small_) + , document_(std::move(document_)) + , title_(title_) + , performer_(performer_) +{} + +const std::int32_t inputWebFileAudioAlbumThumbLocation::ID; + +void inputWebFileAudioAlbumThumbLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); } + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreString::store(performer_, s); } +} + +void inputWebFileAudioAlbumThumbLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); } + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreString::store(performer_, s); } +} + +void inputWebFileAudioAlbumThumbLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputWebFileAudioAlbumThumbLocation"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 2) { s.store_field("title", title_); } + if (var0 & 2) { s.store_field("performer", performer_); } + s.store_class_end(); + } +} + +invoice::invoice() + : flags_() + , test_() + , name_requested_() + , phone_requested_() + , email_requested_() + , shipping_address_requested_() + , flexible_() + , phone_to_provider_() + , email_to_provider_() + , recurring_() + , currency_() + , prices_() + , max_tip_amount_() + , suggested_tip_amounts_() + , recurring_terms_url_() +{} + +invoice::invoice(int32 flags_, bool test_, bool name_requested_, bool phone_requested_, bool email_requested_, bool shipping_address_requested_, bool flexible_, bool phone_to_provider_, bool email_to_provider_, bool recurring_, string const ¤cy_, array<object_ptr<labeledPrice>> &&prices_, int64 max_tip_amount_, array<int64> &&suggested_tip_amounts_, string const &recurring_terms_url_) + : flags_(flags_) + , test_(test_) + , name_requested_(name_requested_) + , phone_requested_(phone_requested_) + , email_requested_(email_requested_) + , shipping_address_requested_(shipping_address_requested_) + , flexible_(flexible_) + , phone_to_provider_(phone_to_provider_) + , email_to_provider_(email_to_provider_) + , recurring_(recurring_) + , currency_(currency_) + , prices_(std::move(prices_)) + , max_tip_amount_(max_tip_amount_) + , suggested_tip_amounts_(std::move(suggested_tip_amounts_)) + , recurring_terms_url_(recurring_terms_url_) +{} + +const std::int32_t invoice::ID; + +object_ptr<invoice> invoice::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<invoice> res = make_tl_object<invoice>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->test_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->name_requested_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->phone_requested_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->email_requested_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->shipping_address_requested_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->flexible_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->phone_to_provider_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->email_to_provider_ = TlFetchTrue::parse(p); } + if (var0 & 512) { res->recurring_ = TlFetchTrue::parse(p); } + res->currency_ = TlFetchString<string>::parse(p); + res->prices_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<labeledPrice>, -886477832>>, 481674261>::parse(p); + if (var0 & 256) { res->max_tip_amount_ = TlFetchLong::parse(p); } + if (var0 & 256) { res->suggested_tip_amounts_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); } + if (var0 & 512) { res->recurring_terms_url_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void invoice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(currency_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s); + if (var0 & 256) { TlStoreBinary::store(max_tip_amount_, s); } + if (var0 & 256) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(suggested_tip_amounts_, s); } + if (var0 & 512) { TlStoreString::store(recurring_terms_url_, s); } +} + +void invoice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(currency_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s); + if (var0 & 256) { TlStoreBinary::store(max_tip_amount_, s); } + if (var0 & 256) { TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(suggested_tip_amounts_, s); } + if (var0 & 512) { TlStoreString::store(recurring_terms_url_, s); } +} + +void invoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "invoice"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("currency", currency_); + { s.store_vector_begin("prices", prices_.size()); for (const auto &_value : prices_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 256) { s.store_field("max_tip_amount", max_tip_amount_); } + if (var0 & 256) { { s.store_vector_begin("suggested_tip_amounts", suggested_tip_amounts_.size()); for (const auto &_value : suggested_tip_amounts_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 512) { s.store_field("recurring_terms_url", recurring_terms_url_); } + s.store_class_end(); + } +} + +object_ptr<IpPort> IpPort::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case ipPort::ID: + return ipPort::fetch(p); + case ipPortSecret::ID: + return ipPortSecret::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t ipPort::ID; + +object_ptr<IpPort> ipPort::fetch(TlBufferParser &p) { + return make_tl_object<ipPort>(p); +} + +ipPort::ipPort(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : ipv4_(TlFetchInt::parse(p)) + , port_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void ipPort::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "ipPort"); + s.store_field("ipv4", ipv4_); + s.store_field("port", port_); + s.store_class_end(); + } +} + +const std::int32_t ipPortSecret::ID; + +object_ptr<IpPort> ipPortSecret::fetch(TlBufferParser &p) { + return make_tl_object<ipPortSecret>(p); +} + +ipPortSecret::ipPortSecret(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : ipv4_(TlFetchInt::parse(p)) + , port_(TlFetchInt::parse(p)) + , secret_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void ipPortSecret::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "ipPortSecret"); + s.store_field("ipv4", ipv4_); + s.store_field("port", port_); + s.store_bytes_field("secret", secret_); + s.store_class_end(); + } +} + +jsonObjectValue::jsonObjectValue(string const &key_, object_ptr<JSONValue> &&value_) + : key_(key_) + , value_(std::move(value_)) +{} + +const std::int32_t jsonObjectValue::ID; + +object_ptr<jsonObjectValue> jsonObjectValue::fetch(TlBufferParser &p) { + return make_tl_object<jsonObjectValue>(p); +} + +jsonObjectValue::jsonObjectValue(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : key_(TlFetchString<string>::parse(p)) + , value_(TlFetchObject<JSONValue>::parse(p)) +#undef FAIL +{} + +void jsonObjectValue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(key_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(value_, s); +} + +void jsonObjectValue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(key_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(value_, s); +} + +void jsonObjectValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonObjectValue"); + s.store_field("key", key_); + s.store_object_field("value", static_cast<const BaseObject *>(value_.get())); + s.store_class_end(); + } +} + +object_ptr<JSONValue> JSONValue::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case jsonNull::ID: + return jsonNull::fetch(p); + case jsonBool::ID: + return jsonBool::fetch(p); + case jsonNumber::ID: + return jsonNumber::fetch(p); + case jsonString::ID: + return jsonString::fetch(p); + case jsonArray::ID: + return jsonArray::fetch(p); + case jsonObject::ID: + return jsonObject::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t jsonNull::ID; + +object_ptr<JSONValue> jsonNull::fetch(TlBufferParser &p) { + return make_tl_object<jsonNull>(); +} + +void jsonNull::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void jsonNull::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void jsonNull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonNull"); + s.store_class_end(); + } +} + +jsonBool::jsonBool(bool value_) + : value_(value_) +{} + +const std::int32_t jsonBool::ID; + +object_ptr<JSONValue> jsonBool::fetch(TlBufferParser &p) { + return make_tl_object<jsonBool>(p); +} + +jsonBool::jsonBool(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : value_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void jsonBool::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBool::store(value_, s); +} + +void jsonBool::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBool::store(value_, s); +} + +void jsonBool::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonBool"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +jsonNumber::jsonNumber(double value_) + : value_(value_) +{} + +const std::int32_t jsonNumber::ID; + +object_ptr<JSONValue> jsonNumber::fetch(TlBufferParser &p) { + return make_tl_object<jsonNumber>(p); +} + +jsonNumber::jsonNumber(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : value_(TlFetchDouble::parse(p)) +#undef FAIL +{} + +void jsonNumber::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(value_, s); +} + +void jsonNumber::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(value_, s); +} + +void jsonNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonNumber"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +jsonString::jsonString(string const &value_) + : value_(value_) +{} + +const std::int32_t jsonString::ID; + +object_ptr<JSONValue> jsonString::fetch(TlBufferParser &p) { + return make_tl_object<jsonString>(p); +} + +jsonString::jsonString(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : value_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void jsonString::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(value_, s); +} + +void jsonString::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(value_, s); +} + +void jsonString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonString"); + s.store_field("value", value_); + s.store_class_end(); + } +} + +jsonArray::jsonArray(array<object_ptr<JSONValue>> &&value_) + : value_(std::move(value_)) +{} + +const std::int32_t jsonArray::ID; + +object_ptr<JSONValue> jsonArray::fetch(TlBufferParser &p) { + return make_tl_object<jsonArray>(p); +} + +jsonArray::jsonArray(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : value_(TlFetchBoxed<TlFetchVector<TlFetchObject<JSONValue>>, 481674261>::parse(p)) +#undef FAIL +{} + +void jsonArray::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(value_, s); +} + +void jsonArray::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(value_, s); +} + +void jsonArray::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonArray"); + { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +jsonObject::jsonObject(array<object_ptr<jsonObjectValue>> &&value_) + : value_(std::move(value_)) +{} + +const std::int32_t jsonObject::ID; + +object_ptr<JSONValue> jsonObject::fetch(TlBufferParser &p) { + return make_tl_object<jsonObject>(p); +} + +jsonObject::jsonObject(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : value_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<jsonObjectValue>, -1059185703>>, 481674261>::parse(p)) +#undef FAIL +{} + +void jsonObject::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1059185703>>, 481674261>::store(value_, s); +} + +void jsonObject::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1059185703>>, 481674261>::store(value_, s); +} + +void jsonObject::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "jsonObject"); + { s.store_vector_begin("value", value_.size()); for (const auto &_value : value_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<KeyboardButton> KeyboardButton::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case keyboardButton::ID: + return keyboardButton::fetch(p); + case keyboardButtonUrl::ID: + return keyboardButtonUrl::fetch(p); + case keyboardButtonCallback::ID: + return keyboardButtonCallback::fetch(p); + case keyboardButtonRequestPhone::ID: + return keyboardButtonRequestPhone::fetch(p); + case keyboardButtonRequestGeoLocation::ID: + return keyboardButtonRequestGeoLocation::fetch(p); + case keyboardButtonSwitchInline::ID: + return keyboardButtonSwitchInline::fetch(p); + case keyboardButtonGame::ID: + return keyboardButtonGame::fetch(p); + case keyboardButtonBuy::ID: + return keyboardButtonBuy::fetch(p); + case keyboardButtonUrlAuth::ID: + return keyboardButtonUrlAuth::fetch(p); + case inputKeyboardButtonUrlAuth::ID: + return inputKeyboardButtonUrlAuth::fetch(p); + case keyboardButtonRequestPoll::ID: + return keyboardButtonRequestPoll::fetch(p); + case inputKeyboardButtonUserProfile::ID: + return inputKeyboardButtonUserProfile::fetch(p); + case keyboardButtonUserProfile::ID: + return keyboardButtonUserProfile::fetch(p); + case keyboardButtonWebView::ID: + return keyboardButtonWebView::fetch(p); + case keyboardButtonSimpleWebView::ID: + return keyboardButtonSimpleWebView::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +keyboardButton::keyboardButton(string const &text_) + : text_(text_) +{} + +const std::int32_t keyboardButton::ID; + +object_ptr<KeyboardButton> keyboardButton::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButton>(p); +} + +keyboardButton::keyboardButton(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButton::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButton::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButton"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +keyboardButtonUrl::keyboardButtonUrl(string const &text_, string const &url_) + : text_(text_) + , url_(url_) +{} + +const std::int32_t keyboardButtonUrl::ID; + +object_ptr<KeyboardButton> keyboardButtonUrl::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonUrl>(p); +} + +keyboardButtonUrl::keyboardButtonUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButtonUrl::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void keyboardButtonUrl::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void keyboardButtonUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonUrl"); + s.store_field("text", text_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +keyboardButtonCallback::keyboardButtonCallback() + : flags_() + , requires_password_() + , text_() + , data_() +{} + +keyboardButtonCallback::keyboardButtonCallback(int32 flags_, bool requires_password_, string const &text_, bytes &&data_) + : flags_(flags_) + , requires_password_(requires_password_) + , text_(text_) + , data_(std::move(data_)) +{} + +const std::int32_t keyboardButtonCallback::ID; + +object_ptr<KeyboardButton> keyboardButtonCallback::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<keyboardButtonCallback> res = make_tl_object<keyboardButtonCallback>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->requires_password_ = TlFetchTrue::parse(p); } + res->text_ = TlFetchString<string>::parse(p); + res->data_ = TlFetchBytes<bytes>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void keyboardButtonCallback::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + TlStoreString::store(data_, s); +} + +void keyboardButtonCallback::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + TlStoreString::store(data_, s); +} + +void keyboardButtonCallback::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonCallback"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("text", text_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +keyboardButtonRequestPhone::keyboardButtonRequestPhone(string const &text_) + : text_(text_) +{} + +const std::int32_t keyboardButtonRequestPhone::ID; + +object_ptr<KeyboardButton> keyboardButtonRequestPhone::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonRequestPhone>(p); +} + +keyboardButtonRequestPhone::keyboardButtonRequestPhone(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButtonRequestPhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonRequestPhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonRequestPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonRequestPhone"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +keyboardButtonRequestGeoLocation::keyboardButtonRequestGeoLocation(string const &text_) + : text_(text_) +{} + +const std::int32_t keyboardButtonRequestGeoLocation::ID; + +object_ptr<KeyboardButton> keyboardButtonRequestGeoLocation::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonRequestGeoLocation>(p); +} + +keyboardButtonRequestGeoLocation::keyboardButtonRequestGeoLocation(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButtonRequestGeoLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonRequestGeoLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonRequestGeoLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonRequestGeoLocation"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +keyboardButtonSwitchInline::keyboardButtonSwitchInline() + : flags_() + , same_peer_() + , text_() + , query_() +{} + +keyboardButtonSwitchInline::keyboardButtonSwitchInline(int32 flags_, bool same_peer_, string const &text_, string const &query_) + : flags_(flags_) + , same_peer_(same_peer_) + , text_(text_) + , query_(query_) +{} + +const std::int32_t keyboardButtonSwitchInline::ID; + +object_ptr<KeyboardButton> keyboardButtonSwitchInline::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<keyboardButtonSwitchInline> res = make_tl_object<keyboardButtonSwitchInline>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->same_peer_ = TlFetchTrue::parse(p); } + res->text_ = TlFetchString<string>::parse(p); + res->query_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void keyboardButtonSwitchInline::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + TlStoreString::store(query_, s); +} + +void keyboardButtonSwitchInline::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + TlStoreString::store(query_, s); +} + +void keyboardButtonSwitchInline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonSwitchInline"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("text", text_); + s.store_field("query", query_); + s.store_class_end(); + } +} + +keyboardButtonGame::keyboardButtonGame(string const &text_) + : text_(text_) +{} + +const std::int32_t keyboardButtonGame::ID; + +object_ptr<KeyboardButton> keyboardButtonGame::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonGame>(p); +} + +keyboardButtonGame::keyboardButtonGame(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButtonGame::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonGame::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonGame"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +keyboardButtonBuy::keyboardButtonBuy(string const &text_) + : text_(text_) +{} + +const std::int32_t keyboardButtonBuy::ID; + +object_ptr<KeyboardButton> keyboardButtonBuy::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonBuy>(p); +} + +keyboardButtonBuy::keyboardButtonBuy(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButtonBuy::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonBuy::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); +} + +void keyboardButtonBuy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonBuy"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +keyboardButtonUrlAuth::keyboardButtonUrlAuth() + : flags_() + , text_() + , fwd_text_() + , url_() + , button_id_() +{} + +keyboardButtonUrlAuth::keyboardButtonUrlAuth(int32 flags_, string const &text_, string const &fwd_text_, string const &url_, int32 button_id_) + : flags_(flags_) + , text_(text_) + , fwd_text_(fwd_text_) + , url_(url_) + , button_id_(button_id_) +{} + +const std::int32_t keyboardButtonUrlAuth::ID; + +object_ptr<KeyboardButton> keyboardButtonUrlAuth::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<keyboardButtonUrlAuth> res = make_tl_object<keyboardButtonUrlAuth>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->text_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->fwd_text_ = TlFetchString<string>::parse(p); } + res->url_ = TlFetchString<string>::parse(p); + res->button_id_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void keyboardButtonUrlAuth::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + if (var0 & 1) { TlStoreString::store(fwd_text_, s); } + TlStoreString::store(url_, s); + TlStoreBinary::store(button_id_, s); +} + +void keyboardButtonUrlAuth::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + if (var0 & 1) { TlStoreString::store(fwd_text_, s); } + TlStoreString::store(url_, s); + TlStoreBinary::store(button_id_, s); +} + +void keyboardButtonUrlAuth::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonUrlAuth"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("text", text_); + if (var0 & 1) { s.store_field("fwd_text", fwd_text_); } + s.store_field("url", url_); + s.store_field("button_id", button_id_); + s.store_class_end(); + } +} + +inputKeyboardButtonUrlAuth::inputKeyboardButtonUrlAuth() + : flags_() + , request_write_access_() + , text_() + , fwd_text_() + , url_() + , bot_() +{} + +inputKeyboardButtonUrlAuth::inputKeyboardButtonUrlAuth(int32 flags_, bool request_write_access_, string const &text_, string const &fwd_text_, string const &url_, object_ptr<InputUser> &&bot_) + : flags_(flags_) + , request_write_access_(request_write_access_) + , text_(text_) + , fwd_text_(fwd_text_) + , url_(url_) + , bot_(std::move(bot_)) +{} + +const std::int32_t inputKeyboardButtonUrlAuth::ID; + +object_ptr<KeyboardButton> inputKeyboardButtonUrlAuth::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<inputKeyboardButtonUrlAuth> res = make_tl_object<inputKeyboardButtonUrlAuth>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->request_write_access_ = TlFetchTrue::parse(p); } + res->text_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->fwd_text_ = TlFetchString<string>::parse(p); } + res->url_ = TlFetchString<string>::parse(p); + res->bot_ = TlFetchObject<InputUser>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void inputKeyboardButtonUrlAuth::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + if (var0 & 2) { TlStoreString::store(fwd_text_, s); } + TlStoreString::store(url_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); +} + +void inputKeyboardButtonUrlAuth::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(text_, s); + if (var0 & 2) { TlStoreString::store(fwd_text_, s); } + TlStoreString::store(url_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); +} + +void inputKeyboardButtonUrlAuth::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputKeyboardButtonUrlAuth"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("text", text_); + if (var0 & 2) { s.store_field("fwd_text", fwd_text_); } + s.store_field("url", url_); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_class_end(); + } +} + +keyboardButtonRequestPoll::keyboardButtonRequestPoll() + : flags_() + , quiz_() + , text_() +{} + +keyboardButtonRequestPoll::keyboardButtonRequestPoll(int32 flags_, bool quiz_, string const &text_) + : flags_(flags_) + , quiz_(quiz_) + , text_(text_) +{} + +const std::int32_t keyboardButtonRequestPoll::ID; + +object_ptr<KeyboardButton> keyboardButtonRequestPoll::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<keyboardButtonRequestPoll> res = make_tl_object<keyboardButtonRequestPoll>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->quiz_ = TlFetchBool::parse(p); } + res->text_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void keyboardButtonRequestPoll::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBool::store(quiz_, s); } + TlStoreString::store(text_, s); +} + +void keyboardButtonRequestPoll::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBool::store(quiz_, s); } + TlStoreString::store(text_, s); +} + +void keyboardButtonRequestPoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonRequestPoll"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("quiz", quiz_); } + s.store_field("text", text_); + s.store_class_end(); + } +} + +inputKeyboardButtonUserProfile::inputKeyboardButtonUserProfile(string const &text_, object_ptr<InputUser> &&user_id_) + : text_(text_) + , user_id_(std::move(user_id_)) +{} + +const std::int32_t inputKeyboardButtonUserProfile::ID; + +object_ptr<KeyboardButton> inputKeyboardButtonUserProfile::fetch(TlBufferParser &p) { + return make_tl_object<inputKeyboardButtonUserProfile>(p); +} + +inputKeyboardButtonUserProfile::inputKeyboardButtonUserProfile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , user_id_(TlFetchObject<InputUser>::parse(p)) +#undef FAIL +{} + +void inputKeyboardButtonUserProfile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void inputKeyboardButtonUserProfile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void inputKeyboardButtonUserProfile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputKeyboardButtonUserProfile"); + s.store_field("text", text_); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +keyboardButtonUserProfile::keyboardButtonUserProfile(string const &text_, int64 user_id_) + : text_(text_) + , user_id_(user_id_) +{} + +const std::int32_t keyboardButtonUserProfile::ID; + +object_ptr<KeyboardButton> keyboardButtonUserProfile::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonUserProfile>(p); +} + +keyboardButtonUserProfile::keyboardButtonUserProfile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void keyboardButtonUserProfile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreBinary::store(user_id_, s); +} + +void keyboardButtonUserProfile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreBinary::store(user_id_, s); +} + +void keyboardButtonUserProfile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonUserProfile"); + s.store_field("text", text_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +keyboardButtonWebView::keyboardButtonWebView(string const &text_, string const &url_) + : text_(text_) + , url_(url_) +{} + +const std::int32_t keyboardButtonWebView::ID; + +object_ptr<KeyboardButton> keyboardButtonWebView::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonWebView>(p); +} + +keyboardButtonWebView::keyboardButtonWebView(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButtonWebView::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void keyboardButtonWebView::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void keyboardButtonWebView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonWebView"); + s.store_field("text", text_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +keyboardButtonSimpleWebView::keyboardButtonSimpleWebView(string const &text_, string const &url_) + : text_(text_) + , url_(url_) +{} + +const std::int32_t keyboardButtonSimpleWebView::ID; + +object_ptr<KeyboardButton> keyboardButtonSimpleWebView::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonSimpleWebView>(p); +} + +keyboardButtonSimpleWebView::keyboardButtonSimpleWebView(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void keyboardButtonSimpleWebView::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void keyboardButtonSimpleWebView::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(url_, s); +} + +void keyboardButtonSimpleWebView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonSimpleWebView"); + s.store_field("text", text_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +keyboardButtonRow::keyboardButtonRow(array<object_ptr<KeyboardButton>> &&buttons_) + : buttons_(std::move(buttons_)) +{} + +const std::int32_t keyboardButtonRow::ID; + +object_ptr<keyboardButtonRow> keyboardButtonRow::fetch(TlBufferParser &p) { + return make_tl_object<keyboardButtonRow>(p); +} + +keyboardButtonRow::keyboardButtonRow(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : buttons_(TlFetchBoxed<TlFetchVector<TlFetchObject<KeyboardButton>>, 481674261>::parse(p)) +#undef FAIL +{} + +void keyboardButtonRow::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(buttons_, s); +} + +void keyboardButtonRow::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(buttons_, s); +} + +void keyboardButtonRow::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "keyboardButtonRow"); + { s.store_vector_begin("buttons", buttons_.size()); for (const auto &_value : buttons_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +labeledPrice::labeledPrice(string const &label_, int64 amount_) + : label_(label_) + , amount_(amount_) +{} + +const std::int32_t labeledPrice::ID; + +object_ptr<labeledPrice> labeledPrice::fetch(TlBufferParser &p) { + return make_tl_object<labeledPrice>(p); +} + +labeledPrice::labeledPrice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : label_(TlFetchString<string>::parse(p)) + , amount_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void labeledPrice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(label_, s); + TlStoreBinary::store(amount_, s); +} + +void labeledPrice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(label_, s); + TlStoreBinary::store(amount_, s); +} + +void labeledPrice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "labeledPrice"); + s.store_field("label", label_); + s.store_field("amount", amount_); + s.store_class_end(); + } +} + +const std::int32_t langPackDifference::ID; + +object_ptr<langPackDifference> langPackDifference::fetch(TlBufferParser &p) { + return make_tl_object<langPackDifference>(p); +} + +langPackDifference::langPackDifference(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : lang_code_(TlFetchString<string>::parse(p)) + , from_version_(TlFetchInt::parse(p)) + , version_(TlFetchInt::parse(p)) + , strings_(TlFetchBoxed<TlFetchVector<TlFetchObject<LangPackString>>, 481674261>::parse(p)) +#undef FAIL +{} + +void langPackDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langPackDifference"); + s.store_field("lang_code", lang_code_); + s.store_field("from_version", from_version_); + s.store_field("version", version_); + { s.store_vector_begin("strings", strings_.size()); for (const auto &_value : strings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +langPackLanguage::langPackLanguage() + : flags_() + , official_() + , rtl_() + , beta_() + , name_() + , native_name_() + , lang_code_() + , base_lang_code_() + , plural_code_() + , strings_count_() + , translated_count_() + , translations_url_() +{} + +const std::int32_t langPackLanguage::ID; + +object_ptr<langPackLanguage> langPackLanguage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<langPackLanguage> res = make_tl_object<langPackLanguage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->official_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->rtl_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->beta_ = TlFetchTrue::parse(p); } + res->name_ = TlFetchString<string>::parse(p); + res->native_name_ = TlFetchString<string>::parse(p); + res->lang_code_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->base_lang_code_ = TlFetchString<string>::parse(p); } + res->plural_code_ = TlFetchString<string>::parse(p); + res->strings_count_ = TlFetchInt::parse(p); + res->translated_count_ = TlFetchInt::parse(p); + res->translations_url_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void langPackLanguage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langPackLanguage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("name", name_); + s.store_field("native_name", native_name_); + s.store_field("lang_code", lang_code_); + if (var0 & 2) { s.store_field("base_lang_code", base_lang_code_); } + s.store_field("plural_code", plural_code_); + s.store_field("strings_count", strings_count_); + s.store_field("translated_count", translated_count_); + s.store_field("translations_url", translations_url_); + s.store_class_end(); + } +} + +object_ptr<LangPackString> LangPackString::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case langPackString::ID: + return langPackString::fetch(p); + case langPackStringPluralized::ID: + return langPackStringPluralized::fetch(p); + case langPackStringDeleted::ID: + return langPackStringDeleted::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +langPackString::langPackString(string const &key_, string const &value_) + : key_(key_) + , value_(value_) +{} + +const std::int32_t langPackString::ID; + +object_ptr<LangPackString> langPackString::fetch(TlBufferParser &p) { + return make_tl_object<langPackString>(p); +} + +langPackString::langPackString(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : key_(TlFetchString<string>::parse(p)) + , value_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void langPackString::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langPackString"); + s.store_field("key", key_); + s.store_field("value", value_); + s.store_class_end(); + } +} + +langPackStringPluralized::langPackStringPluralized() + : flags_() + , key_() + , zero_value_() + , one_value_() + , two_value_() + , few_value_() + , many_value_() + , other_value_() +{} + +langPackStringPluralized::langPackStringPluralized(int32 flags_, string const &key_, string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_) + : flags_(flags_) + , key_(key_) + , zero_value_(zero_value_) + , one_value_(one_value_) + , two_value_(two_value_) + , few_value_(few_value_) + , many_value_(many_value_) + , other_value_(other_value_) +{} + +const std::int32_t langPackStringPluralized::ID; + +object_ptr<LangPackString> langPackStringPluralized::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<langPackStringPluralized> res = make_tl_object<langPackStringPluralized>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->key_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->zero_value_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->one_value_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->two_value_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->few_value_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->many_value_ = TlFetchString<string>::parse(p); } + res->other_value_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void langPackStringPluralized::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langPackStringPluralized"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("key", key_); + if (var0 & 1) { s.store_field("zero_value", zero_value_); } + if (var0 & 2) { s.store_field("one_value", one_value_); } + if (var0 & 4) { s.store_field("two_value", two_value_); } + if (var0 & 8) { s.store_field("few_value", few_value_); } + if (var0 & 16) { s.store_field("many_value", many_value_); } + s.store_field("other_value", other_value_); + s.store_class_end(); + } +} + +langPackStringDeleted::langPackStringDeleted(string const &key_) + : key_(key_) +{} + +const std::int32_t langPackStringDeleted::ID; + +object_ptr<LangPackString> langPackStringDeleted::fetch(TlBufferParser &p) { + return make_tl_object<langPackStringDeleted>(p); +} + +langPackStringDeleted::langPackStringDeleted(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : key_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void langPackStringDeleted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langPackStringDeleted"); + s.store_field("key", key_); + s.store_class_end(); + } +} + +maskCoords::maskCoords(int32 n_, double x_, double y_, double zoom_) + : n_(n_) + , x_(x_) + , y_(y_) + , zoom_(zoom_) +{} + +const std::int32_t maskCoords::ID; + +object_ptr<maskCoords> maskCoords::fetch(TlBufferParser &p) { + return make_tl_object<maskCoords>(p); +} + +maskCoords::maskCoords(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : n_(TlFetchInt::parse(p)) + , x_(TlFetchDouble::parse(p)) + , y_(TlFetchDouble::parse(p)) + , zoom_(TlFetchDouble::parse(p)) +#undef FAIL +{} + +void maskCoords::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(n_, s); + TlStoreBinary::store(x_, s); + TlStoreBinary::store(y_, s); + TlStoreBinary::store(zoom_, s); +} + +void maskCoords::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(n_, s); + TlStoreBinary::store(x_, s); + TlStoreBinary::store(y_, s); + TlStoreBinary::store(zoom_, s); +} + +void maskCoords::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "maskCoords"); + s.store_field("n", n_); + s.store_field("x", x_); + s.store_field("y", y_); + s.store_field("zoom", zoom_); + s.store_class_end(); + } +} + +object_ptr<Message> Message::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messageEmpty::ID: + return messageEmpty::fetch(p); + case message::ID: + return message::fetch(p); + case messageService::ID: + return messageService::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +messageEmpty::messageEmpty() + : flags_() + , id_() + , peer_id_() +{} + +const std::int32_t messageEmpty::ID; + +object_ptr<Message> messageEmpty::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageEmpty> res = make_tl_object<messageEmpty>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchInt::parse(p); + if (var0 & 1) { res->peer_id_ = TlFetchObject<Peer>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEmpty"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + if (var0 & 1) { s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get())); } + s.store_class_end(); + } +} + +message::message() + : flags_() + , out_() + , mentioned_() + , media_unread_() + , silent_() + , post_() + , from_scheduled_() + , legacy_() + , edit_hide_() + , pinned_() + , noforwards_() + , id_() + , from_id_() + , peer_id_() + , fwd_from_() + , via_bot_id_() + , reply_to_() + , date_() + , message_() + , media_() + , reply_markup_() + , entities_() + , views_() + , forwards_() + , replies_() + , edit_date_() + , post_author_() + , grouped_id_() + , reactions_() + , restriction_reason_() + , ttl_period_() +{} + +message::message(int32 flags_, bool out_, bool mentioned_, bool media_unread_, bool silent_, bool post_, bool from_scheduled_, bool legacy_, bool edit_hide_, bool pinned_, bool noforwards_, int32 id_, object_ptr<Peer> &&from_id_, object_ptr<Peer> &&peer_id_, object_ptr<messageFwdHeader> &&fwd_from_, int64 via_bot_id_, object_ptr<messageReplyHeader> &&reply_to_, int32 date_, string const &message_, object_ptr<MessageMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 views_, int32 forwards_, object_ptr<messageReplies> &&replies_, int32 edit_date_, string const &post_author_, int64 grouped_id_, object_ptr<messageReactions> &&reactions_, array<object_ptr<restrictionReason>> &&restriction_reason_, int32 ttl_period_) + : flags_(flags_) + , out_(out_) + , mentioned_(mentioned_) + , media_unread_(media_unread_) + , silent_(silent_) + , post_(post_) + , from_scheduled_(from_scheduled_) + , legacy_(legacy_) + , edit_hide_(edit_hide_) + , pinned_(pinned_) + , noforwards_(noforwards_) + , id_(id_) + , from_id_(std::move(from_id_)) + , peer_id_(std::move(peer_id_)) + , fwd_from_(std::move(fwd_from_)) + , via_bot_id_(via_bot_id_) + , reply_to_(std::move(reply_to_)) + , date_(date_) + , message_(message_) + , media_(std::move(media_)) + , reply_markup_(std::move(reply_markup_)) + , entities_(std::move(entities_)) + , views_(views_) + , forwards_(forwards_) + , replies_(std::move(replies_)) + , edit_date_(edit_date_) + , post_author_(post_author_) + , grouped_id_(grouped_id_) + , reactions_(std::move(reactions_)) + , restriction_reason_(std::move(restriction_reason_)) + , ttl_period_(ttl_period_) +{} + +const std::int32_t message::ID; + +object_ptr<Message> message::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<message> res = make_tl_object<message>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); } + if (var0 & 16384) { res->post_ = TlFetchTrue::parse(p); } + if (var0 & 262144) { res->from_scheduled_ = TlFetchTrue::parse(p); } + if (var0 & 524288) { res->legacy_ = TlFetchTrue::parse(p); } + if (var0 & 2097152) { res->edit_hide_ = TlFetchTrue::parse(p); } + if (var0 & 16777216) { res->pinned_ = TlFetchTrue::parse(p); } + if (var0 & 67108864) { res->noforwards_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + if (var0 & 256) { res->from_id_ = TlFetchObject<Peer>::parse(p); } + res->peer_id_ = TlFetchObject<Peer>::parse(p); + if (var0 & 4) { res->fwd_from_ = TlFetchBoxed<TlFetchObject<messageFwdHeader>, 1601666510>::parse(p); } + if (var0 & 2048) { res->via_bot_id_ = TlFetchLong::parse(p); } + if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); } + res->date_ = TlFetchInt::parse(p); + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 512) { res->media_ = TlFetchObject<MessageMedia>::parse(p); } + if (var0 & 64) { res->reply_markup_ = TlFetchObject<ReplyMarkup>::parse(p); } + if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 1024) { res->views_ = TlFetchInt::parse(p); } + if (var0 & 1024) { res->forwards_ = TlFetchInt::parse(p); } + if (var0 & 8388608) { res->replies_ = TlFetchBoxed<TlFetchObject<messageReplies>, -2083123262>::parse(p); } + if (var0 & 32768) { res->edit_date_ = TlFetchInt::parse(p); } + if (var0 & 65536) { res->post_author_ = TlFetchString<string>::parse(p); } + if (var0 & 131072) { res->grouped_id_ = TlFetchLong::parse(p); } + if (var0 & 1048576) { res->reactions_ = TlFetchBoxed<TlFetchObject<messageReactions>, 1328256121>::parse(p); } + if (var0 & 4194304) { res->restriction_reason_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<restrictionReason>, -797791052>>, 481674261>::parse(p); } + if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void message::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "message"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + if (var0 & 256) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); } + s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get())); + if (var0 & 4) { s.store_object_field("fwd_from", static_cast<const BaseObject *>(fwd_from_.get())); } + if (var0 & 2048) { s.store_field("via_bot_id", via_bot_id_); } + if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); } + s.store_field("date", date_); + s.store_field("message", message_); + if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); } + if (var0 & 64) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 1024) { s.store_field("views", views_); } + if (var0 & 1024) { s.store_field("forwards", forwards_); } + if (var0 & 8388608) { s.store_object_field("replies", static_cast<const BaseObject *>(replies_.get())); } + if (var0 & 32768) { s.store_field("edit_date", edit_date_); } + if (var0 & 65536) { s.store_field("post_author", post_author_); } + if (var0 & 131072) { s.store_field("grouped_id", grouped_id_); } + if (var0 & 1048576) { s.store_object_field("reactions", static_cast<const BaseObject *>(reactions_.get())); } + if (var0 & 4194304) { { s.store_vector_begin("restriction_reason", restriction_reason_.size()); for (const auto &_value : restriction_reason_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); } + s.store_class_end(); + } +} + +messageService::messageService() + : flags_() + , out_() + , mentioned_() + , media_unread_() + , silent_() + , post_() + , legacy_() + , id_() + , from_id_() + , peer_id_() + , reply_to_() + , date_() + , action_() + , ttl_period_() +{} + +const std::int32_t messageService::ID; + +object_ptr<Message> messageService::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageService> res = make_tl_object<messageService>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); } + if (var0 & 16384) { res->post_ = TlFetchTrue::parse(p); } + if (var0 & 524288) { res->legacy_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + if (var0 & 256) { res->from_id_ = TlFetchObject<Peer>::parse(p); } + res->peer_id_ = TlFetchObject<Peer>::parse(p); + if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); } + res->date_ = TlFetchInt::parse(p); + res->action_ = TlFetchObject<MessageAction>::parse(p); + if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageService"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + if (var0 & 256) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); } + s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get())); + if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); } + s.store_field("date", date_); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); } + s.store_class_end(); + } +} + +object_ptr<MessageAction> MessageAction::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messageActionEmpty::ID: + return messageActionEmpty::fetch(p); + case messageActionChatCreate::ID: + return messageActionChatCreate::fetch(p); + case messageActionChatEditTitle::ID: + return messageActionChatEditTitle::fetch(p); + case messageActionChatEditPhoto::ID: + return messageActionChatEditPhoto::fetch(p); + case messageActionChatDeletePhoto::ID: + return messageActionChatDeletePhoto::fetch(p); + case messageActionChatAddUser::ID: + return messageActionChatAddUser::fetch(p); + case messageActionChatDeleteUser::ID: + return messageActionChatDeleteUser::fetch(p); + case messageActionChatJoinedByLink::ID: + return messageActionChatJoinedByLink::fetch(p); + case messageActionChannelCreate::ID: + return messageActionChannelCreate::fetch(p); + case messageActionChatMigrateTo::ID: + return messageActionChatMigrateTo::fetch(p); + case messageActionChannelMigrateFrom::ID: + return messageActionChannelMigrateFrom::fetch(p); + case messageActionPinMessage::ID: + return messageActionPinMessage::fetch(p); + case messageActionHistoryClear::ID: + return messageActionHistoryClear::fetch(p); + case messageActionGameScore::ID: + return messageActionGameScore::fetch(p); + case messageActionPaymentSentMe::ID: + return messageActionPaymentSentMe::fetch(p); + case messageActionPaymentSent::ID: + return messageActionPaymentSent::fetch(p); + case messageActionPhoneCall::ID: + return messageActionPhoneCall::fetch(p); + case messageActionScreenshotTaken::ID: + return messageActionScreenshotTaken::fetch(p); + case messageActionCustomAction::ID: + return messageActionCustomAction::fetch(p); + case messageActionBotAllowed::ID: + return messageActionBotAllowed::fetch(p); + case messageActionSecureValuesSentMe::ID: + return messageActionSecureValuesSentMe::fetch(p); + case messageActionSecureValuesSent::ID: + return messageActionSecureValuesSent::fetch(p); + case messageActionContactSignUp::ID: + return messageActionContactSignUp::fetch(p); + case messageActionGeoProximityReached::ID: + return messageActionGeoProximityReached::fetch(p); + case messageActionGroupCall::ID: + return messageActionGroupCall::fetch(p); + case messageActionInviteToGroupCall::ID: + return messageActionInviteToGroupCall::fetch(p); + case messageActionSetMessagesTTL::ID: + return messageActionSetMessagesTTL::fetch(p); + case messageActionGroupCallScheduled::ID: + return messageActionGroupCallScheduled::fetch(p); + case messageActionSetChatTheme::ID: + return messageActionSetChatTheme::fetch(p); + case messageActionChatJoinedByRequest::ID: + return messageActionChatJoinedByRequest::fetch(p); + case messageActionWebViewDataSentMe::ID: + return messageActionWebViewDataSentMe::fetch(p); + case messageActionWebViewDataSent::ID: + return messageActionWebViewDataSent::fetch(p); + case messageActionGiftPremium::ID: + return messageActionGiftPremium::fetch(p); + case messageActionTopicCreate::ID: + return messageActionTopicCreate::fetch(p); + case messageActionTopicEdit::ID: + return messageActionTopicEdit::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messageActionEmpty::ID; + +object_ptr<MessageAction> messageActionEmpty::fetch(TlBufferParser &p) { + return make_tl_object<messageActionEmpty>(); +} + +void messageActionEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionEmpty"); + s.store_class_end(); + } +} + +const std::int32_t messageActionChatCreate::ID; + +object_ptr<MessageAction> messageActionChatCreate::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatCreate>(p); +} + +messageActionChatCreate::messageActionChatCreate(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : title_(TlFetchString<string>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void messageActionChatCreate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatCreate"); + s.store_field("title", title_); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messageActionChatEditTitle::ID; + +object_ptr<MessageAction> messageActionChatEditTitle::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatEditTitle>(p); +} + +messageActionChatEditTitle::messageActionChatEditTitle(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : title_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageActionChatEditTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatEditTitle"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +const std::int32_t messageActionChatEditPhoto::ID; + +object_ptr<MessageAction> messageActionChatEditPhoto::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatEditPhoto>(p); +} + +messageActionChatEditPhoto::messageActionChatEditPhoto(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : photo_(TlFetchObject<Photo>::parse(p)) +#undef FAIL +{} + +void messageActionChatEditPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatEditPhoto"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +const std::int32_t messageActionChatDeletePhoto::ID; + +object_ptr<MessageAction> messageActionChatDeletePhoto::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatDeletePhoto>(); +} + +void messageActionChatDeletePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatDeletePhoto"); + s.store_class_end(); + } +} + +const std::int32_t messageActionChatAddUser::ID; + +object_ptr<MessageAction> messageActionChatAddUser::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatAddUser>(p); +} + +messageActionChatAddUser::messageActionChatAddUser(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void messageActionChatAddUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatAddUser"); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messageActionChatDeleteUser::ID; + +object_ptr<MessageAction> messageActionChatDeleteUser::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatDeleteUser>(p); +} + +messageActionChatDeleteUser::messageActionChatDeleteUser(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageActionChatDeleteUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatDeleteUser"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +const std::int32_t messageActionChatJoinedByLink::ID; + +object_ptr<MessageAction> messageActionChatJoinedByLink::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatJoinedByLink>(p); +} + +messageActionChatJoinedByLink::messageActionChatJoinedByLink(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : inviter_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageActionChatJoinedByLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatJoinedByLink"); + s.store_field("inviter_id", inviter_id_); + s.store_class_end(); + } +} + +const std::int32_t messageActionChannelCreate::ID; + +object_ptr<MessageAction> messageActionChannelCreate::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChannelCreate>(p); +} + +messageActionChannelCreate::messageActionChannelCreate(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : title_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageActionChannelCreate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChannelCreate"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +const std::int32_t messageActionChatMigrateTo::ID; + +object_ptr<MessageAction> messageActionChatMigrateTo::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatMigrateTo>(p); +} + +messageActionChatMigrateTo::messageActionChatMigrateTo(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageActionChatMigrateTo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatMigrateTo"); + s.store_field("channel_id", channel_id_); + s.store_class_end(); + } +} + +const std::int32_t messageActionChannelMigrateFrom::ID; + +object_ptr<MessageAction> messageActionChannelMigrateFrom::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChannelMigrateFrom>(p); +} + +messageActionChannelMigrateFrom::messageActionChannelMigrateFrom(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : title_(TlFetchString<string>::parse(p)) + , chat_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageActionChannelMigrateFrom::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChannelMigrateFrom"); + s.store_field("title", title_); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +const std::int32_t messageActionPinMessage::ID; + +object_ptr<MessageAction> messageActionPinMessage::fetch(TlBufferParser &p) { + return make_tl_object<messageActionPinMessage>(); +} + +void messageActionPinMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionPinMessage"); + s.store_class_end(); + } +} + +const std::int32_t messageActionHistoryClear::ID; + +object_ptr<MessageAction> messageActionHistoryClear::fetch(TlBufferParser &p) { + return make_tl_object<messageActionHistoryClear>(); +} + +void messageActionHistoryClear::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionHistoryClear"); + s.store_class_end(); + } +} + +const std::int32_t messageActionGameScore::ID; + +object_ptr<MessageAction> messageActionGameScore::fetch(TlBufferParser &p) { + return make_tl_object<messageActionGameScore>(p); +} + +messageActionGameScore::messageActionGameScore(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : game_id_(TlFetchLong::parse(p)) + , score_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageActionGameScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionGameScore"); + s.store_field("game_id", game_id_); + s.store_field("score", score_); + s.store_class_end(); + } +} + +messageActionPaymentSentMe::messageActionPaymentSentMe() + : flags_() + , recurring_init_() + , recurring_used_() + , currency_() + , total_amount_() + , payload_() + , info_() + , shipping_option_id_() + , charge_() +{} + +const std::int32_t messageActionPaymentSentMe::ID; + +object_ptr<MessageAction> messageActionPaymentSentMe::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageActionPaymentSentMe> res = make_tl_object<messageActionPaymentSentMe>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->recurring_init_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->recurring_used_ = TlFetchTrue::parse(p); } + res->currency_ = TlFetchString<string>::parse(p); + res->total_amount_ = TlFetchLong::parse(p); + res->payload_ = TlFetchBytes<bytes>::parse(p); + if (var0 & 1) { res->info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); } + if (var0 & 2) { res->shipping_option_id_ = TlFetchString<string>::parse(p); } + res->charge_ = TlFetchBoxed<TlFetchObject<paymentCharge>, -368917890>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageActionPaymentSentMe::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionPaymentSentMe"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_bytes_field("payload", payload_); + if (var0 & 1) { s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); } + if (var0 & 2) { s.store_field("shipping_option_id", shipping_option_id_); } + s.store_object_field("charge", static_cast<const BaseObject *>(charge_.get())); + s.store_class_end(); + } +} + +messageActionPaymentSent::messageActionPaymentSent() + : flags_() + , recurring_init_() + , recurring_used_() + , currency_() + , total_amount_() + , invoice_slug_() +{} + +const std::int32_t messageActionPaymentSent::ID; + +object_ptr<MessageAction> messageActionPaymentSent::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageActionPaymentSent> res = make_tl_object<messageActionPaymentSent>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->recurring_init_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->recurring_used_ = TlFetchTrue::parse(p); } + res->currency_ = TlFetchString<string>::parse(p); + res->total_amount_ = TlFetchLong::parse(p); + if (var0 & 1) { res->invoice_slug_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageActionPaymentSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionPaymentSent"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + if (var0 & 1) { s.store_field("invoice_slug", invoice_slug_); } + s.store_class_end(); + } +} + +messageActionPhoneCall::messageActionPhoneCall() + : flags_() + , video_() + , call_id_() + , reason_() + , duration_() +{} + +const std::int32_t messageActionPhoneCall::ID; + +object_ptr<MessageAction> messageActionPhoneCall::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageActionPhoneCall> res = make_tl_object<messageActionPhoneCall>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->video_ = TlFetchTrue::parse(p); } + res->call_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->reason_ = TlFetchObject<PhoneCallDiscardReason>::parse(p); } + if (var0 & 2) { res->duration_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageActionPhoneCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionPhoneCall"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("call_id", call_id_); + if (var0 & 1) { s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); } + if (var0 & 2) { s.store_field("duration", duration_); } + s.store_class_end(); + } +} + +const std::int32_t messageActionScreenshotTaken::ID; + +object_ptr<MessageAction> messageActionScreenshotTaken::fetch(TlBufferParser &p) { + return make_tl_object<messageActionScreenshotTaken>(); +} + +void messageActionScreenshotTaken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionScreenshotTaken"); + s.store_class_end(); + } +} + +const std::int32_t messageActionCustomAction::ID; + +object_ptr<MessageAction> messageActionCustomAction::fetch(TlBufferParser &p) { + return make_tl_object<messageActionCustomAction>(p); +} + +messageActionCustomAction::messageActionCustomAction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageActionCustomAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionCustomAction"); + s.store_field("message", message_); + s.store_class_end(); + } +} + +const std::int32_t messageActionBotAllowed::ID; + +object_ptr<MessageAction> messageActionBotAllowed::fetch(TlBufferParser &p) { + return make_tl_object<messageActionBotAllowed>(p); +} + +messageActionBotAllowed::messageActionBotAllowed(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : domain_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageActionBotAllowed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionBotAllowed"); + s.store_field("domain", domain_); + s.store_class_end(); + } +} + +const std::int32_t messageActionSecureValuesSentMe::ID; + +object_ptr<MessageAction> messageActionSecureValuesSentMe::fetch(TlBufferParser &p) { + return make_tl_object<messageActionSecureValuesSentMe>(p); +} + +messageActionSecureValuesSentMe::messageActionSecureValuesSentMe(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : values_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p)) + , credentials_(TlFetchBoxed<TlFetchObject<secureCredentialsEncrypted>, 871426631>::parse(p)) +#undef FAIL +{} + +void messageActionSecureValuesSentMe::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionSecureValuesSentMe"); + { s.store_vector_begin("values", values_.size()); for (const auto &_value : values_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get())); + s.store_class_end(); + } +} + +const std::int32_t messageActionSecureValuesSent::ID; + +object_ptr<MessageAction> messageActionSecureValuesSent::fetch(TlBufferParser &p) { + return make_tl_object<messageActionSecureValuesSent>(p); +} + +messageActionSecureValuesSent::messageActionSecureValuesSent(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : types_(TlFetchBoxed<TlFetchVector<TlFetchObject<SecureValueType>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messageActionSecureValuesSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionSecureValuesSent"); + { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messageActionContactSignUp::ID; + +object_ptr<MessageAction> messageActionContactSignUp::fetch(TlBufferParser &p) { + return make_tl_object<messageActionContactSignUp>(); +} + +void messageActionContactSignUp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionContactSignUp"); + s.store_class_end(); + } +} + +const std::int32_t messageActionGeoProximityReached::ID; + +object_ptr<MessageAction> messageActionGeoProximityReached::fetch(TlBufferParser &p) { + return make_tl_object<messageActionGeoProximityReached>(p); +} + +messageActionGeoProximityReached::messageActionGeoProximityReached(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : from_id_(TlFetchObject<Peer>::parse(p)) + , to_id_(TlFetchObject<Peer>::parse(p)) + , distance_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageActionGeoProximityReached::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionGeoProximityReached"); + s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); + s.store_object_field("to_id", static_cast<const BaseObject *>(to_id_.get())); + s.store_field("distance", distance_); + s.store_class_end(); + } +} + +messageActionGroupCall::messageActionGroupCall() + : flags_() + , call_() + , duration_() +{} + +const std::int32_t messageActionGroupCall::ID; + +object_ptr<MessageAction> messageActionGroupCall::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageActionGroupCall> res = make_tl_object<messageActionGroupCall>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->call_ = TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p); + if (var0 & 1) { res->duration_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageActionGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionGroupCall"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + if (var0 & 1) { s.store_field("duration", duration_); } + s.store_class_end(); + } +} + +const std::int32_t messageActionInviteToGroupCall::ID; + +object_ptr<MessageAction> messageActionInviteToGroupCall::fetch(TlBufferParser &p) { + return make_tl_object<messageActionInviteToGroupCall>(p); +} + +messageActionInviteToGroupCall::messageActionInviteToGroupCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void messageActionInviteToGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionInviteToGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messageActionSetMessagesTTL::ID; + +object_ptr<MessageAction> messageActionSetMessagesTTL::fetch(TlBufferParser &p) { + return make_tl_object<messageActionSetMessagesTTL>(p); +} + +messageActionSetMessagesTTL::messageActionSetMessagesTTL(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : period_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageActionSetMessagesTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionSetMessagesTTL"); + s.store_field("period", period_); + s.store_class_end(); + } +} + +const std::int32_t messageActionGroupCallScheduled::ID; + +object_ptr<MessageAction> messageActionGroupCallScheduled::fetch(TlBufferParser &p) { + return make_tl_object<messageActionGroupCallScheduled>(p); +} + +messageActionGroupCallScheduled::messageActionGroupCallScheduled(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p)) + , schedule_date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageActionGroupCallScheduled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionGroupCallScheduled"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_field("schedule_date", schedule_date_); + s.store_class_end(); + } +} + +const std::int32_t messageActionSetChatTheme::ID; + +object_ptr<MessageAction> messageActionSetChatTheme::fetch(TlBufferParser &p) { + return make_tl_object<messageActionSetChatTheme>(p); +} + +messageActionSetChatTheme::messageActionSetChatTheme(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : emoticon_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageActionSetChatTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionSetChatTheme"); + s.store_field("emoticon", emoticon_); + s.store_class_end(); + } +} + +const std::int32_t messageActionChatJoinedByRequest::ID; + +object_ptr<MessageAction> messageActionChatJoinedByRequest::fetch(TlBufferParser &p) { + return make_tl_object<messageActionChatJoinedByRequest>(); +} + +void messageActionChatJoinedByRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionChatJoinedByRequest"); + s.store_class_end(); + } +} + +const std::int32_t messageActionWebViewDataSentMe::ID; + +object_ptr<MessageAction> messageActionWebViewDataSentMe::fetch(TlBufferParser &p) { + return make_tl_object<messageActionWebViewDataSentMe>(p); +} + +messageActionWebViewDataSentMe::messageActionWebViewDataSentMe(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , data_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageActionWebViewDataSentMe::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionWebViewDataSentMe"); + s.store_field("text", text_); + s.store_field("data", data_); + s.store_class_end(); + } +} + +const std::int32_t messageActionWebViewDataSent::ID; + +object_ptr<MessageAction> messageActionWebViewDataSent::fetch(TlBufferParser &p) { + return make_tl_object<messageActionWebViewDataSent>(p); +} + +messageActionWebViewDataSent::messageActionWebViewDataSent(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageActionWebViewDataSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionWebViewDataSent"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +const std::int32_t messageActionGiftPremium::ID; + +object_ptr<MessageAction> messageActionGiftPremium::fetch(TlBufferParser &p) { + return make_tl_object<messageActionGiftPremium>(p); +} + +messageActionGiftPremium::messageActionGiftPremium(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : currency_(TlFetchString<string>::parse(p)) + , amount_(TlFetchLong::parse(p)) + , months_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageActionGiftPremium::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionGiftPremium"); + s.store_field("currency", currency_); + s.store_field("amount", amount_); + s.store_field("months", months_); + s.store_class_end(); + } +} + +messageActionTopicCreate::messageActionTopicCreate() + : flags_() + , title_() + , icon_color_() + , icon_emoji_id_() +{} + +const std::int32_t messageActionTopicCreate::ID; + +object_ptr<MessageAction> messageActionTopicCreate::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageActionTopicCreate> res = make_tl_object<messageActionTopicCreate>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->title_ = TlFetchString<string>::parse(p); + res->icon_color_ = TlFetchInt::parse(p); + if (var0 & 1) { res->icon_emoji_id_ = TlFetchLong::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageActionTopicCreate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionTopicCreate"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("title", title_); + s.store_field("icon_color", icon_color_); + if (var0 & 1) { s.store_field("icon_emoji_id", icon_emoji_id_); } + s.store_class_end(); + } +} + +messageActionTopicEdit::messageActionTopicEdit() + : flags_() + , title_() + , icon_emoji_id_() + , closed_() +{} + +const std::int32_t messageActionTopicEdit::ID; + +object_ptr<MessageAction> messageActionTopicEdit::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageActionTopicEdit> res = make_tl_object<messageActionTopicEdit>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->icon_emoji_id_ = TlFetchLong::parse(p); } + if (var0 & 4) { res->closed_ = TlFetchBool::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageActionTopicEdit::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageActionTopicEdit"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("title", title_); } + if (var0 & 2) { s.store_field("icon_emoji_id", icon_emoji_id_); } + if (var0 & 4) { s.store_field("closed", closed_); } + s.store_class_end(); + } +} + +object_ptr<MessageEntity> MessageEntity::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messageEntityUnknown::ID: + return messageEntityUnknown::fetch(p); + case messageEntityMention::ID: + return messageEntityMention::fetch(p); + case messageEntityHashtag::ID: + return messageEntityHashtag::fetch(p); + case messageEntityBotCommand::ID: + return messageEntityBotCommand::fetch(p); + case messageEntityUrl::ID: + return messageEntityUrl::fetch(p); + case messageEntityEmail::ID: + return messageEntityEmail::fetch(p); + case messageEntityBold::ID: + return messageEntityBold::fetch(p); + case messageEntityItalic::ID: + return messageEntityItalic::fetch(p); + case messageEntityCode::ID: + return messageEntityCode::fetch(p); + case messageEntityPre::ID: + return messageEntityPre::fetch(p); + case messageEntityTextUrl::ID: + return messageEntityTextUrl::fetch(p); + case messageEntityMentionName::ID: + return messageEntityMentionName::fetch(p); + case inputMessageEntityMentionName::ID: + return inputMessageEntityMentionName::fetch(p); + case messageEntityPhone::ID: + return messageEntityPhone::fetch(p); + case messageEntityCashtag::ID: + return messageEntityCashtag::fetch(p); + case messageEntityUnderline::ID: + return messageEntityUnderline::fetch(p); + case messageEntityStrike::ID: + return messageEntityStrike::fetch(p); + case messageEntityBlockquote::ID: + return messageEntityBlockquote::fetch(p); + case messageEntityBankCard::ID: + return messageEntityBankCard::fetch(p); + case messageEntitySpoiler::ID: + return messageEntitySpoiler::fetch(p); + case messageEntityCustomEmoji::ID: + return messageEntityCustomEmoji::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +messageEntityUnknown::messageEntityUnknown(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityUnknown::ID; + +object_ptr<MessageEntity> messageEntityUnknown::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityUnknown>(p); +} + +messageEntityUnknown::messageEntityUnknown(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityUnknown::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnknown::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityUnknown"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityMention::messageEntityMention(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityMention::ID; + +object_ptr<MessageEntity> messageEntityMention::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityMention>(p); +} + +messageEntityMention::messageEntityMention(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityMention::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityMention::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityMention::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityMention"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityHashtag::messageEntityHashtag(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityHashtag::ID; + +object_ptr<MessageEntity> messageEntityHashtag::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityHashtag>(p); +} + +messageEntityHashtag::messageEntityHashtag(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityHashtag::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityHashtag::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityHashtag::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityHashtag"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBotCommand::messageEntityBotCommand(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBotCommand::ID; + +object_ptr<MessageEntity> messageEntityBotCommand::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityBotCommand>(p); +} + +messageEntityBotCommand::messageEntityBotCommand(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBotCommand::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBotCommand::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBotCommand::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBotCommand"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityUrl::messageEntityUrl(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityUrl::ID; + +object_ptr<MessageEntity> messageEntityUrl::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityUrl>(p); +} + +messageEntityUrl::messageEntityUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityUrl::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUrl::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityUrl"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityEmail::messageEntityEmail(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityEmail::ID; + +object_ptr<MessageEntity> messageEntityEmail::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityEmail>(p); +} + +messageEntityEmail::messageEntityEmail(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityEmail"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBold::messageEntityBold(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBold::ID; + +object_ptr<MessageEntity> messageEntityBold::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityBold>(p); +} + +messageEntityBold::messageEntityBold(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBold::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBold::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBold::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBold"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityItalic::messageEntityItalic(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityItalic::ID; + +object_ptr<MessageEntity> messageEntityItalic::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityItalic>(p); +} + +messageEntityItalic::messageEntityItalic(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityItalic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityItalic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityItalic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityItalic"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityCode::messageEntityCode(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityCode::ID; + +object_ptr<MessageEntity> messageEntityCode::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityCode>(p); +} + +messageEntityCode::messageEntityCode(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityCode"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityPre::messageEntityPre(int32 offset_, int32 length_, string const &language_) + : offset_(offset_) + , length_(length_) + , language_(language_) +{} + +const std::int32_t messageEntityPre::ID; + +object_ptr<MessageEntity> messageEntityPre::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityPre>(p); +} + +messageEntityPre::messageEntityPre(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , language_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageEntityPre::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(language_, s); +} + +void messageEntityPre::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(language_, s); +} + +void messageEntityPre::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityPre"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("language", language_); + s.store_class_end(); + } +} + +messageEntityTextUrl::messageEntityTextUrl(int32 offset_, int32 length_, string const &url_) + : offset_(offset_) + , length_(length_) + , url_(url_) +{} + +const std::int32_t messageEntityTextUrl::ID; + +object_ptr<MessageEntity> messageEntityTextUrl::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityTextUrl>(p); +} + +messageEntityTextUrl::messageEntityTextUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageEntityTextUrl::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(url_, s); +} + +void messageEntityTextUrl::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreString::store(url_, s); +} + +void messageEntityTextUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityTextUrl"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +messageEntityMentionName::messageEntityMentionName(int32 offset_, int32 length_, int64 user_id_) + : offset_(offset_) + , length_(length_) + , user_id_(user_id_) +{} + +const std::int32_t messageEntityMentionName::ID; + +object_ptr<MessageEntity> messageEntityMentionName::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityMentionName>(p); +} + +messageEntityMentionName::messageEntityMentionName(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageEntityMentionName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(user_id_, s); +} + +void messageEntityMentionName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(user_id_, s); +} + +void messageEntityMentionName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityMentionName"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +inputMessageEntityMentionName::inputMessageEntityMentionName(int32 offset_, int32 length_, object_ptr<InputUser> &&user_id_) + : offset_(offset_) + , length_(length_) + , user_id_(std::move(user_id_)) +{} + +const std::int32_t inputMessageEntityMentionName::ID; + +object_ptr<MessageEntity> inputMessageEntityMentionName::fetch(TlBufferParser &p) { + return make_tl_object<inputMessageEntityMentionName>(p); +} + +inputMessageEntityMentionName::inputMessageEntityMentionName(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , user_id_(TlFetchObject<InputUser>::parse(p)) +#undef FAIL +{} + +void inputMessageEntityMentionName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void inputMessageEntityMentionName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void inputMessageEntityMentionName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessageEntityMentionName"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +messageEntityPhone::messageEntityPhone(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityPhone::ID; + +object_ptr<MessageEntity> messageEntityPhone::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityPhone>(p); +} + +messageEntityPhone::messageEntityPhone(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityPhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityPhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityPhone"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityCashtag::messageEntityCashtag(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityCashtag::ID; + +object_ptr<MessageEntity> messageEntityCashtag::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityCashtag>(p); +} + +messageEntityCashtag::messageEntityCashtag(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityCashtag::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCashtag::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityCashtag::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityCashtag"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityUnderline::messageEntityUnderline(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityUnderline::ID; + +object_ptr<MessageEntity> messageEntityUnderline::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityUnderline>(p); +} + +messageEntityUnderline::messageEntityUnderline(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityUnderline::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnderline::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityUnderline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityUnderline"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityStrike::messageEntityStrike(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityStrike::ID; + +object_ptr<MessageEntity> messageEntityStrike::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityStrike>(p); +} + +messageEntityStrike::messageEntityStrike(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityStrike::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityStrike::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityStrike::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityStrike"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBlockquote::messageEntityBlockquote(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBlockquote::ID; + +object_ptr<MessageEntity> messageEntityBlockquote::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityBlockquote>(p); +} + +messageEntityBlockquote::messageEntityBlockquote(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBlockquote::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBlockquote::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBlockquote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBlockquote"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityBankCard::messageEntityBankCard(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntityBankCard::ID; + +object_ptr<MessageEntity> messageEntityBankCard::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityBankCard>(p); +} + +messageEntityBankCard::messageEntityBankCard(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntityBankCard::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBankCard::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntityBankCard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityBankCard"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntitySpoiler::messageEntitySpoiler(int32 offset_, int32 length_) + : offset_(offset_) + , length_(length_) +{} + +const std::int32_t messageEntitySpoiler::ID; + +object_ptr<MessageEntity> messageEntitySpoiler::fetch(TlBufferParser &p) { + return make_tl_object<messageEntitySpoiler>(p); +} + +messageEntitySpoiler::messageEntitySpoiler(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageEntitySpoiler::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntitySpoiler::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); +} + +void messageEntitySpoiler::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntitySpoiler"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +messageEntityCustomEmoji::messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_) + : offset_(offset_) + , length_(length_) + , document_id_(document_id_) +{} + +const std::int32_t messageEntityCustomEmoji::ID; + +object_ptr<MessageEntity> messageEntityCustomEmoji::fetch(TlBufferParser &p) { + return make_tl_object<messageEntityCustomEmoji>(p); +} + +messageEntityCustomEmoji::messageEntityCustomEmoji(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : offset_(TlFetchInt::parse(p)) + , length_(TlFetchInt::parse(p)) + , document_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageEntityCustomEmoji::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(document_id_, s); +} + +void messageEntityCustomEmoji::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(length_, s); + TlStoreBinary::store(document_id_, s); +} + +void messageEntityCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageEntityCustomEmoji"); + s.store_field("offset", offset_); + s.store_field("length", length_); + s.store_field("document_id", document_id_); + s.store_class_end(); + } +} + +object_ptr<MessageExtendedMedia> MessageExtendedMedia::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messageExtendedMediaPreview::ID: + return messageExtendedMediaPreview::fetch(p); + case messageExtendedMedia::ID: + return messageExtendedMedia::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +messageExtendedMediaPreview::messageExtendedMediaPreview() + : flags_() + , w_() + , h_() + , thumb_() + , video_duration_() +{} + +const std::int32_t messageExtendedMediaPreview::ID; + +object_ptr<MessageExtendedMedia> messageExtendedMediaPreview::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageExtendedMediaPreview> res = make_tl_object<messageExtendedMediaPreview>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->w_ = TlFetchInt::parse(p); } + if (var0 & 1) { res->h_ = TlFetchInt::parse(p); } + if (var0 & 2) { res->thumb_ = TlFetchObject<PhotoSize>::parse(p); } + if (var0 & 4) { res->video_duration_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageExtendedMediaPreview::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExtendedMediaPreview"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("w", w_); } + if (var0 & 1) { s.store_field("h", h_); } + if (var0 & 2) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); } + if (var0 & 4) { s.store_field("video_duration", video_duration_); } + s.store_class_end(); + } +} + +const std::int32_t messageExtendedMedia::ID; + +object_ptr<MessageExtendedMedia> messageExtendedMedia::fetch(TlBufferParser &p) { + return make_tl_object<messageExtendedMedia>(p); +} + +messageExtendedMedia::messageExtendedMedia(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : media_(TlFetchObject<MessageMedia>::parse(p)) +#undef FAIL +{} + +void messageExtendedMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageExtendedMedia"); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_class_end(); + } +} + +messageFwdHeader::messageFwdHeader() + : flags_() + , imported_() + , from_id_() + , from_name_() + , date_() + , channel_post_() + , post_author_() + , saved_from_peer_() + , saved_from_msg_id_() + , psa_type_() +{} + +const std::int32_t messageFwdHeader::ID; + +object_ptr<messageFwdHeader> messageFwdHeader::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageFwdHeader> res = make_tl_object<messageFwdHeader>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 128) { res->imported_ = TlFetchTrue::parse(p); } + if (var0 & 1) { res->from_id_ = TlFetchObject<Peer>::parse(p); } + if (var0 & 32) { res->from_name_ = TlFetchString<string>::parse(p); } + res->date_ = TlFetchInt::parse(p); + if (var0 & 4) { res->channel_post_ = TlFetchInt::parse(p); } + if (var0 & 8) { res->post_author_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->saved_from_peer_ = TlFetchObject<Peer>::parse(p); } + if (var0 & 16) { res->saved_from_msg_id_ = TlFetchInt::parse(p); } + if (var0 & 64) { res->psa_type_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messageFwdHeader::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageFwdHeader"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); } + if (var0 & 32) { s.store_field("from_name", from_name_); } + s.store_field("date", date_); + if (var0 & 4) { s.store_field("channel_post", channel_post_); } + if (var0 & 8) { s.store_field("post_author", post_author_); } + if (var0 & 16) { s.store_object_field("saved_from_peer", static_cast<const BaseObject *>(saved_from_peer_.get())); } + if (var0 & 16) { s.store_field("saved_from_msg_id", saved_from_msg_id_); } + if (var0 & 64) { s.store_field("psa_type", psa_type_); } + s.store_class_end(); + } +} + +const std::int32_t messageInteractionCounters::ID; + +object_ptr<messageInteractionCounters> messageInteractionCounters::fetch(TlBufferParser &p) { + return make_tl_object<messageInteractionCounters>(p); +} + +messageInteractionCounters::messageInteractionCounters(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : msg_id_(TlFetchInt::parse(p)) + , views_(TlFetchInt::parse(p)) + , forwards_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageInteractionCounters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageInteractionCounters"); + s.store_field("msg_id", msg_id_); + s.store_field("views", views_); + s.store_field("forwards", forwards_); + s.store_class_end(); + } +} + +object_ptr<MessageMedia> MessageMedia::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messageMediaEmpty::ID: + return messageMediaEmpty::fetch(p); + case messageMediaPhoto::ID: + return messageMediaPhoto::fetch(p); + case messageMediaGeo::ID: + return messageMediaGeo::fetch(p); + case messageMediaContact::ID: + return messageMediaContact::fetch(p); + case messageMediaUnsupported::ID: + return messageMediaUnsupported::fetch(p); + case messageMediaDocument::ID: + return messageMediaDocument::fetch(p); + case messageMediaWebPage::ID: + return messageMediaWebPage::fetch(p); + case messageMediaVenue::ID: + return messageMediaVenue::fetch(p); + case messageMediaGame::ID: + return messageMediaGame::fetch(p); + case messageMediaInvoice::ID: + return messageMediaInvoice::fetch(p); + case messageMediaGeoLive::ID: + return messageMediaGeoLive::fetch(p); + case messageMediaPoll::ID: + return messageMediaPoll::fetch(p); + case messageMediaDice::ID: + return messageMediaDice::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messageMediaEmpty::ID; + +object_ptr<MessageMedia> messageMediaEmpty::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaEmpty>(); +} + +void messageMediaEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaEmpty"); + s.store_class_end(); + } +} + +messageMediaPhoto::messageMediaPhoto() + : flags_() + , photo_() + , ttl_seconds_() +{} + +const std::int32_t messageMediaPhoto::ID; + +object_ptr<MessageMedia> messageMediaPhoto::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageMediaPhoto> res = make_tl_object<messageMediaPhoto>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->photo_ = TlFetchObject<Photo>::parse(p); } + if (var0 & 4) { res->ttl_seconds_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageMediaPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaPhoto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + if (var0 & 4) { s.store_field("ttl_seconds", ttl_seconds_); } + s.store_class_end(); + } +} + +const std::int32_t messageMediaGeo::ID; + +object_ptr<MessageMedia> messageMediaGeo::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaGeo>(p); +} + +messageMediaGeo::messageMediaGeo(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : geo_(TlFetchObject<GeoPoint>::parse(p)) +#undef FAIL +{} + +void messageMediaGeo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaGeo"); + s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); + s.store_class_end(); + } +} + +const std::int32_t messageMediaContact::ID; + +object_ptr<MessageMedia> messageMediaContact::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaContact>(p); +} + +messageMediaContact::messageMediaContact(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_number_(TlFetchString<string>::parse(p)) + , first_name_(TlFetchString<string>::parse(p)) + , last_name_(TlFetchString<string>::parse(p)) + , vcard_(TlFetchString<string>::parse(p)) + , user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messageMediaContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaContact"); + s.store_field("phone_number", phone_number_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("vcard", vcard_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +const std::int32_t messageMediaUnsupported::ID; + +object_ptr<MessageMedia> messageMediaUnsupported::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaUnsupported>(); +} + +void messageMediaUnsupported::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaUnsupported"); + s.store_class_end(); + } +} + +messageMediaDocument::messageMediaDocument() + : flags_() + , nopremium_() + , document_() + , ttl_seconds_() +{} + +const std::int32_t messageMediaDocument::ID; + +object_ptr<MessageMedia> messageMediaDocument::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageMediaDocument> res = make_tl_object<messageMediaDocument>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 8) { res->nopremium_ = TlFetchTrue::parse(p); } + if (var0 & 1) { res->document_ = TlFetchObject<Document>::parse(p); } + if (var0 & 4) { res->ttl_seconds_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageMediaDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaDocument"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 4) { s.store_field("ttl_seconds", ttl_seconds_); } + s.store_class_end(); + } +} + +const std::int32_t messageMediaWebPage::ID; + +object_ptr<MessageMedia> messageMediaWebPage::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaWebPage>(p); +} + +messageMediaWebPage::messageMediaWebPage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : webpage_(TlFetchObject<WebPage>::parse(p)) +#undef FAIL +{} + +void messageMediaWebPage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaWebPage"); + s.store_object_field("webpage", static_cast<const BaseObject *>(webpage_.get())); + s.store_class_end(); + } +} + +const std::int32_t messageMediaVenue::ID; + +object_ptr<MessageMedia> messageMediaVenue::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaVenue>(p); +} + +messageMediaVenue::messageMediaVenue(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : geo_(TlFetchObject<GeoPoint>::parse(p)) + , title_(TlFetchString<string>::parse(p)) + , address_(TlFetchString<string>::parse(p)) + , provider_(TlFetchString<string>::parse(p)) + , venue_id_(TlFetchString<string>::parse(p)) + , venue_type_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageMediaVenue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaVenue"); + s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); + s.store_field("title", title_); + s.store_field("address", address_); + s.store_field("provider", provider_); + s.store_field("venue_id", venue_id_); + s.store_field("venue_type", venue_type_); + s.store_class_end(); + } +} + +const std::int32_t messageMediaGame::ID; + +object_ptr<MessageMedia> messageMediaGame::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaGame>(p); +} + +messageMediaGame::messageMediaGame(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : game_(TlFetchBoxed<TlFetchObject<game>, -1107729093>::parse(p)) +#undef FAIL +{} + +void messageMediaGame::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaGame"); + s.store_object_field("game", static_cast<const BaseObject *>(game_.get())); + s.store_class_end(); + } +} + +messageMediaInvoice::messageMediaInvoice() + : flags_() + , shipping_address_requested_() + , test_() + , title_() + , description_() + , photo_() + , receipt_msg_id_() + , currency_() + , total_amount_() + , start_param_() + , extended_media_() +{} + +const std::int32_t messageMediaInvoice::ID; + +object_ptr<MessageMedia> messageMediaInvoice::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageMediaInvoice> res = make_tl_object<messageMediaInvoice>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->shipping_address_requested_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->test_ = TlFetchTrue::parse(p); } + res->title_ = TlFetchString<string>::parse(p); + res->description_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->photo_ = TlFetchObject<WebDocument>::parse(p); } + if (var0 & 4) { res->receipt_msg_id_ = TlFetchInt::parse(p); } + res->currency_ = TlFetchString<string>::parse(p); + res->total_amount_ = TlFetchLong::parse(p); + res->start_param_ = TlFetchString<string>::parse(p); + if (var0 & 16) { res->extended_media_ = TlFetchObject<MessageExtendedMedia>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageMediaInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaInvoice"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("title", title_); + s.store_field("description", description_); + if (var0 & 1) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + if (var0 & 4) { s.store_field("receipt_msg_id", receipt_msg_id_); } + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_field("start_param", start_param_); + if (var0 & 16) { s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get())); } + s.store_class_end(); + } +} + +messageMediaGeoLive::messageMediaGeoLive() + : flags_() + , geo_() + , heading_() + , period_() + , proximity_notification_radius_() +{} + +const std::int32_t messageMediaGeoLive::ID; + +object_ptr<MessageMedia> messageMediaGeoLive::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageMediaGeoLive> res = make_tl_object<messageMediaGeoLive>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->geo_ = TlFetchObject<GeoPoint>::parse(p); + if (var0 & 1) { res->heading_ = TlFetchInt::parse(p); } + res->period_ = TlFetchInt::parse(p); + if (var0 & 2) { res->proximity_notification_radius_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messageMediaGeoLive::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaGeoLive"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); + if (var0 & 1) { s.store_field("heading", heading_); } + s.store_field("period", period_); + if (var0 & 2) { s.store_field("proximity_notification_radius", proximity_notification_radius_); } + s.store_class_end(); + } +} + +const std::int32_t messageMediaPoll::ID; + +object_ptr<MessageMedia> messageMediaPoll::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaPoll>(p); +} + +messageMediaPoll::messageMediaPoll(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : poll_(TlFetchBoxed<TlFetchObject<poll>, -2032041631>::parse(p)) + , results_(TlFetchBoxed<TlFetchObject<pollResults>, -591909213>::parse(p)) +#undef FAIL +{} + +void messageMediaPoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaPoll"); + s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get())); + s.store_object_field("results", static_cast<const BaseObject *>(results_.get())); + s.store_class_end(); + } +} + +const std::int32_t messageMediaDice::ID; + +object_ptr<MessageMedia> messageMediaDice::fetch(TlBufferParser &p) { + return make_tl_object<messageMediaDice>(p); +} + +messageMediaDice::messageMediaDice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : value_(TlFetchInt::parse(p)) + , emoticon_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messageMediaDice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageMediaDice"); + s.store_field("value", value_); + s.store_field("emoticon", emoticon_); + s.store_class_end(); + } +} + +messagePeerReaction::messagePeerReaction() + : flags_() + , big_() + , unread_() + , peer_id_() + , reaction_() +{} + +const std::int32_t messagePeerReaction::ID; + +object_ptr<messagePeerReaction> messagePeerReaction::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messagePeerReaction> res = make_tl_object<messagePeerReaction>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->big_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->unread_ = TlFetchTrue::parse(p); } + res->peer_id_ = TlFetchObject<Peer>::parse(p); + res->reaction_ = TlFetchObject<Reaction>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messagePeerReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messagePeerReaction"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get())); + s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get())); + s.store_class_end(); + } +} + +messageRange::messageRange(int32 min_id_, int32 max_id_) + : min_id_(min_id_) + , max_id_(max_id_) +{} + +const std::int32_t messageRange::ID; + +object_ptr<messageRange> messageRange::fetch(TlBufferParser &p) { + return make_tl_object<messageRange>(p); +} + +messageRange::messageRange(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : min_id_(TlFetchInt::parse(p)) + , max_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageRange::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(max_id_, s); +} + +void messageRange::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(max_id_, s); +} + +void messageRange::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageRange"); + s.store_field("min_id", min_id_); + s.store_field("max_id", max_id_); + s.store_class_end(); + } +} + +messageReactions::messageReactions() + : flags_() + , min_() + , can_see_list_() + , results_() + , recent_reactions_() +{} + +const std::int32_t messageReactions::ID; + +object_ptr<messageReactions> messageReactions::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageReactions> res = make_tl_object<messageReactions>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->min_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->can_see_list_ = TlFetchTrue::parse(p); } + res->results_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<reactionCount>, -1546531968>>, 481674261>::parse(p); + if (var0 & 2) { res->recent_reactions_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messagePeerReaction>, -1319698788>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messageReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageReactions"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 2) { { s.store_vector_begin("recent_reactions", recent_reactions_.size()); for (const auto &_value : recent_reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +messageReplies::messageReplies() + : flags_() + , comments_() + , replies_() + , replies_pts_() + , recent_repliers_() + , channel_id_() + , max_id_() + , read_max_id_() +{} + +const std::int32_t messageReplies::ID; + +object_ptr<messageReplies> messageReplies::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageReplies> res = make_tl_object<messageReplies>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->comments_ = TlFetchTrue::parse(p); } + res->replies_ = TlFetchInt::parse(p); + res->replies_pts_ = TlFetchInt::parse(p); + if (var0 & 2) { res->recent_repliers_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p); } + if (var0 & 1) { res->channel_id_ = TlFetchLong::parse(p); } + if (var0 & 4) { res->max_id_ = TlFetchInt::parse(p); } + if (var0 & 8) { res->read_max_id_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messageReplies::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageReplies"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("replies", replies_); + s.store_field("replies_pts", replies_pts_); + if (var0 & 2) { { s.store_vector_begin("recent_repliers", recent_repliers_.size()); for (const auto &_value : recent_repliers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 1) { s.store_field("channel_id", channel_id_); } + if (var0 & 4) { s.store_field("max_id", max_id_); } + if (var0 & 8) { s.store_field("read_max_id", read_max_id_); } + s.store_class_end(); + } +} + +messageReplyHeader::messageReplyHeader() + : flags_() + , reply_to_scheduled_() + , forum_topic_() + , reply_to_msg_id_() + , reply_to_peer_id_() + , reply_to_top_id_() +{} + +const std::int32_t messageReplyHeader::ID; + +object_ptr<messageReplyHeader> messageReplyHeader::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageReplyHeader> res = make_tl_object<messageReplyHeader>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->reply_to_scheduled_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->forum_topic_ = TlFetchTrue::parse(p); } + res->reply_to_msg_id_ = TlFetchInt::parse(p); + if (var0 & 1) { res->reply_to_peer_id_ = TlFetchObject<Peer>::parse(p); } + if (var0 & 2) { res->reply_to_top_id_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messageReplyHeader::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageReplyHeader"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("reply_to_msg_id", reply_to_msg_id_); + if (var0 & 1) { s.store_object_field("reply_to_peer_id", static_cast<const BaseObject *>(reply_to_peer_id_.get())); } + if (var0 & 2) { s.store_field("reply_to_top_id", reply_to_top_id_); } + s.store_class_end(); + } +} + +object_ptr<MessageUserVote> MessageUserVote::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messageUserVote::ID: + return messageUserVote::fetch(p); + case messageUserVoteInputOption::ID: + return messageUserVoteInputOption::fetch(p); + case messageUserVoteMultiple::ID: + return messageUserVoteMultiple::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messageUserVote::ID; + +object_ptr<MessageUserVote> messageUserVote::fetch(TlBufferParser &p) { + return make_tl_object<messageUserVote>(p); +} + +messageUserVote::messageUserVote(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , option_(TlFetchBytes<bytes>::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageUserVote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageUserVote"); + s.store_field("user_id", user_id_); + s.store_bytes_field("option", option_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t messageUserVoteInputOption::ID; + +object_ptr<MessageUserVote> messageUserVoteInputOption::fetch(TlBufferParser &p) { + return make_tl_object<messageUserVoteInputOption>(p); +} + +messageUserVoteInputOption::messageUserVoteInputOption(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageUserVoteInputOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageUserVoteInputOption"); + s.store_field("user_id", user_id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t messageUserVoteMultiple::ID; + +object_ptr<MessageUserVote> messageUserVoteMultiple::fetch(TlBufferParser &p) { + return make_tl_object<messageUserVoteMultiple>(p); +} + +messageUserVoteMultiple::messageUserVoteMultiple(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , options_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messageUserVoteMultiple::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageUserVoteMultiple"); + s.store_field("user_id", user_id_); + { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_bytes_field("", _value); } s.store_class_end(); } + s.store_field("date", date_); + s.store_class_end(); + } +} + +messageViews::messageViews() + : flags_() + , views_() + , forwards_() + , replies_() +{} + +const std::int32_t messageViews::ID; + +object_ptr<messageViews> messageViews::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messageViews> res = make_tl_object<messageViews>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->views_ = TlFetchInt::parse(p); } + if (var0 & 2) { res->forwards_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->replies_ = TlFetchBoxed<TlFetchObject<messageReplies>, -2083123262>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messageViews::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messageViews"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("views", views_); } + if (var0 & 2) { s.store_field("forwards", forwards_); } + if (var0 & 4) { s.store_object_field("replies", static_cast<const BaseObject *>(replies_.get())); } + s.store_class_end(); + } +} + +object_ptr<MessagesFilter> MessagesFilter::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case inputMessagesFilterEmpty::ID: + return inputMessagesFilterEmpty::fetch(p); + case inputMessagesFilterPhotos::ID: + return inputMessagesFilterPhotos::fetch(p); + case inputMessagesFilterVideo::ID: + return inputMessagesFilterVideo::fetch(p); + case inputMessagesFilterPhotoVideo::ID: + return inputMessagesFilterPhotoVideo::fetch(p); + case inputMessagesFilterDocument::ID: + return inputMessagesFilterDocument::fetch(p); + case inputMessagesFilterUrl::ID: + return inputMessagesFilterUrl::fetch(p); + case inputMessagesFilterGif::ID: + return inputMessagesFilterGif::fetch(p); + case inputMessagesFilterVoice::ID: + return inputMessagesFilterVoice::fetch(p); + case inputMessagesFilterMusic::ID: + return inputMessagesFilterMusic::fetch(p); + case inputMessagesFilterChatPhotos::ID: + return inputMessagesFilterChatPhotos::fetch(p); + case inputMessagesFilterPhoneCalls::ID: + return inputMessagesFilterPhoneCalls::fetch(p); + case inputMessagesFilterRoundVoice::ID: + return inputMessagesFilterRoundVoice::fetch(p); + case inputMessagesFilterRoundVideo::ID: + return inputMessagesFilterRoundVideo::fetch(p); + case inputMessagesFilterMyMentions::ID: + return inputMessagesFilterMyMentions::fetch(p); + case inputMessagesFilterGeo::ID: + return inputMessagesFilterGeo::fetch(p); + case inputMessagesFilterContacts::ID: + return inputMessagesFilterContacts::fetch(p); + case inputMessagesFilterPinned::ID: + return inputMessagesFilterPinned::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t inputMessagesFilterEmpty::ID; + +object_ptr<MessagesFilter> inputMessagesFilterEmpty::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterEmpty>(); +} + +void inputMessagesFilterEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterEmpty"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterPhotos::ID; + +object_ptr<MessagesFilter> inputMessagesFilterPhotos::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterPhotos>(); +} + +void inputMessagesFilterPhotos::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterPhotos::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterPhotos::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterPhotos"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterVideo::ID; + +object_ptr<MessagesFilter> inputMessagesFilterVideo::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterVideo>(); +} + +void inputMessagesFilterVideo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterVideo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterVideo"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterPhotoVideo::ID; + +object_ptr<MessagesFilter> inputMessagesFilterPhotoVideo::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterPhotoVideo>(); +} + +void inputMessagesFilterPhotoVideo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterPhotoVideo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterPhotoVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterPhotoVideo"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterDocument::ID; + +object_ptr<MessagesFilter> inputMessagesFilterDocument::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterDocument>(); +} + +void inputMessagesFilterDocument::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterDocument::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterDocument"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterUrl::ID; + +object_ptr<MessagesFilter> inputMessagesFilterUrl::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterUrl>(); +} + +void inputMessagesFilterUrl::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterUrl::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterUrl"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterGif::ID; + +object_ptr<MessagesFilter> inputMessagesFilterGif::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterGif>(); +} + +void inputMessagesFilterGif::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterGif::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterGif::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterGif"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterVoice::ID; + +object_ptr<MessagesFilter> inputMessagesFilterVoice::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterVoice>(); +} + +void inputMessagesFilterVoice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterVoice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterVoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterVoice"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterMusic::ID; + +object_ptr<MessagesFilter> inputMessagesFilterMusic::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterMusic>(); +} + +void inputMessagesFilterMusic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterMusic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterMusic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterMusic"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterChatPhotos::ID; + +object_ptr<MessagesFilter> inputMessagesFilterChatPhotos::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterChatPhotos>(); +} + +void inputMessagesFilterChatPhotos::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterChatPhotos::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterChatPhotos::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterChatPhotos"); + s.store_class_end(); + } +} + +inputMessagesFilterPhoneCalls::inputMessagesFilterPhoneCalls() + : flags_() + , missed_() +{} + +inputMessagesFilterPhoneCalls::inputMessagesFilterPhoneCalls(int32 flags_, bool missed_) + : flags_(flags_) + , missed_(missed_) +{} + +const std::int32_t inputMessagesFilterPhoneCalls::ID; + +object_ptr<MessagesFilter> inputMessagesFilterPhoneCalls::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<inputMessagesFilterPhoneCalls> res = make_tl_object<inputMessagesFilterPhoneCalls>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->missed_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void inputMessagesFilterPhoneCalls::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void inputMessagesFilterPhoneCalls::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void inputMessagesFilterPhoneCalls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterPhoneCalls"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterRoundVoice::ID; + +object_ptr<MessagesFilter> inputMessagesFilterRoundVoice::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterRoundVoice>(); +} + +void inputMessagesFilterRoundVoice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterRoundVoice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterRoundVoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterRoundVoice"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterRoundVideo::ID; + +object_ptr<MessagesFilter> inputMessagesFilterRoundVideo::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterRoundVideo>(); +} + +void inputMessagesFilterRoundVideo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterRoundVideo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterRoundVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterRoundVideo"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterMyMentions::ID; + +object_ptr<MessagesFilter> inputMessagesFilterMyMentions::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterMyMentions>(); +} + +void inputMessagesFilterMyMentions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterMyMentions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterMyMentions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterMyMentions"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterGeo::ID; + +object_ptr<MessagesFilter> inputMessagesFilterGeo::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterGeo>(); +} + +void inputMessagesFilterGeo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterGeo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterGeo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterGeo"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterContacts::ID; + +object_ptr<MessagesFilter> inputMessagesFilterContacts::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterContacts>(); +} + +void inputMessagesFilterContacts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterContacts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterContacts"); + s.store_class_end(); + } +} + +const std::int32_t inputMessagesFilterPinned::ID; + +object_ptr<MessagesFilter> inputMessagesFilterPinned::fetch(TlBufferParser &p) { + return make_tl_object<inputMessagesFilterPinned>(); +} + +void inputMessagesFilterPinned::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterPinned::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputMessagesFilterPinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputMessagesFilterPinned"); + s.store_class_end(); + } +} + +const std::int32_t nearestDc::ID; + +object_ptr<nearestDc> nearestDc::fetch(TlBufferParser &p) { + return make_tl_object<nearestDc>(p); +} + +nearestDc::nearestDc(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : country_(TlFetchString<string>::parse(p)) + , this_dc_(TlFetchInt::parse(p)) + , nearest_dc_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void nearestDc::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "nearestDc"); + s.store_field("country", country_); + s.store_field("this_dc", this_dc_); + s.store_field("nearest_dc", nearest_dc_); + s.store_class_end(); + } +} + +object_ptr<NotificationSound> NotificationSound::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case notificationSoundDefault::ID: + return notificationSoundDefault::fetch(p); + case notificationSoundNone::ID: + return notificationSoundNone::fetch(p); + case notificationSoundLocal::ID: + return notificationSoundLocal::fetch(p); + case notificationSoundRingtone::ID: + return notificationSoundRingtone::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t notificationSoundDefault::ID; + +object_ptr<NotificationSound> notificationSoundDefault::fetch(TlBufferParser &p) { + return make_tl_object<notificationSoundDefault>(); +} + +void notificationSoundDefault::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void notificationSoundDefault::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void notificationSoundDefault::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSoundDefault"); + s.store_class_end(); + } +} + +const std::int32_t notificationSoundNone::ID; + +object_ptr<NotificationSound> notificationSoundNone::fetch(TlBufferParser &p) { + return make_tl_object<notificationSoundNone>(); +} + +void notificationSoundNone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void notificationSoundNone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void notificationSoundNone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSoundNone"); + s.store_class_end(); + } +} + +notificationSoundLocal::notificationSoundLocal(string const &title_, string const &data_) + : title_(title_) + , data_(data_) +{} + +const std::int32_t notificationSoundLocal::ID; + +object_ptr<NotificationSound> notificationSoundLocal::fetch(TlBufferParser &p) { + return make_tl_object<notificationSoundLocal>(p); +} + +notificationSoundLocal::notificationSoundLocal(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : title_(TlFetchString<string>::parse(p)) + , data_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void notificationSoundLocal::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(title_, s); + TlStoreString::store(data_, s); +} + +void notificationSoundLocal::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(title_, s); + TlStoreString::store(data_, s); +} + +void notificationSoundLocal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSoundLocal"); + s.store_field("title", title_); + s.store_field("data", data_); + s.store_class_end(); + } +} + +notificationSoundRingtone::notificationSoundRingtone(int64 id_) + : id_(id_) +{} + +const std::int32_t notificationSoundRingtone::ID; + +object_ptr<NotificationSound> notificationSoundRingtone::fetch(TlBufferParser &p) { + return make_tl_object<notificationSoundRingtone>(p); +} + +notificationSoundRingtone::notificationSoundRingtone(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void notificationSoundRingtone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void notificationSoundRingtone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(id_, s); +} + +void notificationSoundRingtone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notificationSoundRingtone"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +object_ptr<NotifyPeer> NotifyPeer::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case notifyPeer::ID: + return notifyPeer::fetch(p); + case notifyUsers::ID: + return notifyUsers::fetch(p); + case notifyChats::ID: + return notifyChats::fetch(p); + case notifyBroadcasts::ID: + return notifyBroadcasts::fetch(p); + case notifyForumTopic::ID: + return notifyForumTopic::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t notifyPeer::ID; + +object_ptr<NotifyPeer> notifyPeer::fetch(TlBufferParser &p) { + return make_tl_object<notifyPeer>(p); +} + +notifyPeer::notifyPeer(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) +#undef FAIL +{} + +void notifyPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notifyPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +const std::int32_t notifyUsers::ID; + +object_ptr<NotifyPeer> notifyUsers::fetch(TlBufferParser &p) { + return make_tl_object<notifyUsers>(); +} + +void notifyUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notifyUsers"); + s.store_class_end(); + } +} + +const std::int32_t notifyChats::ID; + +object_ptr<NotifyPeer> notifyChats::fetch(TlBufferParser &p) { + return make_tl_object<notifyChats>(); +} + +void notifyChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notifyChats"); + s.store_class_end(); + } +} + +const std::int32_t notifyBroadcasts::ID; + +object_ptr<NotifyPeer> notifyBroadcasts::fetch(TlBufferParser &p) { + return make_tl_object<notifyBroadcasts>(); +} + +void notifyBroadcasts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notifyBroadcasts"); + s.store_class_end(); + } +} + +const std::int32_t notifyForumTopic::ID; + +object_ptr<NotifyPeer> notifyForumTopic::fetch(TlBufferParser &p) { + return make_tl_object<notifyForumTopic>(p); +} + +notifyForumTopic::notifyForumTopic(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , top_msg_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void notifyForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "notifyForumTopic"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("top_msg_id", top_msg_id_); + s.store_class_end(); + } +} + +page::page() + : flags_() + , part_() + , rtl_() + , v2_() + , url_() + , blocks_() + , photos_() + , documents_() + , views_() +{} + +const std::int32_t page::ID; + +object_ptr<page> page::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<page> res = make_tl_object<page>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->part_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->rtl_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->v2_ = TlFetchTrue::parse(p); } + res->url_ = TlFetchString<string>::parse(p); + res->blocks_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p); + res->photos_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Photo>>, 481674261>::parse(p); + res->documents_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p); + if (var0 & 8) { res->views_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void page::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "page"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("url", url_); + { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 8) { s.store_field("views", views_); } + s.store_class_end(); + } +} + +object_ptr<PageBlock> PageBlock::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case pageBlockUnsupported::ID: + return pageBlockUnsupported::fetch(p); + case pageBlockTitle::ID: + return pageBlockTitle::fetch(p); + case pageBlockSubtitle::ID: + return pageBlockSubtitle::fetch(p); + case pageBlockAuthorDate::ID: + return pageBlockAuthorDate::fetch(p); + case pageBlockHeader::ID: + return pageBlockHeader::fetch(p); + case pageBlockSubheader::ID: + return pageBlockSubheader::fetch(p); + case pageBlockParagraph::ID: + return pageBlockParagraph::fetch(p); + case pageBlockPreformatted::ID: + return pageBlockPreformatted::fetch(p); + case pageBlockFooter::ID: + return pageBlockFooter::fetch(p); + case pageBlockDivider::ID: + return pageBlockDivider::fetch(p); + case pageBlockAnchor::ID: + return pageBlockAnchor::fetch(p); + case pageBlockList::ID: + return pageBlockList::fetch(p); + case pageBlockBlockquote::ID: + return pageBlockBlockquote::fetch(p); + case pageBlockPullquote::ID: + return pageBlockPullquote::fetch(p); + case pageBlockPhoto::ID: + return pageBlockPhoto::fetch(p); + case pageBlockVideo::ID: + return pageBlockVideo::fetch(p); + case pageBlockCover::ID: + return pageBlockCover::fetch(p); + case pageBlockEmbed::ID: + return pageBlockEmbed::fetch(p); + case pageBlockEmbedPost::ID: + return pageBlockEmbedPost::fetch(p); + case pageBlockCollage::ID: + return pageBlockCollage::fetch(p); + case pageBlockSlideshow::ID: + return pageBlockSlideshow::fetch(p); + case pageBlockChannel::ID: + return pageBlockChannel::fetch(p); + case pageBlockAudio::ID: + return pageBlockAudio::fetch(p); + case pageBlockKicker::ID: + return pageBlockKicker::fetch(p); + case pageBlockTable::ID: + return pageBlockTable::fetch(p); + case pageBlockOrderedList::ID: + return pageBlockOrderedList::fetch(p); + case pageBlockDetails::ID: + return pageBlockDetails::fetch(p); + case pageBlockRelatedArticles::ID: + return pageBlockRelatedArticles::fetch(p); + case pageBlockMap::ID: + return pageBlockMap::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t pageBlockUnsupported::ID; + +object_ptr<PageBlock> pageBlockUnsupported::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockUnsupported>(); +} + +void pageBlockUnsupported::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockUnsupported"); + s.store_class_end(); + } +} + +const std::int32_t pageBlockTitle::ID; + +object_ptr<PageBlock> pageBlockTitle::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockTitle>(p); +} + +pageBlockTitle::pageBlockTitle(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockTitle"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockSubtitle::ID; + +object_ptr<PageBlock> pageBlockSubtitle::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockSubtitle>(p); +} + +pageBlockSubtitle::pageBlockSubtitle(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockSubtitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockSubtitle"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockAuthorDate::ID; + +object_ptr<PageBlock> pageBlockAuthorDate::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockAuthorDate>(p); +} + +pageBlockAuthorDate::pageBlockAuthorDate(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : author_(TlFetchObject<RichText>::parse(p)) + , published_date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void pageBlockAuthorDate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockAuthorDate"); + s.store_object_field("author", static_cast<const BaseObject *>(author_.get())); + s.store_field("published_date", published_date_); + s.store_class_end(); + } +} + +const std::int32_t pageBlockHeader::ID; + +object_ptr<PageBlock> pageBlockHeader::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockHeader>(p); +} + +pageBlockHeader::pageBlockHeader(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockHeader::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockHeader"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockSubheader::ID; + +object_ptr<PageBlock> pageBlockSubheader::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockSubheader>(p); +} + +pageBlockSubheader::pageBlockSubheader(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockSubheader::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockSubheader"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockParagraph::ID; + +object_ptr<PageBlock> pageBlockParagraph::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockParagraph>(p); +} + +pageBlockParagraph::pageBlockParagraph(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockParagraph::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockParagraph"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockPreformatted::ID; + +object_ptr<PageBlock> pageBlockPreformatted::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockPreformatted>(p); +} + +pageBlockPreformatted::pageBlockPreformatted(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , language_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void pageBlockPreformatted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockPreformatted"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("language", language_); + s.store_class_end(); + } +} + +const std::int32_t pageBlockFooter::ID; + +object_ptr<PageBlock> pageBlockFooter::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockFooter>(p); +} + +pageBlockFooter::pageBlockFooter(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockFooter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockFooter"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockDivider::ID; + +object_ptr<PageBlock> pageBlockDivider::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockDivider>(); +} + +void pageBlockDivider::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockDivider"); + s.store_class_end(); + } +} + +const std::int32_t pageBlockAnchor::ID; + +object_ptr<PageBlock> pageBlockAnchor::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockAnchor>(p); +} + +pageBlockAnchor::pageBlockAnchor(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void pageBlockAnchor::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockAnchor"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +const std::int32_t pageBlockList::ID; + +object_ptr<PageBlock> pageBlockList::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockList>(p); +} + +pageBlockList::pageBlockList(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageListItem>>, 481674261>::parse(p)) +#undef FAIL +{} + +void pageBlockList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockList"); + { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t pageBlockBlockquote::ID; + +object_ptr<PageBlock> pageBlockBlockquote::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockBlockquote>(p); +} + +pageBlockBlockquote::pageBlockBlockquote(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , caption_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockBlockquote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockBlockquote"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockPullquote::ID; + +object_ptr<PageBlock> pageBlockPullquote::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockPullquote>(p); +} + +pageBlockPullquote::pageBlockPullquote(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , caption_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockPullquote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockPullquote"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +pageBlockPhoto::pageBlockPhoto() + : flags_() + , photo_id_() + , caption_() + , url_() + , webpage_id_() +{} + +const std::int32_t pageBlockPhoto::ID; + +object_ptr<PageBlock> pageBlockPhoto::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pageBlockPhoto> res = make_tl_object<pageBlockPhoto>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->photo_id_ = TlFetchLong::parse(p); + res->caption_ = TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p); + if (var0 & 1) { res->url_ = TlFetchString<string>::parse(p); } + if (var0 & 1) { res->webpage_id_ = TlFetchLong::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void pageBlockPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockPhoto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("photo_id", photo_id_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + if (var0 & 1) { s.store_field("url", url_); } + if (var0 & 1) { s.store_field("webpage_id", webpage_id_); } + s.store_class_end(); + } +} + +pageBlockVideo::pageBlockVideo() + : flags_() + , autoplay_() + , loop_() + , video_id_() + , caption_() +{} + +const std::int32_t pageBlockVideo::ID; + +object_ptr<PageBlock> pageBlockVideo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pageBlockVideo> res = make_tl_object<pageBlockVideo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->autoplay_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->loop_ = TlFetchTrue::parse(p); } + res->video_id_ = TlFetchLong::parse(p); + res->caption_ = TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void pageBlockVideo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockVideo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("video_id", video_id_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockCover::ID; + +object_ptr<PageBlock> pageBlockCover::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockCover>(p); +} + +pageBlockCover::pageBlockCover(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : cover_(TlFetchObject<PageBlock>::parse(p)) +#undef FAIL +{} + +void pageBlockCover::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockCover"); + s.store_object_field("cover", static_cast<const BaseObject *>(cover_.get())); + s.store_class_end(); + } +} + +pageBlockEmbed::pageBlockEmbed() + : flags_() + , full_width_() + , allow_scrolling_() + , url_() + , html_() + , poster_photo_id_() + , w_() + , h_() + , caption_() +{} + +const std::int32_t pageBlockEmbed::ID; + +object_ptr<PageBlock> pageBlockEmbed::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pageBlockEmbed> res = make_tl_object<pageBlockEmbed>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->full_width_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->allow_scrolling_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->url_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->html_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->poster_photo_id_ = TlFetchLong::parse(p); } + if (var0 & 32) { res->w_ = TlFetchInt::parse(p); } + if (var0 & 32) { res->h_ = TlFetchInt::parse(p); } + res->caption_ = TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void pageBlockEmbed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockEmbed"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_field("url", url_); } + if (var0 & 4) { s.store_field("html", html_); } + if (var0 & 16) { s.store_field("poster_photo_id", poster_photo_id_); } + if (var0 & 32) { s.store_field("w", w_); } + if (var0 & 32) { s.store_field("h", h_); } + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockEmbedPost::ID; + +object_ptr<PageBlock> pageBlockEmbedPost::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockEmbedPost>(p); +} + +pageBlockEmbedPost::pageBlockEmbedPost(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , webpage_id_(TlFetchLong::parse(p)) + , author_photo_id_(TlFetchLong::parse(p)) + , author_(TlFetchString<string>::parse(p)) + , date_(TlFetchInt::parse(p)) + , blocks_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p)) + , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p)) +#undef FAIL +{} + +void pageBlockEmbedPost::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockEmbedPost"); + s.store_field("url", url_); + s.store_field("webpage_id", webpage_id_); + s.store_field("author_photo_id", author_photo_id_); + s.store_field("author", author_); + s.store_field("date", date_); + { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockCollage::ID; + +object_ptr<PageBlock> pageBlockCollage::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockCollage>(p); +} + +pageBlockCollage::pageBlockCollage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p)) + , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p)) +#undef FAIL +{} + +void pageBlockCollage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockCollage"); + { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockSlideshow::ID; + +object_ptr<PageBlock> pageBlockSlideshow::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockSlideshow>(p); +} + +pageBlockSlideshow::pageBlockSlideshow(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p)) + , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p)) +#undef FAIL +{} + +void pageBlockSlideshow::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockSlideshow"); + { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockChannel::ID; + +object_ptr<PageBlock> pageBlockChannel::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockChannel>(p); +} + +pageBlockChannel::pageBlockChannel(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_(TlFetchObject<Chat>::parse(p)) +#undef FAIL +{} + +void pageBlockChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockChannel"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockAudio::ID; + +object_ptr<PageBlock> pageBlockAudio::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockAudio>(p); +} + +pageBlockAudio::pageBlockAudio(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : audio_id_(TlFetchLong::parse(p)) + , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p)) +#undef FAIL +{} + +void pageBlockAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockAudio"); + s.store_field("audio_id", audio_id_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockKicker::ID; + +object_ptr<PageBlock> pageBlockKicker::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockKicker>(p); +} + +pageBlockKicker::pageBlockKicker(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageBlockKicker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockKicker"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +pageBlockTable::pageBlockTable() + : flags_() + , bordered_() + , striped_() + , title_() + , rows_() +{} + +const std::int32_t pageBlockTable::ID; + +object_ptr<PageBlock> pageBlockTable::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pageBlockTable> res = make_tl_object<pageBlockTable>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->bordered_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->striped_ = TlFetchTrue::parse(p); } + res->title_ = TlFetchObject<RichText>::parse(p); + res->rows_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pageTableRow>, -524237339>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void pageBlockTable::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockTable"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("title", static_cast<const BaseObject *>(title_.get())); + { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t pageBlockOrderedList::ID; + +object_ptr<PageBlock> pageBlockOrderedList::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockOrderedList>(p); +} + +pageBlockOrderedList::pageBlockOrderedList(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : items_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageListOrderedItem>>, 481674261>::parse(p)) +#undef FAIL +{} + +void pageBlockOrderedList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockOrderedList"); + { s.store_vector_begin("items", items_.size()); for (const auto &_value : items_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +pageBlockDetails::pageBlockDetails() + : flags_() + , open_() + , blocks_() + , title_() +{} + +const std::int32_t pageBlockDetails::ID; + +object_ptr<PageBlock> pageBlockDetails::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pageBlockDetails> res = make_tl_object<pageBlockDetails>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->open_ = TlFetchTrue::parse(p); } + res->blocks_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p); + res->title_ = TlFetchObject<RichText>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void pageBlockDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockDetails"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("title", static_cast<const BaseObject *>(title_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageBlockRelatedArticles::ID; + +object_ptr<PageBlock> pageBlockRelatedArticles::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockRelatedArticles>(p); +} + +pageBlockRelatedArticles::pageBlockRelatedArticles(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : title_(TlFetchObject<RichText>::parse(p)) + , articles_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pageRelatedArticle>, -1282352120>>, 481674261>::parse(p)) +#undef FAIL +{} + +void pageBlockRelatedArticles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockRelatedArticles"); + s.store_object_field("title", static_cast<const BaseObject *>(title_.get())); + { s.store_vector_begin("articles", articles_.size()); for (const auto &_value : articles_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t pageBlockMap::ID; + +object_ptr<PageBlock> pageBlockMap::fetch(TlBufferParser &p) { + return make_tl_object<pageBlockMap>(p); +} + +pageBlockMap::pageBlockMap(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : geo_(TlFetchObject<GeoPoint>::parse(p)) + , zoom_(TlFetchInt::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , caption_(TlFetchBoxed<TlFetchObject<pageCaption>, 1869903447>::parse(p)) +#undef FAIL +{} + +void pageBlockMap::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageBlockMap"); + s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); + s.store_field("zoom", zoom_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_object_field("caption", static_cast<const BaseObject *>(caption_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageCaption::ID; + +object_ptr<pageCaption> pageCaption::fetch(TlBufferParser &p) { + return make_tl_object<pageCaption>(p); +} + +pageCaption::pageCaption(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , credit_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageCaption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageCaption"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_object_field("credit", static_cast<const BaseObject *>(credit_.get())); + s.store_class_end(); + } +} + +object_ptr<PageListItem> PageListItem::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case pageListItemText::ID: + return pageListItemText::fetch(p); + case pageListItemBlocks::ID: + return pageListItemBlocks::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t pageListItemText::ID; + +object_ptr<PageListItem> pageListItemText::fetch(TlBufferParser &p) { + return make_tl_object<pageListItemText>(p); +} + +pageListItemText::pageListItemText(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageListItemText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageListItemText"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageListItemBlocks::ID; + +object_ptr<PageListItem> pageListItemBlocks::fetch(TlBufferParser &p) { + return make_tl_object<pageListItemBlocks>(p); +} + +pageListItemBlocks::pageListItemBlocks(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : blocks_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p)) +#undef FAIL +{} + +void pageListItemBlocks::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageListItemBlocks"); + { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<PageListOrderedItem> PageListOrderedItem::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case pageListOrderedItemText::ID: + return pageListOrderedItemText::fetch(p); + case pageListOrderedItemBlocks::ID: + return pageListOrderedItemBlocks::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t pageListOrderedItemText::ID; + +object_ptr<PageListOrderedItem> pageListOrderedItemText::fetch(TlBufferParser &p) { + return make_tl_object<pageListOrderedItemText>(p); +} + +pageListOrderedItemText::pageListOrderedItemText(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : num_(TlFetchString<string>::parse(p)) + , text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void pageListOrderedItemText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageListOrderedItemText"); + s.store_field("num", num_); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t pageListOrderedItemBlocks::ID; + +object_ptr<PageListOrderedItem> pageListOrderedItemBlocks::fetch(TlBufferParser &p) { + return make_tl_object<pageListOrderedItemBlocks>(p); +} + +pageListOrderedItemBlocks::pageListOrderedItemBlocks(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : num_(TlFetchString<string>::parse(p)) + , blocks_(TlFetchBoxed<TlFetchVector<TlFetchObject<PageBlock>>, 481674261>::parse(p)) +#undef FAIL +{} + +void pageListOrderedItemBlocks::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageListOrderedItemBlocks"); + s.store_field("num", num_); + { s.store_vector_begin("blocks", blocks_.size()); for (const auto &_value : blocks_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +pageRelatedArticle::pageRelatedArticle() + : flags_() + , url_() + , webpage_id_() + , title_() + , description_() + , photo_id_() + , author_() + , published_date_() +{} + +const std::int32_t pageRelatedArticle::ID; + +object_ptr<pageRelatedArticle> pageRelatedArticle::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pageRelatedArticle> res = make_tl_object<pageRelatedArticle>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->url_ = TlFetchString<string>::parse(p); + res->webpage_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->description_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->photo_id_ = TlFetchLong::parse(p); } + if (var0 & 8) { res->author_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->published_date_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void pageRelatedArticle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageRelatedArticle"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("url", url_); + s.store_field("webpage_id", webpage_id_); + if (var0 & 1) { s.store_field("title", title_); } + if (var0 & 2) { s.store_field("description", description_); } + if (var0 & 4) { s.store_field("photo_id", photo_id_); } + if (var0 & 8) { s.store_field("author", author_); } + if (var0 & 16) { s.store_field("published_date", published_date_); } + s.store_class_end(); + } +} + +pageTableCell::pageTableCell() + : flags_() + , header_() + , align_center_() + , align_right_() + , valign_middle_() + , valign_bottom_() + , text_() + , colspan_() + , rowspan_() +{} + +const std::int32_t pageTableCell::ID; + +object_ptr<pageTableCell> pageTableCell::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pageTableCell> res = make_tl_object<pageTableCell>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->header_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->align_center_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->align_right_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->valign_middle_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->valign_bottom_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->text_ = TlFetchObject<RichText>::parse(p); } + if (var0 & 2) { res->colspan_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->rowspan_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void pageTableCell::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageTableCell"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 128) { s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); } + if (var0 & 2) { s.store_field("colspan", colspan_); } + if (var0 & 4) { s.store_field("rowspan", rowspan_); } + s.store_class_end(); + } +} + +const std::int32_t pageTableRow::ID; + +object_ptr<pageTableRow> pageTableRow::fetch(TlBufferParser &p) { + return make_tl_object<pageTableRow>(p); +} + +pageTableRow::pageTableRow(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : cells_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pageTableCell>, 878078826>>, 481674261>::parse(p)) +#undef FAIL +{} + +void pageTableRow::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pageTableRow"); + { s.store_vector_begin("cells", cells_.size()); for (const auto &_value : cells_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<PasswordKdfAlgo> PasswordKdfAlgo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case passwordKdfAlgoUnknown::ID: + return passwordKdfAlgoUnknown::fetch(p); + case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID: + return passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t passwordKdfAlgoUnknown::ID; + +object_ptr<PasswordKdfAlgo> passwordKdfAlgoUnknown::fetch(TlBufferParser &p) { + return make_tl_object<passwordKdfAlgoUnknown>(); +} + +void passwordKdfAlgoUnknown::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void passwordKdfAlgoUnknown::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void passwordKdfAlgoUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passwordKdfAlgoUnknown"); + s.store_class_end(); + } +} + +passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(bytes &&salt1_, bytes &&salt2_, int32 g_, bytes &&p_) + : salt1_(std::move(salt1_)) + , salt2_(std::move(salt2_)) + , g_(g_) + , p_(std::move(p_)) +{} + +const std::int32_t passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID; + +object_ptr<PasswordKdfAlgo> passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::fetch(TlBufferParser &p) { + return make_tl_object<passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow>(p); +} + +passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : salt1_(TlFetchBytes<bytes>::parse(p)) + , salt2_(TlFetchBytes<bytes>::parse(p)) + , g_(TlFetchInt::parse(p)) + , p_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(salt1_, s); + TlStoreString::store(salt2_, s); + TlStoreBinary::store(g_, s); + TlStoreString::store(p_, s); +} + +void passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(salt1_, s); + TlStoreString::store(salt2_, s); + TlStoreBinary::store(g_, s); + TlStoreString::store(p_, s); +} + +void passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow"); + s.store_bytes_field("salt1", salt1_); + s.store_bytes_field("salt2", salt2_); + s.store_field("g", g_); + s.store_bytes_field("p", p_); + s.store_class_end(); + } +} + +const std::int32_t paymentCharge::ID; + +object_ptr<paymentCharge> paymentCharge::fetch(TlBufferParser &p) { + return make_tl_object<paymentCharge>(p); +} + +paymentCharge::paymentCharge(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchString<string>::parse(p)) + , provider_charge_id_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void paymentCharge::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentCharge"); + s.store_field("id", id_); + s.store_field("provider_charge_id", provider_charge_id_); + s.store_class_end(); + } +} + +const std::int32_t paymentFormMethod::ID; + +object_ptr<paymentFormMethod> paymentFormMethod::fetch(TlBufferParser &p) { + return make_tl_object<paymentFormMethod>(p); +} + +paymentFormMethod::paymentFormMethod(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , title_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void paymentFormMethod::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentFormMethod"); + s.store_field("url", url_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +paymentRequestedInfo::paymentRequestedInfo() + : flags_() + , name_() + , phone_() + , email_() + , shipping_address_() +{} + +paymentRequestedInfo::paymentRequestedInfo(int32 flags_, string const &name_, string const &phone_, string const &email_, object_ptr<postAddress> &&shipping_address_) + : flags_(flags_) + , name_(name_) + , phone_(phone_) + , email_(email_) + , shipping_address_(std::move(shipping_address_)) +{} + +const std::int32_t paymentRequestedInfo::ID; + +object_ptr<paymentRequestedInfo> paymentRequestedInfo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<paymentRequestedInfo> res = make_tl_object<paymentRequestedInfo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->name_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->phone_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->email_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->shipping_address_ = TlFetchBoxed<TlFetchObject<postAddress>, 512535275>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void paymentRequestedInfo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreString::store(name_, s); } + if (var0 & 2) { TlStoreString::store(phone_, s); } + if (var0 & 4) { TlStoreString::store(email_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreObject, 512535275>::store(shipping_address_, s); } +} + +void paymentRequestedInfo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreString::store(name_, s); } + if (var0 & 2) { TlStoreString::store(phone_, s); } + if (var0 & 4) { TlStoreString::store(email_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreObject, 512535275>::store(shipping_address_, s); } +} + +void paymentRequestedInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentRequestedInfo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("name", name_); } + if (var0 & 2) { s.store_field("phone", phone_); } + if (var0 & 4) { s.store_field("email", email_); } + if (var0 & 8) { s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get())); } + s.store_class_end(); + } +} + +const std::int32_t paymentSavedCredentialsCard::ID; + +object_ptr<paymentSavedCredentialsCard> paymentSavedCredentialsCard::fetch(TlBufferParser &p) { + return make_tl_object<paymentSavedCredentialsCard>(p); +} + +paymentSavedCredentialsCard::paymentSavedCredentialsCard(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchString<string>::parse(p)) + , title_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void paymentSavedCredentialsCard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "paymentSavedCredentialsCard"); + s.store_field("id", id_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +object_ptr<Peer> Peer::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case peerUser::ID: + return peerUser::fetch(p); + case peerChat::ID: + return peerChat::fetch(p); + case peerChannel::ID: + return peerChannel::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +peerUser::peerUser(int64 user_id_) + : user_id_(user_id_) +{} + +const std::int32_t peerUser::ID; + +object_ptr<Peer> peerUser::fetch(TlBufferParser &p) { + return make_tl_object<peerUser>(p); +} + +peerUser::peerUser(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void peerUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerUser"); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +peerChat::peerChat(int64 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t peerChat::ID; + +object_ptr<Peer> peerChat::fetch(TlBufferParser &p) { + return make_tl_object<peerChat>(p); +} + +peerChat::peerChat(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void peerChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +const std::int32_t peerChannel::ID; + +object_ptr<Peer> peerChannel::fetch(TlBufferParser &p) { + return make_tl_object<peerChannel>(p); +} + +peerChannel::peerChannel(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void peerChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerChannel"); + s.store_field("channel_id", channel_id_); + s.store_class_end(); + } +} + +const std::int32_t peerBlocked::ID; + +object_ptr<peerBlocked> peerBlocked::fetch(TlBufferParser &p) { + return make_tl_object<peerBlocked>(p); +} + +peerBlocked::peerBlocked(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_id_(TlFetchObject<Peer>::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void peerBlocked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerBlocked"); + s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get())); + s.store_field("date", date_); + s.store_class_end(); + } +} + +object_ptr<PeerLocated> PeerLocated::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case peerLocated::ID: + return peerLocated::fetch(p); + case peerSelfLocated::ID: + return peerSelfLocated::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t peerLocated::ID; + +object_ptr<PeerLocated> peerLocated::fetch(TlBufferParser &p) { + return make_tl_object<peerLocated>(p); +} + +peerLocated::peerLocated(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , expires_(TlFetchInt::parse(p)) + , distance_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void peerLocated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerLocated"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("expires", expires_); + s.store_field("distance", distance_); + s.store_class_end(); + } +} + +const std::int32_t peerSelfLocated::ID; + +object_ptr<PeerLocated> peerSelfLocated::fetch(TlBufferParser &p) { + return make_tl_object<peerSelfLocated>(p); +} + +peerSelfLocated::peerSelfLocated(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : expires_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void peerSelfLocated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerSelfLocated"); + s.store_field("expires", expires_); + s.store_class_end(); + } +} + +peerNotifySettings::peerNotifySettings() + : flags_() + , show_previews_() + , silent_() + , mute_until_() + , ios_sound_() + , android_sound_() + , other_sound_() +{} + +const std::int32_t peerNotifySettings::ID; + +object_ptr<peerNotifySettings> peerNotifySettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<peerNotifySettings> res = make_tl_object<peerNotifySettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->show_previews_ = TlFetchBool::parse(p); } + if (var0 & 2) { res->silent_ = TlFetchBool::parse(p); } + if (var0 & 4) { res->mute_until_ = TlFetchInt::parse(p); } + if (var0 & 8) { res->ios_sound_ = TlFetchObject<NotificationSound>::parse(p); } + if (var0 & 16) { res->android_sound_ = TlFetchObject<NotificationSound>::parse(p); } + if (var0 & 32) { res->other_sound_ = TlFetchObject<NotificationSound>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void peerNotifySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerNotifySettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("show_previews", show_previews_); } + if (var0 & 2) { s.store_field("silent", silent_); } + if (var0 & 4) { s.store_field("mute_until", mute_until_); } + if (var0 & 8) { s.store_object_field("ios_sound", static_cast<const BaseObject *>(ios_sound_.get())); } + if (var0 & 16) { s.store_object_field("android_sound", static_cast<const BaseObject *>(android_sound_.get())); } + if (var0 & 32) { s.store_object_field("other_sound", static_cast<const BaseObject *>(other_sound_.get())); } + s.store_class_end(); + } +} + +peerSettings::peerSettings() + : flags_() + , report_spam_() + , add_contact_() + , block_contact_() + , share_contact_() + , need_contacts_exception_() + , report_geo_() + , autoarchived_() + , invite_members_() + , request_chat_broadcast_() + , geo_distance_() + , request_chat_title_() + , request_chat_date_() +{} + +const std::int32_t peerSettings::ID; + +object_ptr<peerSettings> peerSettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<peerSettings> res = make_tl_object<peerSettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->report_spam_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->add_contact_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->block_contact_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->share_contact_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->need_contacts_exception_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->report_geo_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->autoarchived_ = TlFetchTrue::parse(p); } + if (var0 & 256) { res->invite_members_ = TlFetchTrue::parse(p); } + if (var0 & 1024) { res->request_chat_broadcast_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->geo_distance_ = TlFetchInt::parse(p); } + if (var0 & 512) { res->request_chat_title_ = TlFetchString<string>::parse(p); } + if (var0 & 512) { res->request_chat_date_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void peerSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "peerSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 64) { s.store_field("geo_distance", geo_distance_); } + if (var0 & 512) { s.store_field("request_chat_title", request_chat_title_); } + if (var0 & 512) { s.store_field("request_chat_date", request_chat_date_); } + s.store_class_end(); + } +} + +object_ptr<PhoneCall> PhoneCall::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case phoneCallEmpty::ID: + return phoneCallEmpty::fetch(p); + case phoneCallWaiting::ID: + return phoneCallWaiting::fetch(p); + case phoneCallRequested::ID: + return phoneCallRequested::fetch(p); + case phoneCallAccepted::ID: + return phoneCallAccepted::fetch(p); + case phoneCall::ID: + return phoneCall::fetch(p); + case phoneCallDiscarded::ID: + return phoneCallDiscarded::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t phoneCallEmpty::ID; + +object_ptr<PhoneCall> phoneCallEmpty::fetch(TlBufferParser &p) { + return make_tl_object<phoneCallEmpty>(p); +} + +phoneCallEmpty::phoneCallEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void phoneCallEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallEmpty"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +phoneCallWaiting::phoneCallWaiting() + : flags_() + , video_() + , id_() + , access_hash_() + , date_() + , admin_id_() + , participant_id_() + , protocol_() + , receive_date_() +{} + +const std::int32_t phoneCallWaiting::ID; + +object_ptr<PhoneCall> phoneCallWaiting::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneCallWaiting> res = make_tl_object<phoneCallWaiting>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->admin_id_ = TlFetchLong::parse(p); + res->participant_id_ = TlFetchLong::parse(p); + res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p); + if (var0 & 1) { res->receive_date_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void phoneCallWaiting::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallWaiting"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("admin_id", admin_id_); + s.store_field("participant_id", participant_id_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + if (var0 & 1) { s.store_field("receive_date", receive_date_); } + s.store_class_end(); + } +} + +phoneCallRequested::phoneCallRequested() + : flags_() + , video_() + , id_() + , access_hash_() + , date_() + , admin_id_() + , participant_id_() + , g_a_hash_() + , protocol_() +{} + +const std::int32_t phoneCallRequested::ID; + +object_ptr<PhoneCall> phoneCallRequested::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneCallRequested> res = make_tl_object<phoneCallRequested>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->admin_id_ = TlFetchLong::parse(p); + res->participant_id_ = TlFetchLong::parse(p); + res->g_a_hash_ = TlFetchBytes<bytes>::parse(p); + res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void phoneCallRequested::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallRequested"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("admin_id", admin_id_); + s.store_field("participant_id", participant_id_); + s.store_bytes_field("g_a_hash", g_a_hash_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + s.store_class_end(); + } +} + +phoneCallAccepted::phoneCallAccepted() + : flags_() + , video_() + , id_() + , access_hash_() + , date_() + , admin_id_() + , participant_id_() + , g_b_() + , protocol_() +{} + +const std::int32_t phoneCallAccepted::ID; + +object_ptr<PhoneCall> phoneCallAccepted::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneCallAccepted> res = make_tl_object<phoneCallAccepted>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->admin_id_ = TlFetchLong::parse(p); + res->participant_id_ = TlFetchLong::parse(p); + res->g_b_ = TlFetchBytes<bytes>::parse(p); + res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void phoneCallAccepted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallAccepted"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("admin_id", admin_id_); + s.store_field("participant_id", participant_id_); + s.store_bytes_field("g_b", g_b_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + s.store_class_end(); + } +} + +phoneCall::phoneCall() + : flags_() + , p2p_allowed_() + , video_() + , id_() + , access_hash_() + , date_() + , admin_id_() + , participant_id_() + , g_a_or_b_() + , key_fingerprint_() + , protocol_() + , connections_() + , start_date_() +{} + +const std::int32_t phoneCall::ID; + +object_ptr<PhoneCall> phoneCall::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneCall> res = make_tl_object<phoneCall>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 32) { res->p2p_allowed_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->admin_id_ = TlFetchLong::parse(p); + res->participant_id_ = TlFetchLong::parse(p); + res->g_a_or_b_ = TlFetchBytes<bytes>::parse(p); + res->key_fingerprint_ = TlFetchLong::parse(p); + res->protocol_ = TlFetchBoxed<TlFetchObject<phoneCallProtocol>, -58224696>::parse(p); + res->connections_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhoneConnection>>, 481674261>::parse(p); + res->start_date_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void phoneCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCall"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("date", date_); + s.store_field("admin_id", admin_id_); + s.store_field("participant_id", participant_id_); + s.store_bytes_field("g_a_or_b", g_a_or_b_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + { s.store_vector_begin("connections", connections_.size()); for (const auto &_value : connections_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("start_date", start_date_); + s.store_class_end(); + } +} + +phoneCallDiscarded::phoneCallDiscarded() + : flags_() + , need_rating_() + , need_debug_() + , video_() + , id_() + , reason_() + , duration_() +{} + +const std::int32_t phoneCallDiscarded::ID; + +object_ptr<PhoneCall> phoneCallDiscarded::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneCallDiscarded> res = make_tl_object<phoneCallDiscarded>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->need_rating_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->need_debug_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->video_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->reason_ = TlFetchObject<PhoneCallDiscardReason>::parse(p); } + if (var0 & 2) { res->duration_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void phoneCallDiscarded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallDiscarded"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + if (var0 & 1) { s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); } + if (var0 & 2) { s.store_field("duration", duration_); } + s.store_class_end(); + } +} + +object_ptr<PhoneCallDiscardReason> PhoneCallDiscardReason::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case phoneCallDiscardReasonMissed::ID: + return phoneCallDiscardReasonMissed::fetch(p); + case phoneCallDiscardReasonDisconnect::ID: + return phoneCallDiscardReasonDisconnect::fetch(p); + case phoneCallDiscardReasonHangup::ID: + return phoneCallDiscardReasonHangup::fetch(p); + case phoneCallDiscardReasonBusy::ID: + return phoneCallDiscardReasonBusy::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t phoneCallDiscardReasonMissed::ID; + +object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonMissed::fetch(TlBufferParser &p) { + return make_tl_object<phoneCallDiscardReasonMissed>(); +} + +void phoneCallDiscardReasonMissed::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonMissed::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonMissed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallDiscardReasonMissed"); + s.store_class_end(); + } +} + +const std::int32_t phoneCallDiscardReasonDisconnect::ID; + +object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonDisconnect::fetch(TlBufferParser &p) { + return make_tl_object<phoneCallDiscardReasonDisconnect>(); +} + +void phoneCallDiscardReasonDisconnect::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonDisconnect::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonDisconnect::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallDiscardReasonDisconnect"); + s.store_class_end(); + } +} + +const std::int32_t phoneCallDiscardReasonHangup::ID; + +object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonHangup::fetch(TlBufferParser &p) { + return make_tl_object<phoneCallDiscardReasonHangup>(); +} + +void phoneCallDiscardReasonHangup::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonHangup::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonHangup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallDiscardReasonHangup"); + s.store_class_end(); + } +} + +const std::int32_t phoneCallDiscardReasonBusy::ID; + +object_ptr<PhoneCallDiscardReason> phoneCallDiscardReasonBusy::fetch(TlBufferParser &p) { + return make_tl_object<phoneCallDiscardReasonBusy>(); +} + +void phoneCallDiscardReasonBusy::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonBusy::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void phoneCallDiscardReasonBusy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallDiscardReasonBusy"); + s.store_class_end(); + } +} + +phoneCallProtocol::phoneCallProtocol() + : flags_() + , udp_p2p_() + , udp_reflector_() + , min_layer_() + , max_layer_() + , library_versions_() +{} + +phoneCallProtocol::phoneCallProtocol(int32 flags_, bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_) + : flags_(flags_) + , udp_p2p_(udp_p2p_) + , udp_reflector_(udp_reflector_) + , min_layer_(min_layer_) + , max_layer_(max_layer_) + , library_versions_(std::move(library_versions_)) +{} + +const std::int32_t phoneCallProtocol::ID; + +object_ptr<phoneCallProtocol> phoneCallProtocol::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneCallProtocol> res = make_tl_object<phoneCallProtocol>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->udp_p2p_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->udp_reflector_ = TlFetchTrue::parse(p); } + res->min_layer_ = TlFetchInt::parse(p); + res->max_layer_ = TlFetchInt::parse(p); + res->library_versions_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void phoneCallProtocol::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(min_layer_, s); + TlStoreBinary::store(max_layer_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(library_versions_, s); +} + +void phoneCallProtocol::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(min_layer_, s); + TlStoreBinary::store(max_layer_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(library_versions_, s); +} + +void phoneCallProtocol::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneCallProtocol"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("min_layer", min_layer_); + s.store_field("max_layer", max_layer_); + { s.store_vector_begin("library_versions", library_versions_.size()); for (const auto &_value : library_versions_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<PhoneConnection> PhoneConnection::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case phoneConnection::ID: + return phoneConnection::fetch(p); + case phoneConnectionWebrtc::ID: + return phoneConnectionWebrtc::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +phoneConnection::phoneConnection() + : flags_() + , tcp_() + , id_() + , ip_() + , ipv6_() + , port_() + , peer_tag_() +{} + +const std::int32_t phoneConnection::ID; + +object_ptr<PhoneConnection> phoneConnection::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneConnection> res = make_tl_object<phoneConnection>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->tcp_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->ip_ = TlFetchString<string>::parse(p); + res->ipv6_ = TlFetchString<string>::parse(p); + res->port_ = TlFetchInt::parse(p); + res->peer_tag_ = TlFetchBytes<bytes>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void phoneConnection::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneConnection"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("ip", ip_); + s.store_field("ipv6", ipv6_); + s.store_field("port", port_); + s.store_bytes_field("peer_tag", peer_tag_); + s.store_class_end(); + } +} + +phoneConnectionWebrtc::phoneConnectionWebrtc() + : flags_() + , turn_() + , stun_() + , id_() + , ip_() + , ipv6_() + , port_() + , username_() + , password_() +{} + +const std::int32_t phoneConnectionWebrtc::ID; + +object_ptr<PhoneConnection> phoneConnectionWebrtc::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<phoneConnectionWebrtc> res = make_tl_object<phoneConnectionWebrtc>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->turn_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->stun_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->ip_ = TlFetchString<string>::parse(p); + res->ipv6_ = TlFetchString<string>::parse(p); + res->port_ = TlFetchInt::parse(p); + res->username_ = TlFetchString<string>::parse(p); + res->password_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void phoneConnectionWebrtc::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phoneConnectionWebrtc"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("ip", ip_); + s.store_field("ipv6", ipv6_); + s.store_field("port", port_); + s.store_field("username", username_); + s.store_field("password", password_); + s.store_class_end(); + } +} + +object_ptr<Photo> Photo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case photoEmpty::ID: + return photoEmpty::fetch(p); + case photo::ID: + return photo::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t photoEmpty::ID; + +object_ptr<Photo> photoEmpty::fetch(TlBufferParser &p) { + return make_tl_object<photoEmpty>(p); +} + +photoEmpty::photoEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void photoEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoEmpty"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +photo::photo() + : flags_() + , has_stickers_() + , id_() + , access_hash_() + , file_reference_() + , date_() + , sizes_() + , video_sizes_() + , dc_id_() +{} + +const std::int32_t photo::ID; + +object_ptr<Photo> photo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<photo> res = make_tl_object<photo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->has_stickers_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->file_reference_ = TlFetchBytes<bytes>::parse(p); + res->date_ = TlFetchInt::parse(p); + res->sizes_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhotoSize>>, 481674261>::parse(p); + if (var0 & 2) { res->video_sizes_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<videoSize>, -567037804>>, 481674261>::parse(p); } + res->dc_id_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void photo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_bytes_field("file_reference", file_reference_); + s.store_field("date", date_); + { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 2) { { s.store_vector_begin("video_sizes", video_sizes_.size()); for (const auto &_value : video_sizes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_field("dc_id", dc_id_); + s.store_class_end(); + } +} + +object_ptr<PhotoSize> PhotoSize::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case photoSizeEmpty::ID: + return photoSizeEmpty::fetch(p); + case photoSize::ID: + return photoSize::fetch(p); + case photoCachedSize::ID: + return photoCachedSize::fetch(p); + case photoStrippedSize::ID: + return photoStrippedSize::fetch(p); + case photoSizeProgressive::ID: + return photoSizeProgressive::fetch(p); + case photoPathSize::ID: + return photoPathSize::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +photoSizeEmpty::photoSizeEmpty(string const &type_) + : type_(type_) +{} + +const std::int32_t photoSizeEmpty::ID; + +object_ptr<PhotoSize> photoSizeEmpty::fetch(TlBufferParser &p) { + return make_tl_object<photoSizeEmpty>(p); +} + +photoSizeEmpty::photoSizeEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void photoSizeEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoSizeEmpty"); + s.store_field("type", type_); + s.store_class_end(); + } +} + +photoSize::photoSize(string const &type_, int32 w_, int32 h_, int32 size_) + : type_(type_) + , w_(w_) + , h_(h_) + , size_(size_) +{} + +const std::int32_t photoSize::ID; + +object_ptr<PhotoSize> photoSize::fetch(TlBufferParser &p) { + return make_tl_object<photoSize>(p); +} + +photoSize::photoSize(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , size_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void photoSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoSize"); + s.store_field("type", type_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + s.store_class_end(); + } +} + +photoCachedSize::photoCachedSize(string const &type_, int32 w_, int32 h_, bytes &&bytes_) + : type_(type_) + , w_(w_) + , h_(h_) + , bytes_(std::move(bytes_)) +{} + +const std::int32_t photoCachedSize::ID; + +object_ptr<PhotoSize> photoCachedSize::fetch(TlBufferParser &p) { + return make_tl_object<photoCachedSize>(p); +} + +photoCachedSize::photoCachedSize(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void photoCachedSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoCachedSize"); + s.store_field("type", type_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +const std::int32_t photoStrippedSize::ID; + +object_ptr<PhotoSize> photoStrippedSize::fetch(TlBufferParser &p) { + return make_tl_object<photoStrippedSize>(p); +} + +photoStrippedSize::photoStrippedSize(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void photoStrippedSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoStrippedSize"); + s.store_field("type", type_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +const std::int32_t photoSizeProgressive::ID; + +object_ptr<PhotoSize> photoSizeProgressive::fetch(TlBufferParser &p) { + return make_tl_object<photoSizeProgressive>(p); +} + +photoSizeProgressive::photoSizeProgressive(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) + , sizes_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) +#undef FAIL +{} + +void photoSizeProgressive::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoSizeProgressive"); + s.store_field("type", type_); + s.store_field("w", w_); + s.store_field("h", h_); + { s.store_vector_begin("sizes", sizes_.size()); for (const auto &_value : sizes_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t photoPathSize::ID; + +object_ptr<PhotoSize> photoPathSize::fetch(TlBufferParser &p) { + return make_tl_object<photoPathSize>(p); +} + +photoPathSize::photoPathSize(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchString<string>::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void photoPathSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photoPathSize"); + s.store_field("type", type_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +poll::poll() + : id_() + , flags_() + , closed_() + , public_voters_() + , multiple_choice_() + , quiz_() + , question_() + , answers_() + , close_period_() + , close_date_() +{} + +poll::poll(int64 id_, int32 flags_, bool closed_, bool public_voters_, bool multiple_choice_, bool quiz_, string const &question_, array<object_ptr<pollAnswer>> &&answers_, int32 close_period_, int32 close_date_) + : id_(id_) + , flags_(flags_) + , closed_(closed_) + , public_voters_(public_voters_) + , multiple_choice_(multiple_choice_) + , quiz_(quiz_) + , question_(question_) + , answers_(std::move(answers_)) + , close_period_(close_period_) + , close_date_(close_date_) +{} + +const std::int32_t poll::ID; + +object_ptr<poll> poll::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<poll> res = make_tl_object<poll>(); + int32 var0; + res->id_ = TlFetchLong::parse(p); + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->closed_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->public_voters_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->multiple_choice_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->quiz_ = TlFetchTrue::parse(p); } + res->question_ = TlFetchString<string>::parse(p); + res->answers_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pollAnswer>, 1823064809>>, 481674261>::parse(p); + if (var0 & 16) { res->close_period_ = TlFetchInt::parse(p); } + if (var0 & 32) { res->close_date_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void poll::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store(id_, s); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(question_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 1823064809>>, 481674261>::store(answers_, s); + if (var0 & 16) { TlStoreBinary::store(close_period_, s); } + if (var0 & 32) { TlStoreBinary::store(close_date_, s); } +} + +void poll::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store(id_, s); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(question_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 1823064809>>, 481674261>::store(answers_, s); + if (var0 & 16) { TlStoreBinary::store(close_period_, s); } + if (var0 & 32) { TlStoreBinary::store(close_date_, s); } +} + +void poll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "poll"); + int32 var0; + s.store_field("id", id_); + s.store_field("flags", (var0 = flags_)); + s.store_field("question", question_); + { s.store_vector_begin("answers", answers_.size()); for (const auto &_value : answers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 16) { s.store_field("close_period", close_period_); } + if (var0 & 32) { s.store_field("close_date", close_date_); } + s.store_class_end(); + } +} + +pollAnswer::pollAnswer(string const &text_, bytes &&option_) + : text_(text_) + , option_(std::move(option_)) +{} + +const std::int32_t pollAnswer::ID; + +object_ptr<pollAnswer> pollAnswer::fetch(TlBufferParser &p) { + return make_tl_object<pollAnswer>(p); +} + +pollAnswer::pollAnswer(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) + , option_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void pollAnswer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(option_, s); +} + +void pollAnswer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(text_, s); + TlStoreString::store(option_, s); +} + +void pollAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pollAnswer"); + s.store_field("text", text_); + s.store_bytes_field("option", option_); + s.store_class_end(); + } +} + +pollAnswerVoters::pollAnswerVoters() + : flags_() + , chosen_() + , correct_() + , option_() + , voters_() +{} + +const std::int32_t pollAnswerVoters::ID; + +object_ptr<pollAnswerVoters> pollAnswerVoters::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pollAnswerVoters> res = make_tl_object<pollAnswerVoters>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->chosen_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->correct_ = TlFetchTrue::parse(p); } + res->option_ = TlFetchBytes<bytes>::parse(p); + res->voters_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void pollAnswerVoters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pollAnswerVoters"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_bytes_field("option", option_); + s.store_field("voters", voters_); + s.store_class_end(); + } +} + +pollResults::pollResults() + : flags_() + , min_() + , results_() + , total_voters_() + , recent_voters_() + , solution_() + , solution_entities_() +{} + +const std::int32_t pollResults::ID; + +object_ptr<pollResults> pollResults::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<pollResults> res = make_tl_object<pollResults>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->min_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->results_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<pollAnswerVoters>, 997055186>>, 481674261>::parse(p); } + if (var0 & 4) { res->total_voters_ = TlFetchInt::parse(p); } + if (var0 & 8) { res->recent_voters_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); } + if (var0 & 16) { res->solution_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->solution_entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void pollResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "pollResults"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 4) { s.store_field("total_voters", total_voters_); } + if (var0 & 8) { { s.store_vector_begin("recent_voters", recent_voters_.size()); for (const auto &_value : recent_voters_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 16) { s.store_field("solution", solution_); } + if (var0 & 16) { { s.store_vector_begin("solution_entities", solution_entities_.size()); for (const auto &_value : solution_entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +const std::int32_t popularContact::ID; + +object_ptr<popularContact> popularContact::fetch(TlBufferParser &p) { + return make_tl_object<popularContact>(p); +} + +popularContact::popularContact(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : client_id_(TlFetchLong::parse(p)) + , importers_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void popularContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "popularContact"); + s.store_field("client_id", client_id_); + s.store_field("importers", importers_); + s.store_class_end(); + } +} + +postAddress::postAddress(string const &street_line1_, string const &street_line2_, string const &city_, string const &state_, string const &country_iso2_, string const &post_code_) + : street_line1_(street_line1_) + , street_line2_(street_line2_) + , city_(city_) + , state_(state_) + , country_iso2_(country_iso2_) + , post_code_(post_code_) +{} + +const std::int32_t postAddress::ID; + +object_ptr<postAddress> postAddress::fetch(TlBufferParser &p) { + return make_tl_object<postAddress>(p); +} + +postAddress::postAddress(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : street_line1_(TlFetchString<string>::parse(p)) + , street_line2_(TlFetchString<string>::parse(p)) + , city_(TlFetchString<string>::parse(p)) + , state_(TlFetchString<string>::parse(p)) + , country_iso2_(TlFetchString<string>::parse(p)) + , post_code_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void postAddress::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(street_line1_, s); + TlStoreString::store(street_line2_, s); + TlStoreString::store(city_, s); + TlStoreString::store(state_, s); + TlStoreString::store(country_iso2_, s); + TlStoreString::store(post_code_, s); +} + +void postAddress::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(street_line1_, s); + TlStoreString::store(street_line2_, s); + TlStoreString::store(city_, s); + TlStoreString::store(state_, s); + TlStoreString::store(country_iso2_, s); + TlStoreString::store(post_code_, s); +} + +void postAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "postAddress"); + s.store_field("street_line1", street_line1_); + s.store_field("street_line2", street_line2_); + s.store_field("city", city_); + s.store_field("state", state_); + s.store_field("country_iso2", country_iso2_); + s.store_field("post_code", post_code_); + s.store_class_end(); + } +} + +premiumGiftOption::premiumGiftOption() + : flags_() + , months_() + , currency_() + , amount_() + , bot_url_() + , store_product_() +{} + +const std::int32_t premiumGiftOption::ID; + +object_ptr<premiumGiftOption> premiumGiftOption::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<premiumGiftOption> res = make_tl_object<premiumGiftOption>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->months_ = TlFetchInt::parse(p); + res->currency_ = TlFetchString<string>::parse(p); + res->amount_ = TlFetchLong::parse(p); + res->bot_url_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->store_product_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void premiumGiftOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumGiftOption"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("months", months_); + s.store_field("currency", currency_); + s.store_field("amount", amount_); + s.store_field("bot_url", bot_url_); + if (var0 & 1) { s.store_field("store_product", store_product_); } + s.store_class_end(); + } +} + +premiumSubscriptionOption::premiumSubscriptionOption() + : flags_() + , current_() + , can_purchase_upgrade_() + , months_() + , currency_() + , amount_() + , bot_url_() + , store_product_() +{} + +const std::int32_t premiumSubscriptionOption::ID; + +object_ptr<premiumSubscriptionOption> premiumSubscriptionOption::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<premiumSubscriptionOption> res = make_tl_object<premiumSubscriptionOption>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->current_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->can_purchase_upgrade_ = TlFetchTrue::parse(p); } + res->months_ = TlFetchInt::parse(p); + res->currency_ = TlFetchString<string>::parse(p); + res->amount_ = TlFetchLong::parse(p); + res->bot_url_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->store_product_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void premiumSubscriptionOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "premiumSubscriptionOption"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("months", months_); + s.store_field("currency", currency_); + s.store_field("amount", amount_); + s.store_field("bot_url", bot_url_); + if (var0 & 1) { s.store_field("store_product", store_product_); } + s.store_class_end(); + } +} + +object_ptr<PrivacyKey> PrivacyKey::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case privacyKeyStatusTimestamp::ID: + return privacyKeyStatusTimestamp::fetch(p); + case privacyKeyChatInvite::ID: + return privacyKeyChatInvite::fetch(p); + case privacyKeyPhoneCall::ID: + return privacyKeyPhoneCall::fetch(p); + case privacyKeyPhoneP2P::ID: + return privacyKeyPhoneP2P::fetch(p); + case privacyKeyForwards::ID: + return privacyKeyForwards::fetch(p); + case privacyKeyProfilePhoto::ID: + return privacyKeyProfilePhoto::fetch(p); + case privacyKeyPhoneNumber::ID: + return privacyKeyPhoneNumber::fetch(p); + case privacyKeyAddedByPhone::ID: + return privacyKeyAddedByPhone::fetch(p); + case privacyKeyVoiceMessages::ID: + return privacyKeyVoiceMessages::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t privacyKeyStatusTimestamp::ID; + +object_ptr<PrivacyKey> privacyKeyStatusTimestamp::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyStatusTimestamp>(); +} + +void privacyKeyStatusTimestamp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyStatusTimestamp"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyChatInvite::ID; + +object_ptr<PrivacyKey> privacyKeyChatInvite::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyChatInvite>(); +} + +void privacyKeyChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyChatInvite"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyPhoneCall::ID; + +object_ptr<PrivacyKey> privacyKeyPhoneCall::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyPhoneCall>(); +} + +void privacyKeyPhoneCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyPhoneCall"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyPhoneP2P::ID; + +object_ptr<PrivacyKey> privacyKeyPhoneP2P::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyPhoneP2P>(); +} + +void privacyKeyPhoneP2P::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyPhoneP2P"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyForwards::ID; + +object_ptr<PrivacyKey> privacyKeyForwards::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyForwards>(); +} + +void privacyKeyForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyForwards"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyProfilePhoto::ID; + +object_ptr<PrivacyKey> privacyKeyProfilePhoto::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyProfilePhoto>(); +} + +void privacyKeyProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyProfilePhoto"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyPhoneNumber::ID; + +object_ptr<PrivacyKey> privacyKeyPhoneNumber::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyPhoneNumber>(); +} + +void privacyKeyPhoneNumber::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyPhoneNumber"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyAddedByPhone::ID; + +object_ptr<PrivacyKey> privacyKeyAddedByPhone::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyAddedByPhone>(); +} + +void privacyKeyAddedByPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyAddedByPhone"); + s.store_class_end(); + } +} + +const std::int32_t privacyKeyVoiceMessages::ID; + +object_ptr<PrivacyKey> privacyKeyVoiceMessages::fetch(TlBufferParser &p) { + return make_tl_object<privacyKeyVoiceMessages>(); +} + +void privacyKeyVoiceMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyKeyVoiceMessages"); + s.store_class_end(); + } +} + +object_ptr<PrivacyRule> PrivacyRule::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case privacyValueAllowContacts::ID: + return privacyValueAllowContacts::fetch(p); + case privacyValueAllowAll::ID: + return privacyValueAllowAll::fetch(p); + case privacyValueAllowUsers::ID: + return privacyValueAllowUsers::fetch(p); + case privacyValueDisallowContacts::ID: + return privacyValueDisallowContacts::fetch(p); + case privacyValueDisallowAll::ID: + return privacyValueDisallowAll::fetch(p); + case privacyValueDisallowUsers::ID: + return privacyValueDisallowUsers::fetch(p); + case privacyValueAllowChatParticipants::ID: + return privacyValueAllowChatParticipants::fetch(p); + case privacyValueDisallowChatParticipants::ID: + return privacyValueDisallowChatParticipants::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t privacyValueAllowContacts::ID; + +object_ptr<PrivacyRule> privacyValueAllowContacts::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueAllowContacts>(); +} + +void privacyValueAllowContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueAllowContacts"); + s.store_class_end(); + } +} + +const std::int32_t privacyValueAllowAll::ID; + +object_ptr<PrivacyRule> privacyValueAllowAll::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueAllowAll>(); +} + +void privacyValueAllowAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueAllowAll"); + s.store_class_end(); + } +} + +const std::int32_t privacyValueAllowUsers::ID; + +object_ptr<PrivacyRule> privacyValueAllowUsers::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueAllowUsers>(p); +} + +privacyValueAllowUsers::privacyValueAllowUsers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void privacyValueAllowUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueAllowUsers"); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t privacyValueDisallowContacts::ID; + +object_ptr<PrivacyRule> privacyValueDisallowContacts::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueDisallowContacts>(); +} + +void privacyValueDisallowContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueDisallowContacts"); + s.store_class_end(); + } +} + +const std::int32_t privacyValueDisallowAll::ID; + +object_ptr<PrivacyRule> privacyValueDisallowAll::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueDisallowAll>(); +} + +void privacyValueDisallowAll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueDisallowAll"); + s.store_class_end(); + } +} + +const std::int32_t privacyValueDisallowUsers::ID; + +object_ptr<PrivacyRule> privacyValueDisallowUsers::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueDisallowUsers>(p); +} + +privacyValueDisallowUsers::privacyValueDisallowUsers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : users_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void privacyValueDisallowUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueDisallowUsers"); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t privacyValueAllowChatParticipants::ID; + +object_ptr<PrivacyRule> privacyValueAllowChatParticipants::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueAllowChatParticipants>(p); +} + +privacyValueAllowChatParticipants::privacyValueAllowChatParticipants(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chats_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void privacyValueAllowChatParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueAllowChatParticipants"); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t privacyValueDisallowChatParticipants::ID; + +object_ptr<PrivacyRule> privacyValueDisallowChatParticipants::fetch(TlBufferParser &p) { + return make_tl_object<privacyValueDisallowChatParticipants>(p); +} + +privacyValueDisallowChatParticipants::privacyValueDisallowChatParticipants(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chats_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void privacyValueDisallowChatParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "privacyValueDisallowChatParticipants"); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<Reaction> Reaction::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case reactionEmpty::ID: + return reactionEmpty::fetch(p); + case reactionEmoji::ID: + return reactionEmoji::fetch(p); + case reactionCustomEmoji::ID: + return reactionCustomEmoji::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t reactionEmpty::ID; + +object_ptr<Reaction> reactionEmpty::fetch(TlBufferParser &p) { + return make_tl_object<reactionEmpty>(); +} + +void reactionEmpty::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void reactionEmpty::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void reactionEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reactionEmpty"); + s.store_class_end(); + } +} + +reactionEmoji::reactionEmoji(string const &emoticon_) + : emoticon_(emoticon_) +{} + +const std::int32_t reactionEmoji::ID; + +object_ptr<Reaction> reactionEmoji::fetch(TlBufferParser &p) { + return make_tl_object<reactionEmoji>(p); +} + +reactionEmoji::reactionEmoji(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : emoticon_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void reactionEmoji::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void reactionEmoji::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void reactionEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reactionEmoji"); + s.store_field("emoticon", emoticon_); + s.store_class_end(); + } +} + +reactionCustomEmoji::reactionCustomEmoji(int64 document_id_) + : document_id_(document_id_) +{} + +const std::int32_t reactionCustomEmoji::ID; + +object_ptr<Reaction> reactionCustomEmoji::fetch(TlBufferParser &p) { + return make_tl_object<reactionCustomEmoji>(p); +} + +reactionCustomEmoji::reactionCustomEmoji(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : document_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void reactionCustomEmoji::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(document_id_, s); +} + +void reactionCustomEmoji::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(document_id_, s); +} + +void reactionCustomEmoji::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reactionCustomEmoji"); + s.store_field("document_id", document_id_); + s.store_class_end(); + } +} + +reactionCount::reactionCount() + : flags_() + , chosen_order_() + , reaction_() + , count_() +{} + +const std::int32_t reactionCount::ID; + +object_ptr<reactionCount> reactionCount::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<reactionCount> res = make_tl_object<reactionCount>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->chosen_order_ = TlFetchInt::parse(p); } + res->reaction_ = TlFetchObject<Reaction>::parse(p); + res->count_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void reactionCount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "reactionCount"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("chosen_order", chosen_order_); } + s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get())); + s.store_field("count", count_); + s.store_class_end(); + } +} + +const std::int32_t receivedNotifyMessage::ID; + +object_ptr<receivedNotifyMessage> receivedNotifyMessage::fetch(TlBufferParser &p) { + return make_tl_object<receivedNotifyMessage>(p); +} + +receivedNotifyMessage::receivedNotifyMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchInt::parse(p)) + , flags_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void receivedNotifyMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "receivedNotifyMessage"); + s.store_field("id", id_); + s.store_field("flags", flags_); + s.store_class_end(); + } +} + +object_ptr<RecentMeUrl> RecentMeUrl::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case recentMeUrlUnknown::ID: + return recentMeUrlUnknown::fetch(p); + case recentMeUrlUser::ID: + return recentMeUrlUser::fetch(p); + case recentMeUrlChat::ID: + return recentMeUrlChat::fetch(p); + case recentMeUrlChatInvite::ID: + return recentMeUrlChatInvite::fetch(p); + case recentMeUrlStickerSet::ID: + return recentMeUrlStickerSet::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t recentMeUrlUnknown::ID; + +object_ptr<RecentMeUrl> recentMeUrlUnknown::fetch(TlBufferParser &p) { + return make_tl_object<recentMeUrlUnknown>(p); +} + +recentMeUrlUnknown::recentMeUrlUnknown(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void recentMeUrlUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recentMeUrlUnknown"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +const std::int32_t recentMeUrlUser::ID; + +object_ptr<RecentMeUrl> recentMeUrlUser::fetch(TlBufferParser &p) { + return make_tl_object<recentMeUrlUser>(p); +} + +recentMeUrlUser::recentMeUrlUser(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , user_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void recentMeUrlUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recentMeUrlUser"); + s.store_field("url", url_); + s.store_field("user_id", user_id_); + s.store_class_end(); + } +} + +const std::int32_t recentMeUrlChat::ID; + +object_ptr<RecentMeUrl> recentMeUrlChat::fetch(TlBufferParser &p) { + return make_tl_object<recentMeUrlChat>(p); +} + +recentMeUrlChat::recentMeUrlChat(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , chat_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void recentMeUrlChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recentMeUrlChat"); + s.store_field("url", url_); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +const std::int32_t recentMeUrlChatInvite::ID; + +object_ptr<RecentMeUrl> recentMeUrlChatInvite::fetch(TlBufferParser &p) { + return make_tl_object<recentMeUrlChatInvite>(p); +} + +recentMeUrlChatInvite::recentMeUrlChatInvite(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , chat_invite_(TlFetchObject<ChatInvite>::parse(p)) +#undef FAIL +{} + +void recentMeUrlChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recentMeUrlChatInvite"); + s.store_field("url", url_); + s.store_object_field("chat_invite", static_cast<const BaseObject *>(chat_invite_.get())); + s.store_class_end(); + } +} + +const std::int32_t recentMeUrlStickerSet::ID; + +object_ptr<RecentMeUrl> recentMeUrlStickerSet::fetch(TlBufferParser &p) { + return make_tl_object<recentMeUrlStickerSet>(p); +} + +recentMeUrlStickerSet::recentMeUrlStickerSet(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , set_(TlFetchObject<StickerSetCovered>::parse(p)) +#undef FAIL +{} + +void recentMeUrlStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "recentMeUrlStickerSet"); + s.store_field("url", url_); + s.store_object_field("set", static_cast<const BaseObject *>(set_.get())); + s.store_class_end(); + } +} + +object_ptr<ReplyMarkup> ReplyMarkup::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case replyKeyboardHide::ID: + return replyKeyboardHide::fetch(p); + case replyKeyboardForceReply::ID: + return replyKeyboardForceReply::fetch(p); + case replyKeyboardMarkup::ID: + return replyKeyboardMarkup::fetch(p); + case replyInlineMarkup::ID: + return replyInlineMarkup::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +replyKeyboardHide::replyKeyboardHide() + : flags_() + , selective_() +{} + +replyKeyboardHide::replyKeyboardHide(int32 flags_, bool selective_) + : flags_(flags_) + , selective_(selective_) +{} + +const std::int32_t replyKeyboardHide::ID; + +object_ptr<ReplyMarkup> replyKeyboardHide::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<replyKeyboardHide> res = make_tl_object<replyKeyboardHide>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->selective_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void replyKeyboardHide::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void replyKeyboardHide::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); +} + +void replyKeyboardHide::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyKeyboardHide"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +replyKeyboardForceReply::replyKeyboardForceReply() + : flags_() + , single_use_() + , selective_() + , placeholder_() +{} + +replyKeyboardForceReply::replyKeyboardForceReply(int32 flags_, bool single_use_, bool selective_, string const &placeholder_) + : flags_(flags_) + , single_use_(single_use_) + , selective_(selective_) + , placeholder_(placeholder_) +{} + +const std::int32_t replyKeyboardForceReply::ID; + +object_ptr<ReplyMarkup> replyKeyboardForceReply::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<replyKeyboardForceReply> res = make_tl_object<replyKeyboardForceReply>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->single_use_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->selective_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->placeholder_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void replyKeyboardForceReply::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 8) { TlStoreString::store(placeholder_, s); } +} + +void replyKeyboardForceReply::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 8) { TlStoreString::store(placeholder_, s); } +} + +void replyKeyboardForceReply::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyKeyboardForceReply"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 8) { s.store_field("placeholder", placeholder_); } + s.store_class_end(); + } +} + +replyKeyboardMarkup::replyKeyboardMarkup() + : flags_() + , resize_() + , single_use_() + , selective_() + , rows_() + , placeholder_() +{} + +replyKeyboardMarkup::replyKeyboardMarkup(int32 flags_, bool resize_, bool single_use_, bool selective_, array<object_ptr<keyboardButtonRow>> &&rows_, string const &placeholder_) + : flags_(flags_) + , resize_(resize_) + , single_use_(single_use_) + , selective_(selective_) + , rows_(std::move(rows_)) + , placeholder_(placeholder_) +{} + +const std::int32_t replyKeyboardMarkup::ID; + +object_ptr<ReplyMarkup> replyKeyboardMarkup::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<replyKeyboardMarkup> res = make_tl_object<replyKeyboardMarkup>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->resize_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->single_use_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->selective_ = TlFetchTrue::parse(p); } + res->rows_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<keyboardButtonRow>, 2002815875>>, 481674261>::parse(p); + if (var0 & 8) { res->placeholder_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void replyKeyboardMarkup::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s); + if (var0 & 8) { TlStoreString::store(placeholder_, s); } +} + +void replyKeyboardMarkup::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s); + if (var0 & 8) { TlStoreString::store(placeholder_, s); } +} + +void replyKeyboardMarkup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyKeyboardMarkup"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 8) { s.store_field("placeholder", placeholder_); } + s.store_class_end(); + } +} + +replyInlineMarkup::replyInlineMarkup(array<object_ptr<keyboardButtonRow>> &&rows_) + : rows_(std::move(rows_)) +{} + +const std::int32_t replyInlineMarkup::ID; + +object_ptr<ReplyMarkup> replyInlineMarkup::fetch(TlBufferParser &p) { + return make_tl_object<replyInlineMarkup>(p); +} + +replyInlineMarkup::replyInlineMarkup(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : rows_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<keyboardButtonRow>, 2002815875>>, 481674261>::parse(p)) +#undef FAIL +{} + +void replyInlineMarkup::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s); +} + +void replyInlineMarkup::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 2002815875>>, 481674261>::store(rows_, s); +} + +void replyInlineMarkup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "replyInlineMarkup"); + { s.store_vector_begin("rows", rows_.size()); for (const auto &_value : rows_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonSpam::ID; + +void inputReportReasonSpam::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonSpam::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonSpam::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonSpam"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonViolence::ID; + +void inputReportReasonViolence::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonViolence::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonViolence::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonViolence"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonPornography::ID; + +void inputReportReasonPornography::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonPornography::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonPornography::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonPornography"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonChildAbuse::ID; + +void inputReportReasonChildAbuse::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonChildAbuse::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonChildAbuse::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonChildAbuse"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonOther::ID; + +void inputReportReasonOther::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonOther::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonOther::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonOther"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonCopyright::ID; + +void inputReportReasonCopyright::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonCopyright::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonCopyright::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonCopyright"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonGeoIrrelevant::ID; + +void inputReportReasonGeoIrrelevant::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonGeoIrrelevant::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonGeoIrrelevant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonGeoIrrelevant"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonFake::ID; + +void inputReportReasonFake::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonFake::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonFake::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonFake"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonIllegalDrugs::ID; + +void inputReportReasonIllegalDrugs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonIllegalDrugs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonIllegalDrugs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonIllegalDrugs"); + s.store_class_end(); + } +} + +const std::int32_t inputReportReasonPersonalDetails::ID; + +void inputReportReasonPersonalDetails::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void inputReportReasonPersonalDetails::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void inputReportReasonPersonalDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "inputReportReasonPersonalDetails"); + s.store_class_end(); + } +} + +const std::int32_t restrictionReason::ID; + +object_ptr<restrictionReason> restrictionReason::fetch(TlBufferParser &p) { + return make_tl_object<restrictionReason>(p); +} + +restrictionReason::restrictionReason(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : platform_(TlFetchString<string>::parse(p)) + , reason_(TlFetchString<string>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void restrictionReason::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "restrictionReason"); + s.store_field("platform", platform_); + s.store_field("reason", reason_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +object_ptr<RichText> RichText::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case textEmpty::ID: + return textEmpty::fetch(p); + case textPlain::ID: + return textPlain::fetch(p); + case textBold::ID: + return textBold::fetch(p); + case textItalic::ID: + return textItalic::fetch(p); + case textUnderline::ID: + return textUnderline::fetch(p); + case textStrike::ID: + return textStrike::fetch(p); + case textFixed::ID: + return textFixed::fetch(p); + case textUrl::ID: + return textUrl::fetch(p); + case textEmail::ID: + return textEmail::fetch(p); + case textConcat::ID: + return textConcat::fetch(p); + case textSubscript::ID: + return textSubscript::fetch(p); + case textSuperscript::ID: + return textSuperscript::fetch(p); + case textMarked::ID: + return textMarked::fetch(p); + case textPhone::ID: + return textPhone::fetch(p); + case textImage::ID: + return textImage::fetch(p); + case textAnchor::ID: + return textAnchor::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t textEmpty::ID; + +object_ptr<RichText> textEmpty::fetch(TlBufferParser &p) { + return make_tl_object<textEmpty>(); +} + +void textEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEmpty"); + s.store_class_end(); + } +} + +const std::int32_t textPlain::ID; + +object_ptr<RichText> textPlain::fetch(TlBufferParser &p) { + return make_tl_object<textPlain>(p); +} + +textPlain::textPlain(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void textPlain::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textPlain"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +const std::int32_t textBold::ID; + +object_ptr<RichText> textBold::fetch(TlBufferParser &p) { + return make_tl_object<textBold>(p); +} + +textBold::textBold(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textBold::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textBold"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textItalic::ID; + +object_ptr<RichText> textItalic::fetch(TlBufferParser &p) { + return make_tl_object<textItalic>(p); +} + +textItalic::textItalic(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textItalic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textItalic"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textUnderline::ID; + +object_ptr<RichText> textUnderline::fetch(TlBufferParser &p) { + return make_tl_object<textUnderline>(p); +} + +textUnderline::textUnderline(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textUnderline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textUnderline"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textStrike::ID; + +object_ptr<RichText> textStrike::fetch(TlBufferParser &p) { + return make_tl_object<textStrike>(p); +} + +textStrike::textStrike(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textStrike::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textStrike"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textFixed::ID; + +object_ptr<RichText> textFixed::fetch(TlBufferParser &p) { + return make_tl_object<textFixed>(p); +} + +textFixed::textFixed(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textFixed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textFixed"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textUrl::ID; + +object_ptr<RichText> textUrl::fetch(TlBufferParser &p) { + return make_tl_object<textUrl>(p); +} + +textUrl::textUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , url_(TlFetchString<string>::parse(p)) + , webpage_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void textUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textUrl"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("url", url_); + s.store_field("webpage_id", webpage_id_); + s.store_class_end(); + } +} + +const std::int32_t textEmail::ID; + +object_ptr<RichText> textEmail::fetch(TlBufferParser &p) { + return make_tl_object<textEmail>(p); +} + +textEmail::textEmail(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , email_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void textEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textEmail"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("email", email_); + s.store_class_end(); + } +} + +const std::int32_t textConcat::ID; + +object_ptr<RichText> textConcat::fetch(TlBufferParser &p) { + return make_tl_object<textConcat>(p); +} + +textConcat::textConcat(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : texts_(TlFetchBoxed<TlFetchVector<TlFetchObject<RichText>>, 481674261>::parse(p)) +#undef FAIL +{} + +void textConcat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textConcat"); + { s.store_vector_begin("texts", texts_.size()); for (const auto &_value : texts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t textSubscript::ID; + +object_ptr<RichText> textSubscript::fetch(TlBufferParser &p) { + return make_tl_object<textSubscript>(p); +} + +textSubscript::textSubscript(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textSubscript::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textSubscript"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textSuperscript::ID; + +object_ptr<RichText> textSuperscript::fetch(TlBufferParser &p) { + return make_tl_object<textSuperscript>(p); +} + +textSuperscript::textSuperscript(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textSuperscript::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textSuperscript"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textMarked::ID; + +object_ptr<RichText> textMarked::fetch(TlBufferParser &p) { + return make_tl_object<textMarked>(p); +} + +textMarked::textMarked(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) +#undef FAIL +{} + +void textMarked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textMarked"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_class_end(); + } +} + +const std::int32_t textPhone::ID; + +object_ptr<RichText> textPhone::fetch(TlBufferParser &p) { + return make_tl_object<textPhone>(p); +} + +textPhone::textPhone(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , phone_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void textPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textPhone"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("phone", phone_); + s.store_class_end(); + } +} + +const std::int32_t textImage::ID; + +object_ptr<RichText> textImage::fetch(TlBufferParser &p) { + return make_tl_object<textImage>(p); +} + +textImage::textImage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : document_id_(TlFetchLong::parse(p)) + , w_(TlFetchInt::parse(p)) + , h_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void textImage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textImage"); + s.store_field("document_id", document_id_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_class_end(); + } +} + +const std::int32_t textAnchor::ID; + +object_ptr<RichText> textAnchor::fetch(TlBufferParser &p) { + return make_tl_object<textAnchor>(p); +} + +textAnchor::textAnchor(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchObject<RichText>::parse(p)) + , name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void textAnchor::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "textAnchor"); + s.store_object_field("text", static_cast<const BaseObject *>(text_.get())); + s.store_field("name", name_); + s.store_class_end(); + } +} + +const std::int32_t savedPhoneContact::ID; + +object_ptr<savedPhoneContact> savedPhoneContact::fetch(TlBufferParser &p) { + return make_tl_object<savedPhoneContact>(p); +} + +savedPhoneContact::savedPhoneContact(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_(TlFetchString<string>::parse(p)) + , first_name_(TlFetchString<string>::parse(p)) + , last_name_(TlFetchString<string>::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void savedPhoneContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "savedPhoneContact"); + s.store_field("phone", phone_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t searchResultsCalendarPeriod::ID; + +object_ptr<searchResultsCalendarPeriod> searchResultsCalendarPeriod::fetch(TlBufferParser &p) { + return make_tl_object<searchResultsCalendarPeriod>(p); +} + +searchResultsCalendarPeriod::searchResultsCalendarPeriod(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : date_(TlFetchInt::parse(p)) + , min_msg_id_(TlFetchInt::parse(p)) + , max_msg_id_(TlFetchInt::parse(p)) + , count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void searchResultsCalendarPeriod::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchResultsCalendarPeriod"); + s.store_field("date", date_); + s.store_field("min_msg_id", min_msg_id_); + s.store_field("max_msg_id", max_msg_id_); + s.store_field("count", count_); + s.store_class_end(); + } +} + +const std::int32_t searchResultPosition::ID; + +object_ptr<searchResultPosition> searchResultPosition::fetch(TlBufferParser &p) { + return make_tl_object<searchResultPosition>(p); +} + +searchResultPosition::searchResultPosition(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : msg_id_(TlFetchInt::parse(p)) + , date_(TlFetchInt::parse(p)) + , offset_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void searchResultPosition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "searchResultPosition"); + s.store_field("msg_id", msg_id_); + s.store_field("date", date_); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +secureCredentialsEncrypted::secureCredentialsEncrypted(bytes &&data_, bytes &&hash_, bytes &&secret_) + : data_(std::move(data_)) + , hash_(std::move(hash_)) + , secret_(std::move(secret_)) +{} + +const std::int32_t secureCredentialsEncrypted::ID; + +object_ptr<secureCredentialsEncrypted> secureCredentialsEncrypted::fetch(TlBufferParser &p) { + return make_tl_object<secureCredentialsEncrypted>(p); +} + +secureCredentialsEncrypted::secureCredentialsEncrypted(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : data_(TlFetchBytes<bytes>::parse(p)) + , hash_(TlFetchBytes<bytes>::parse(p)) + , secret_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void secureCredentialsEncrypted::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(data_, s); + TlStoreString::store(hash_, s); + TlStoreString::store(secret_, s); +} + +void secureCredentialsEncrypted::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(data_, s); + TlStoreString::store(hash_, s); + TlStoreString::store(secret_, s); +} + +void secureCredentialsEncrypted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureCredentialsEncrypted"); + s.store_bytes_field("data", data_); + s.store_bytes_field("hash", hash_); + s.store_bytes_field("secret", secret_); + s.store_class_end(); + } +} + +secureData::secureData(bytes &&data_, bytes &&data_hash_, bytes &&secret_) + : data_(std::move(data_)) + , data_hash_(std::move(data_hash_)) + , secret_(std::move(secret_)) +{} + +const std::int32_t secureData::ID; + +object_ptr<secureData> secureData::fetch(TlBufferParser &p) { + return make_tl_object<secureData>(p); +} + +secureData::secureData(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : data_(TlFetchBytes<bytes>::parse(p)) + , data_hash_(TlFetchBytes<bytes>::parse(p)) + , secret_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void secureData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(data_, s); + TlStoreString::store(data_hash_, s); + TlStoreString::store(secret_, s); +} + +void secureData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(data_, s); + TlStoreString::store(data_hash_, s); + TlStoreString::store(secret_, s); +} + +void secureData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureData"); + s.store_bytes_field("data", data_); + s.store_bytes_field("data_hash", data_hash_); + s.store_bytes_field("secret", secret_); + s.store_class_end(); + } +} + +object_ptr<SecureFile> SecureFile::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case secureFileEmpty::ID: + return secureFileEmpty::fetch(p); + case secureFile::ID: + return secureFile::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t secureFileEmpty::ID; + +object_ptr<SecureFile> secureFileEmpty::fetch(TlBufferParser &p) { + return make_tl_object<secureFileEmpty>(); +} + +void secureFileEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureFileEmpty"); + s.store_class_end(); + } +} + +const std::int32_t secureFile::ID; + +object_ptr<SecureFile> secureFile::fetch(TlBufferParser &p) { + return make_tl_object<secureFile>(p); +} + +secureFile::secureFile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , access_hash_(TlFetchLong::parse(p)) + , size_(TlFetchLong::parse(p)) + , dc_id_(TlFetchInt::parse(p)) + , date_(TlFetchInt::parse(p)) + , file_hash_(TlFetchBytes<bytes>::parse(p)) + , secret_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void secureFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureFile"); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("size", size_); + s.store_field("dc_id", dc_id_); + s.store_field("date", date_); + s.store_bytes_field("file_hash", file_hash_); + s.store_bytes_field("secret", secret_); + s.store_class_end(); + } +} + +object_ptr<SecurePasswordKdfAlgo> SecurePasswordKdfAlgo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case securePasswordKdfAlgoUnknown::ID: + return securePasswordKdfAlgoUnknown::fetch(p); + case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID: + return securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::fetch(p); + case securePasswordKdfAlgoSHA512::ID: + return securePasswordKdfAlgoSHA512::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t securePasswordKdfAlgoUnknown::ID; + +object_ptr<SecurePasswordKdfAlgo> securePasswordKdfAlgoUnknown::fetch(TlBufferParser &p) { + return make_tl_object<securePasswordKdfAlgoUnknown>(); +} + +void securePasswordKdfAlgoUnknown::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void securePasswordKdfAlgoUnknown::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void securePasswordKdfAlgoUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "securePasswordKdfAlgoUnknown"); + s.store_class_end(); + } +} + +securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(bytes &&salt_) + : salt_(std::move(salt_)) +{} + +const std::int32_t securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID; + +object_ptr<SecurePasswordKdfAlgo> securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::fetch(TlBufferParser &p) { + return make_tl_object<securePasswordKdfAlgoPBKDF2HMACSHA512iter100000>(p); +} + +securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : salt_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(salt_, s); +} + +void securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(salt_, s); +} + +void securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "securePasswordKdfAlgoPBKDF2HMACSHA512iter100000"); + s.store_bytes_field("salt", salt_); + s.store_class_end(); + } +} + +securePasswordKdfAlgoSHA512::securePasswordKdfAlgoSHA512(bytes &&salt_) + : salt_(std::move(salt_)) +{} + +const std::int32_t securePasswordKdfAlgoSHA512::ID; + +object_ptr<SecurePasswordKdfAlgo> securePasswordKdfAlgoSHA512::fetch(TlBufferParser &p) { + return make_tl_object<securePasswordKdfAlgoSHA512>(p); +} + +securePasswordKdfAlgoSHA512::securePasswordKdfAlgoSHA512(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : salt_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void securePasswordKdfAlgoSHA512::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(salt_, s); +} + +void securePasswordKdfAlgoSHA512::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(salt_, s); +} + +void securePasswordKdfAlgoSHA512::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "securePasswordKdfAlgoSHA512"); + s.store_bytes_field("salt", salt_); + s.store_class_end(); + } +} + +object_ptr<SecurePlainData> SecurePlainData::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case securePlainPhone::ID: + return securePlainPhone::fetch(p); + case securePlainEmail::ID: + return securePlainEmail::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +securePlainPhone::securePlainPhone(string const &phone_) + : phone_(phone_) +{} + +const std::int32_t securePlainPhone::ID; + +object_ptr<SecurePlainData> securePlainPhone::fetch(TlBufferParser &p) { + return make_tl_object<securePlainPhone>(p); +} + +securePlainPhone::securePlainPhone(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void securePlainPhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(phone_, s); +} + +void securePlainPhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(phone_, s); +} + +void securePlainPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "securePlainPhone"); + s.store_field("phone", phone_); + s.store_class_end(); + } +} + +securePlainEmail::securePlainEmail(string const &email_) + : email_(email_) +{} + +const std::int32_t securePlainEmail::ID; + +object_ptr<SecurePlainData> securePlainEmail::fetch(TlBufferParser &p) { + return make_tl_object<securePlainEmail>(p); +} + +securePlainEmail::securePlainEmail(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : email_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void securePlainEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(email_, s); +} + +void securePlainEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(email_, s); +} + +void securePlainEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "securePlainEmail"); + s.store_field("email", email_); + s.store_class_end(); + } +} + +object_ptr<SecureRequiredType> SecureRequiredType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case secureRequiredType::ID: + return secureRequiredType::fetch(p); + case secureRequiredTypeOneOf::ID: + return secureRequiredTypeOneOf::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +secureRequiredType::secureRequiredType() + : flags_() + , native_names_() + , selfie_required_() + , translation_required_() + , type_() +{} + +const std::int32_t secureRequiredType::ID; + +object_ptr<SecureRequiredType> secureRequiredType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<secureRequiredType> res = make_tl_object<secureRequiredType>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->native_names_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->selfie_required_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->translation_required_ = TlFetchTrue::parse(p); } + res->type_ = TlFetchObject<SecureValueType>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void secureRequiredType::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureRequiredType"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_class_end(); + } +} + +const std::int32_t secureRequiredTypeOneOf::ID; + +object_ptr<SecureRequiredType> secureRequiredTypeOneOf::fetch(TlBufferParser &p) { + return make_tl_object<secureRequiredTypeOneOf>(p); +} + +secureRequiredTypeOneOf::secureRequiredTypeOneOf(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : types_(TlFetchBoxed<TlFetchVector<TlFetchObject<SecureRequiredType>>, 481674261>::parse(p)) +#undef FAIL +{} + +void secureRequiredTypeOneOf::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureRequiredTypeOneOf"); + { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +secureSecretSettings::secureSecretSettings(object_ptr<SecurePasswordKdfAlgo> &&secure_algo_, bytes &&secure_secret_, int64 secure_secret_id_) + : secure_algo_(std::move(secure_algo_)) + , secure_secret_(std::move(secure_secret_)) + , secure_secret_id_(secure_secret_id_) +{} + +const std::int32_t secureSecretSettings::ID; + +object_ptr<secureSecretSettings> secureSecretSettings::fetch(TlBufferParser &p) { + return make_tl_object<secureSecretSettings>(p); +} + +secureSecretSettings::secureSecretSettings(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : secure_algo_(TlFetchObject<SecurePasswordKdfAlgo>::parse(p)) + , secure_secret_(TlFetchBytes<bytes>::parse(p)) + , secure_secret_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void secureSecretSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(secure_algo_, s); + TlStoreString::store(secure_secret_, s); + TlStoreBinary::store(secure_secret_id_, s); +} + +void secureSecretSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(secure_algo_, s); + TlStoreString::store(secure_secret_, s); + TlStoreBinary::store(secure_secret_id_, s); +} + +void secureSecretSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureSecretSettings"); + s.store_object_field("secure_algo", static_cast<const BaseObject *>(secure_algo_.get())); + s.store_bytes_field("secure_secret", secure_secret_); + s.store_field("secure_secret_id", secure_secret_id_); + s.store_class_end(); + } +} + +secureValue::secureValue() + : flags_() + , type_() + , data_() + , front_side_() + , reverse_side_() + , selfie_() + , translation_() + , files_() + , plain_data_() + , hash_() +{} + +const std::int32_t secureValue::ID; + +object_ptr<secureValue> secureValue::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<secureValue> res = make_tl_object<secureValue>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->type_ = TlFetchObject<SecureValueType>::parse(p); + if (var0 & 1) { res->data_ = TlFetchBoxed<TlFetchObject<secureData>, -1964327229>::parse(p); } + if (var0 & 2) { res->front_side_ = TlFetchObject<SecureFile>::parse(p); } + if (var0 & 4) { res->reverse_side_ = TlFetchObject<SecureFile>::parse(p); } + if (var0 & 8) { res->selfie_ = TlFetchObject<SecureFile>::parse(p); } + if (var0 & 64) { res->translation_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureFile>>, 481674261>::parse(p); } + if (var0 & 16) { res->files_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureFile>>, 481674261>::parse(p); } + if (var0 & 32) { res->plain_data_ = TlFetchObject<SecurePlainData>::parse(p); } + res->hash_ = TlFetchBytes<bytes>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void secureValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValue"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + if (var0 & 1) { s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); } + if (var0 & 2) { s.store_object_field("front_side", static_cast<const BaseObject *>(front_side_.get())); } + if (var0 & 4) { s.store_object_field("reverse_side", static_cast<const BaseObject *>(reverse_side_.get())); } + if (var0 & 8) { s.store_object_field("selfie", static_cast<const BaseObject *>(selfie_.get())); } + if (var0 & 64) { { s.store_vector_begin("translation", translation_.size()); for (const auto &_value : translation_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 16) { { s.store_vector_begin("files", files_.size()); for (const auto &_value : files_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 32) { s.store_object_field("plain_data", static_cast<const BaseObject *>(plain_data_.get())); } + s.store_bytes_field("hash", hash_); + s.store_class_end(); + } +} + +object_ptr<SecureValueError> SecureValueError::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case secureValueErrorData::ID: + return secureValueErrorData::fetch(p); + case secureValueErrorFrontSide::ID: + return secureValueErrorFrontSide::fetch(p); + case secureValueErrorReverseSide::ID: + return secureValueErrorReverseSide::fetch(p); + case secureValueErrorSelfie::ID: + return secureValueErrorSelfie::fetch(p); + case secureValueErrorFile::ID: + return secureValueErrorFile::fetch(p); + case secureValueErrorFiles::ID: + return secureValueErrorFiles::fetch(p); + case secureValueError::ID: + return secureValueError::fetch(p); + case secureValueErrorTranslationFile::ID: + return secureValueErrorTranslationFile::fetch(p); + case secureValueErrorTranslationFiles::ID: + return secureValueErrorTranslationFiles::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +secureValueErrorData::secureValueErrorData(object_ptr<SecureValueType> &&type_, bytes &&data_hash_, string const &field_, string const &text_) + : type_(std::move(type_)) + , data_hash_(std::move(data_hash_)) + , field_(field_) + , text_(text_) +{} + +const std::int32_t secureValueErrorData::ID; + +object_ptr<SecureValueError> secureValueErrorData::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorData>(p); +} + +secureValueErrorData::secureValueErrorData(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , data_hash_(TlFetchBytes<bytes>::parse(p)) + , field_(TlFetchString<string>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(data_hash_, s); + TlStoreString::store(field_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(data_hash_, s); + TlStoreString::store(field_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorData"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("data_hash", data_hash_); + s.store_field("field", field_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueErrorFrontSide::secureValueErrorFrontSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_) + : type_(std::move(type_)) + , file_hash_(std::move(file_hash_)) + , text_(text_) +{} + +const std::int32_t secureValueErrorFrontSide::ID; + +object_ptr<SecureValueError> secureValueErrorFrontSide::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorFrontSide>(p); +} + +secureValueErrorFrontSide::secureValueErrorFrontSide(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , file_hash_(TlFetchBytes<bytes>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorFrontSide::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorFrontSide::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorFrontSide::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorFrontSide"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("file_hash", file_hash_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueErrorReverseSide::secureValueErrorReverseSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_) + : type_(std::move(type_)) + , file_hash_(std::move(file_hash_)) + , text_(text_) +{} + +const std::int32_t secureValueErrorReverseSide::ID; + +object_ptr<SecureValueError> secureValueErrorReverseSide::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorReverseSide>(p); +} + +secureValueErrorReverseSide::secureValueErrorReverseSide(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , file_hash_(TlFetchBytes<bytes>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorReverseSide::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorReverseSide::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorReverseSide::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorReverseSide"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("file_hash", file_hash_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueErrorSelfie::secureValueErrorSelfie(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_) + : type_(std::move(type_)) + , file_hash_(std::move(file_hash_)) + , text_(text_) +{} + +const std::int32_t secureValueErrorSelfie::ID; + +object_ptr<SecureValueError> secureValueErrorSelfie::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorSelfie>(p); +} + +secureValueErrorSelfie::secureValueErrorSelfie(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , file_hash_(TlFetchBytes<bytes>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorSelfie::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorSelfie::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorSelfie::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorSelfie"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("file_hash", file_hash_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueErrorFile::secureValueErrorFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_) + : type_(std::move(type_)) + , file_hash_(std::move(file_hash_)) + , text_(text_) +{} + +const std::int32_t secureValueErrorFile::ID; + +object_ptr<SecureValueError> secureValueErrorFile::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorFile>(p); +} + +secureValueErrorFile::secureValueErrorFile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , file_hash_(TlFetchBytes<bytes>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorFile"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("file_hash", file_hash_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueErrorFiles::secureValueErrorFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_) + : type_(std::move(type_)) + , file_hash_(std::move(file_hash_)) + , text_(text_) +{} + +const std::int32_t secureValueErrorFiles::ID; + +object_ptr<SecureValueError> secureValueErrorFiles::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorFiles>(p); +} + +secureValueErrorFiles::secureValueErrorFiles(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , file_hash_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorFiles::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorFiles::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorFiles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorFiles"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + { s.store_vector_begin("file_hash", file_hash_.size()); for (const auto &_value : file_hash_) { s.store_bytes_field("", _value); } s.store_class_end(); } + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueError::secureValueError(object_ptr<SecureValueType> &&type_, bytes &&hash_, string const &text_) + : type_(std::move(type_)) + , hash_(std::move(hash_)) + , text_(text_) +{} + +const std::int32_t secureValueError::ID; + +object_ptr<SecureValueError> secureValueError::fetch(TlBufferParser &p) { + return make_tl_object<secureValueError>(p); +} + +secureValueError::secureValueError(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , hash_(TlFetchBytes<bytes>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueError::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueError::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueError"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("hash", hash_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueErrorTranslationFile::secureValueErrorTranslationFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_) + : type_(std::move(type_)) + , file_hash_(std::move(file_hash_)) + , text_(text_) +{} + +const std::int32_t secureValueErrorTranslationFile::ID; + +object_ptr<SecureValueError> secureValueErrorTranslationFile::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorTranslationFile>(p); +} + +secureValueErrorTranslationFile::secureValueErrorTranslationFile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , file_hash_(TlFetchBytes<bytes>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorTranslationFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorTranslationFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorTranslationFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorTranslationFile"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("file_hash", file_hash_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueErrorTranslationFiles::secureValueErrorTranslationFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_) + : type_(std::move(type_)) + , file_hash_(std::move(file_hash_)) + , text_(text_) +{} + +const std::int32_t secureValueErrorTranslationFiles::ID; + +object_ptr<SecureValueError> secureValueErrorTranslationFiles::fetch(TlBufferParser &p) { + return make_tl_object<secureValueErrorTranslationFiles>(p); +} + +secureValueErrorTranslationFiles::secureValueErrorTranslationFiles(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<SecureValueType>::parse(p)) + , file_hash_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p)) + , text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void secureValueErrorTranslationFiles::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorTranslationFiles::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(file_hash_, s); + TlStoreString::store(text_, s); +} + +void secureValueErrorTranslationFiles::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueErrorTranslationFiles"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + { s.store_vector_begin("file_hash", file_hash_.size()); for (const auto &_value : file_hash_) { s.store_bytes_field("", _value); } s.store_class_end(); } + s.store_field("text", text_); + s.store_class_end(); + } +} + +secureValueHash::secureValueHash(object_ptr<SecureValueType> &&type_, bytes &&hash_) + : type_(std::move(type_)) + , hash_(std::move(hash_)) +{} + +const std::int32_t secureValueHash::ID; + +void secureValueHash::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(hash_, s); +} + +void secureValueHash::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBoxedUnknown<TlStoreObject>::store(type_, s); + TlStoreString::store(hash_, s); +} + +void secureValueHash::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueHash"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_bytes_field("hash", hash_); + s.store_class_end(); + } +} + +object_ptr<SecureValueType> SecureValueType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case secureValueTypePersonalDetails::ID: + return secureValueTypePersonalDetails::fetch(p); + case secureValueTypePassport::ID: + return secureValueTypePassport::fetch(p); + case secureValueTypeDriverLicense::ID: + return secureValueTypeDriverLicense::fetch(p); + case secureValueTypeIdentityCard::ID: + return secureValueTypeIdentityCard::fetch(p); + case secureValueTypeInternalPassport::ID: + return secureValueTypeInternalPassport::fetch(p); + case secureValueTypeAddress::ID: + return secureValueTypeAddress::fetch(p); + case secureValueTypeUtilityBill::ID: + return secureValueTypeUtilityBill::fetch(p); + case secureValueTypeBankStatement::ID: + return secureValueTypeBankStatement::fetch(p); + case secureValueTypeRentalAgreement::ID: + return secureValueTypeRentalAgreement::fetch(p); + case secureValueTypePassportRegistration::ID: + return secureValueTypePassportRegistration::fetch(p); + case secureValueTypeTemporaryRegistration::ID: + return secureValueTypeTemporaryRegistration::fetch(p); + case secureValueTypePhone::ID: + return secureValueTypePhone::fetch(p); + case secureValueTypeEmail::ID: + return secureValueTypeEmail::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t secureValueTypePersonalDetails::ID; + +object_ptr<SecureValueType> secureValueTypePersonalDetails::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypePersonalDetails>(); +} + +void secureValueTypePersonalDetails::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypePersonalDetails::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypePersonalDetails::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypePersonalDetails"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypePassport::ID; + +object_ptr<SecureValueType> secureValueTypePassport::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypePassport>(); +} + +void secureValueTypePassport::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypePassport::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypePassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypePassport"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeDriverLicense::ID; + +object_ptr<SecureValueType> secureValueTypeDriverLicense::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeDriverLicense>(); +} + +void secureValueTypeDriverLicense::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeDriverLicense::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeDriverLicense::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeDriverLicense"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeIdentityCard::ID; + +object_ptr<SecureValueType> secureValueTypeIdentityCard::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeIdentityCard>(); +} + +void secureValueTypeIdentityCard::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeIdentityCard::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeIdentityCard::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeIdentityCard"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeInternalPassport::ID; + +object_ptr<SecureValueType> secureValueTypeInternalPassport::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeInternalPassport>(); +} + +void secureValueTypeInternalPassport::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeInternalPassport::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeInternalPassport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeInternalPassport"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeAddress::ID; + +object_ptr<SecureValueType> secureValueTypeAddress::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeAddress>(); +} + +void secureValueTypeAddress::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeAddress::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeAddress::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeAddress"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeUtilityBill::ID; + +object_ptr<SecureValueType> secureValueTypeUtilityBill::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeUtilityBill>(); +} + +void secureValueTypeUtilityBill::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeUtilityBill::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeUtilityBill::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeUtilityBill"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeBankStatement::ID; + +object_ptr<SecureValueType> secureValueTypeBankStatement::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeBankStatement>(); +} + +void secureValueTypeBankStatement::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeBankStatement::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeBankStatement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeBankStatement"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeRentalAgreement::ID; + +object_ptr<SecureValueType> secureValueTypeRentalAgreement::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeRentalAgreement>(); +} + +void secureValueTypeRentalAgreement::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeRentalAgreement::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeRentalAgreement::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeRentalAgreement"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypePassportRegistration::ID; + +object_ptr<SecureValueType> secureValueTypePassportRegistration::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypePassportRegistration>(); +} + +void secureValueTypePassportRegistration::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypePassportRegistration::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypePassportRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypePassportRegistration"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeTemporaryRegistration::ID; + +object_ptr<SecureValueType> secureValueTypeTemporaryRegistration::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeTemporaryRegistration>(); +} + +void secureValueTypeTemporaryRegistration::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeTemporaryRegistration::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeTemporaryRegistration::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeTemporaryRegistration"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypePhone::ID; + +object_ptr<SecureValueType> secureValueTypePhone::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypePhone>(); +} + +void secureValueTypePhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypePhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypePhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypePhone"); + s.store_class_end(); + } +} + +const std::int32_t secureValueTypeEmail::ID; + +object_ptr<SecureValueType> secureValueTypeEmail::fetch(TlBufferParser &p) { + return make_tl_object<secureValueTypeEmail>(); +} + +void secureValueTypeEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void secureValueTypeEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void secureValueTypeEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "secureValueTypeEmail"); + s.store_class_end(); + } +} + +sendAsPeer::sendAsPeer() + : flags_() + , premium_required_() + , peer_() +{} + +const std::int32_t sendAsPeer::ID; + +object_ptr<sendAsPeer> sendAsPeer::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<sendAsPeer> res = make_tl_object<sendAsPeer>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->premium_required_ = TlFetchTrue::parse(p); } + res->peer_ = TlFetchObject<Peer>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void sendAsPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendAsPeer"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +object_ptr<SendMessageAction> SendMessageAction::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case sendMessageTypingAction::ID: + return sendMessageTypingAction::fetch(p); + case sendMessageCancelAction::ID: + return sendMessageCancelAction::fetch(p); + case sendMessageRecordVideoAction::ID: + return sendMessageRecordVideoAction::fetch(p); + case sendMessageUploadVideoAction::ID: + return sendMessageUploadVideoAction::fetch(p); + case sendMessageRecordAudioAction::ID: + return sendMessageRecordAudioAction::fetch(p); + case sendMessageUploadAudioAction::ID: + return sendMessageUploadAudioAction::fetch(p); + case sendMessageUploadPhotoAction::ID: + return sendMessageUploadPhotoAction::fetch(p); + case sendMessageUploadDocumentAction::ID: + return sendMessageUploadDocumentAction::fetch(p); + case sendMessageGeoLocationAction::ID: + return sendMessageGeoLocationAction::fetch(p); + case sendMessageChooseContactAction::ID: + return sendMessageChooseContactAction::fetch(p); + case sendMessageGamePlayAction::ID: + return sendMessageGamePlayAction::fetch(p); + case sendMessageRecordRoundAction::ID: + return sendMessageRecordRoundAction::fetch(p); + case sendMessageUploadRoundAction::ID: + return sendMessageUploadRoundAction::fetch(p); + case speakingInGroupCallAction::ID: + return speakingInGroupCallAction::fetch(p); + case sendMessageHistoryImportAction::ID: + return sendMessageHistoryImportAction::fetch(p); + case sendMessageChooseStickerAction::ID: + return sendMessageChooseStickerAction::fetch(p); + case sendMessageEmojiInteraction::ID: + return sendMessageEmojiInteraction::fetch(p); + case sendMessageEmojiInteractionSeen::ID: + return sendMessageEmojiInteractionSeen::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t sendMessageTypingAction::ID; + +object_ptr<SendMessageAction> sendMessageTypingAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageTypingAction>(); +} + +void sendMessageTypingAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageTypingAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageTypingAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageTypingAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageCancelAction::ID; + +object_ptr<SendMessageAction> sendMessageCancelAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageCancelAction>(); +} + +void sendMessageCancelAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageCancelAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageCancelAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageCancelAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageRecordVideoAction::ID; + +object_ptr<SendMessageAction> sendMessageRecordVideoAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageRecordVideoAction>(); +} + +void sendMessageRecordVideoAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageRecordVideoAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageRecordVideoAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageRecordVideoAction"); + s.store_class_end(); + } +} + +sendMessageUploadVideoAction::sendMessageUploadVideoAction(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t sendMessageUploadVideoAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadVideoAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageUploadVideoAction>(p); +} + +sendMessageUploadVideoAction::sendMessageUploadVideoAction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : progress_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void sendMessageUploadVideoAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadVideoAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadVideoAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadVideoAction"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +const std::int32_t sendMessageRecordAudioAction::ID; + +object_ptr<SendMessageAction> sendMessageRecordAudioAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageRecordAudioAction>(); +} + +void sendMessageRecordAudioAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageRecordAudioAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageRecordAudioAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageRecordAudioAction"); + s.store_class_end(); + } +} + +sendMessageUploadAudioAction::sendMessageUploadAudioAction(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t sendMessageUploadAudioAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadAudioAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageUploadAudioAction>(p); +} + +sendMessageUploadAudioAction::sendMessageUploadAudioAction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : progress_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void sendMessageUploadAudioAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadAudioAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadAudioAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadAudioAction"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +sendMessageUploadPhotoAction::sendMessageUploadPhotoAction(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t sendMessageUploadPhotoAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadPhotoAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageUploadPhotoAction>(p); +} + +sendMessageUploadPhotoAction::sendMessageUploadPhotoAction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : progress_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void sendMessageUploadPhotoAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadPhotoAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadPhotoAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadPhotoAction"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +sendMessageUploadDocumentAction::sendMessageUploadDocumentAction(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t sendMessageUploadDocumentAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadDocumentAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageUploadDocumentAction>(p); +} + +sendMessageUploadDocumentAction::sendMessageUploadDocumentAction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : progress_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void sendMessageUploadDocumentAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadDocumentAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadDocumentAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadDocumentAction"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +const std::int32_t sendMessageGeoLocationAction::ID; + +object_ptr<SendMessageAction> sendMessageGeoLocationAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageGeoLocationAction>(); +} + +void sendMessageGeoLocationAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageGeoLocationAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageGeoLocationAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageGeoLocationAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageChooseContactAction::ID; + +object_ptr<SendMessageAction> sendMessageChooseContactAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageChooseContactAction>(); +} + +void sendMessageChooseContactAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageChooseContactAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageChooseContactAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageChooseContactAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageGamePlayAction::ID; + +object_ptr<SendMessageAction> sendMessageGamePlayAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageGamePlayAction>(); +} + +void sendMessageGamePlayAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageGamePlayAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageGamePlayAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageGamePlayAction"); + s.store_class_end(); + } +} + +const std::int32_t sendMessageRecordRoundAction::ID; + +object_ptr<SendMessageAction> sendMessageRecordRoundAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageRecordRoundAction>(); +} + +void sendMessageRecordRoundAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageRecordRoundAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageRecordRoundAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageRecordRoundAction"); + s.store_class_end(); + } +} + +sendMessageUploadRoundAction::sendMessageUploadRoundAction(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t sendMessageUploadRoundAction::ID; + +object_ptr<SendMessageAction> sendMessageUploadRoundAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageUploadRoundAction>(p); +} + +sendMessageUploadRoundAction::sendMessageUploadRoundAction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : progress_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void sendMessageUploadRoundAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadRoundAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageUploadRoundAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageUploadRoundAction"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +const std::int32_t speakingInGroupCallAction::ID; + +object_ptr<SendMessageAction> speakingInGroupCallAction::fetch(TlBufferParser &p) { + return make_tl_object<speakingInGroupCallAction>(); +} + +void speakingInGroupCallAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void speakingInGroupCallAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void speakingInGroupCallAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "speakingInGroupCallAction"); + s.store_class_end(); + } +} + +sendMessageHistoryImportAction::sendMessageHistoryImportAction(int32 progress_) + : progress_(progress_) +{} + +const std::int32_t sendMessageHistoryImportAction::ID; + +object_ptr<SendMessageAction> sendMessageHistoryImportAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageHistoryImportAction>(p); +} + +sendMessageHistoryImportAction::sendMessageHistoryImportAction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : progress_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void sendMessageHistoryImportAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageHistoryImportAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreBinary::store(progress_, s); +} + +void sendMessageHistoryImportAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageHistoryImportAction"); + s.store_field("progress", progress_); + s.store_class_end(); + } +} + +const std::int32_t sendMessageChooseStickerAction::ID; + +object_ptr<SendMessageAction> sendMessageChooseStickerAction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageChooseStickerAction>(); +} + +void sendMessageChooseStickerAction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void sendMessageChooseStickerAction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void sendMessageChooseStickerAction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageChooseStickerAction"); + s.store_class_end(); + } +} + +sendMessageEmojiInteraction::sendMessageEmojiInteraction(string const &emoticon_, int32 msg_id_, object_ptr<dataJSON> &&interaction_) + : emoticon_(emoticon_) + , msg_id_(msg_id_) + , interaction_(std::move(interaction_)) +{} + +const std::int32_t sendMessageEmojiInteraction::ID; + +object_ptr<SendMessageAction> sendMessageEmojiInteraction::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageEmojiInteraction>(p); +} + +sendMessageEmojiInteraction::sendMessageEmojiInteraction(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : emoticon_(TlFetchString<string>::parse(p)) + , msg_id_(TlFetchInt::parse(p)) + , interaction_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p)) +#undef FAIL +{} + +void sendMessageEmojiInteraction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(interaction_, s); +} + +void sendMessageEmojiInteraction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(interaction_, s); +} + +void sendMessageEmojiInteraction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageEmojiInteraction"); + s.store_field("emoticon", emoticon_); + s.store_field("msg_id", msg_id_); + s.store_object_field("interaction", static_cast<const BaseObject *>(interaction_.get())); + s.store_class_end(); + } +} + +sendMessageEmojiInteractionSeen::sendMessageEmojiInteractionSeen(string const &emoticon_) + : emoticon_(emoticon_) +{} + +const std::int32_t sendMessageEmojiInteractionSeen::ID; + +object_ptr<SendMessageAction> sendMessageEmojiInteractionSeen::fetch(TlBufferParser &p) { + return make_tl_object<sendMessageEmojiInteractionSeen>(p); +} + +sendMessageEmojiInteractionSeen::sendMessageEmojiInteractionSeen(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : emoticon_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void sendMessageEmojiInteractionSeen::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void sendMessageEmojiInteractionSeen::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(emoticon_, s); +} + +void sendMessageEmojiInteractionSeen::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sendMessageEmojiInteractionSeen"); + s.store_field("emoticon", emoticon_); + s.store_class_end(); + } +} + +shippingOption::shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPrice>> &&prices_) + : id_(id_) + , title_(title_) + , prices_(std::move(prices_)) +{} + +const std::int32_t shippingOption::ID; + +object_ptr<shippingOption> shippingOption::fetch(TlBufferParser &p) { + return make_tl_object<shippingOption>(p); +} + +shippingOption::shippingOption(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchString<string>::parse(p)) + , title_(TlFetchString<string>::parse(p)) + , prices_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<labeledPrice>, -886477832>>, 481674261>::parse(p)) +#undef FAIL +{} + +void shippingOption::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(title_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s); +} + +void shippingOption::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + TlStoreString::store(id_, s); + TlStoreString::store(title_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -886477832>>, 481674261>::store(prices_, s); +} + +void shippingOption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "shippingOption"); + s.store_field("id", id_); + s.store_field("title", title_); + { s.store_vector_begin("prices", prices_.size()); for (const auto &_value : prices_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t simpleWebViewResultUrl::ID; + +object_ptr<simpleWebViewResultUrl> simpleWebViewResultUrl::fetch(TlBufferParser &p) { + return make_tl_object<simpleWebViewResultUrl>(p); +} + +simpleWebViewResultUrl::simpleWebViewResultUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void simpleWebViewResultUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "simpleWebViewResultUrl"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +sponsoredMessage::sponsoredMessage() + : flags_() + , recommended_() + , show_peer_photo_() + , random_id_() + , from_id_() + , chat_invite_() + , chat_invite_hash_() + , channel_post_() + , start_param_() + , message_() + , entities_() +{} + +const std::int32_t sponsoredMessage::ID; + +object_ptr<sponsoredMessage> sponsoredMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<sponsoredMessage> res = make_tl_object<sponsoredMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 32) { res->recommended_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->show_peer_photo_ = TlFetchTrue::parse(p); } + res->random_id_ = TlFetchBytes<bytes>::parse(p); + if (var0 & 8) { res->from_id_ = TlFetchObject<Peer>::parse(p); } + if (var0 & 16) { res->chat_invite_ = TlFetchObject<ChatInvite>::parse(p); } + if (var0 & 16) { res->chat_invite_hash_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->channel_post_ = TlFetchInt::parse(p); } + if (var0 & 1) { res->start_param_ = TlFetchString<string>::parse(p); } + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void sponsoredMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "sponsoredMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_bytes_field("random_id", random_id_); + if (var0 & 8) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); } + if (var0 & 16) { s.store_object_field("chat_invite", static_cast<const BaseObject *>(chat_invite_.get())); } + if (var0 & 16) { s.store_field("chat_invite_hash", chat_invite_hash_); } + if (var0 & 4) { s.store_field("channel_post", channel_post_); } + if (var0 & 1) { s.store_field("start_param", start_param_); } + s.store_field("message", message_); + if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +const std::int32_t statsAbsValueAndPrev::ID; + +object_ptr<statsAbsValueAndPrev> statsAbsValueAndPrev::fetch(TlBufferParser &p) { + return make_tl_object<statsAbsValueAndPrev>(p); +} + +statsAbsValueAndPrev::statsAbsValueAndPrev(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : current_(TlFetchDouble::parse(p)) + , previous_(TlFetchDouble::parse(p)) +#undef FAIL +{} + +void statsAbsValueAndPrev::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsAbsValueAndPrev"); + s.store_field("current", current_); + s.store_field("previous", previous_); + s.store_class_end(); + } +} + +const std::int32_t statsDateRangeDays::ID; + +object_ptr<statsDateRangeDays> statsDateRangeDays::fetch(TlBufferParser &p) { + return make_tl_object<statsDateRangeDays>(p); +} + +statsDateRangeDays::statsDateRangeDays(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : min_date_(TlFetchInt::parse(p)) + , max_date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void statsDateRangeDays::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsDateRangeDays"); + s.store_field("min_date", min_date_); + s.store_field("max_date", max_date_); + s.store_class_end(); + } +} + +object_ptr<StatsGraph> StatsGraph::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case statsGraphAsync::ID: + return statsGraphAsync::fetch(p); + case statsGraphError::ID: + return statsGraphError::fetch(p); + case statsGraph::ID: + return statsGraph::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t statsGraphAsync::ID; + +object_ptr<StatsGraph> statsGraphAsync::fetch(TlBufferParser &p) { + return make_tl_object<statsGraphAsync>(p); +} + +statsGraphAsync::statsGraphAsync(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : token_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void statsGraphAsync::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsGraphAsync"); + s.store_field("token", token_); + s.store_class_end(); + } +} + +const std::int32_t statsGraphError::ID; + +object_ptr<StatsGraph> statsGraphError::fetch(TlBufferParser &p) { + return make_tl_object<statsGraphError>(p); +} + +statsGraphError::statsGraphError(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : error_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void statsGraphError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsGraphError"); + s.store_field("error", error_); + s.store_class_end(); + } +} + +statsGraph::statsGraph() + : flags_() + , json_() + , zoom_token_() +{} + +const std::int32_t statsGraph::ID; + +object_ptr<StatsGraph> statsGraph::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<statsGraph> res = make_tl_object<statsGraph>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->json_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p); + if (var0 & 1) { res->zoom_token_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void statsGraph::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsGraph"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("json", static_cast<const BaseObject *>(json_.get())); + if (var0 & 1) { s.store_field("zoom_token", zoom_token_); } + s.store_class_end(); + } +} + +const std::int32_t statsGroupTopAdmin::ID; + +object_ptr<statsGroupTopAdmin> statsGroupTopAdmin::fetch(TlBufferParser &p) { + return make_tl_object<statsGroupTopAdmin>(p); +} + +statsGroupTopAdmin::statsGroupTopAdmin(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , deleted_(TlFetchInt::parse(p)) + , kicked_(TlFetchInt::parse(p)) + , banned_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void statsGroupTopAdmin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsGroupTopAdmin"); + s.store_field("user_id", user_id_); + s.store_field("deleted", deleted_); + s.store_field("kicked", kicked_); + s.store_field("banned", banned_); + s.store_class_end(); + } +} + +const std::int32_t statsGroupTopInviter::ID; + +object_ptr<statsGroupTopInviter> statsGroupTopInviter::fetch(TlBufferParser &p) { + return make_tl_object<statsGroupTopInviter>(p); +} + +statsGroupTopInviter::statsGroupTopInviter(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , invitations_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void statsGroupTopInviter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsGroupTopInviter"); + s.store_field("user_id", user_id_); + s.store_field("invitations", invitations_); + s.store_class_end(); + } +} + +const std::int32_t statsGroupTopPoster::ID; + +object_ptr<statsGroupTopPoster> statsGroupTopPoster::fetch(TlBufferParser &p) { + return make_tl_object<statsGroupTopPoster>(p); +} + +statsGroupTopPoster::statsGroupTopPoster(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , messages_(TlFetchInt::parse(p)) + , avg_chars_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void statsGroupTopPoster::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsGroupTopPoster"); + s.store_field("user_id", user_id_); + s.store_field("messages", messages_); + s.store_field("avg_chars", avg_chars_); + s.store_class_end(); + } +} + +const std::int32_t statsPercentValue::ID; + +object_ptr<statsPercentValue> statsPercentValue::fetch(TlBufferParser &p) { + return make_tl_object<statsPercentValue>(p); +} + +statsPercentValue::statsPercentValue(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : part_(TlFetchDouble::parse(p)) + , total_(TlFetchDouble::parse(p)) +#undef FAIL +{} + +void statsPercentValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsPercentValue"); + s.store_field("part", part_); + s.store_field("total", total_); + s.store_class_end(); + } +} + +const std::int32_t statsURL::ID; + +void statsURL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "statsURL"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +const std::int32_t stickerKeyword::ID; + +object_ptr<stickerKeyword> stickerKeyword::fetch(TlBufferParser &p) { + return make_tl_object<stickerKeyword>(p); +} + +stickerKeyword::stickerKeyword(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : document_id_(TlFetchLong::parse(p)) + , keyword_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p)) +#undef FAIL +{} + +void stickerKeyword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerKeyword"); + s.store_field("document_id", document_id_); + { s.store_vector_begin("keyword", keyword_.size()); for (const auto &_value : keyword_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t stickerPack::ID; + +object_ptr<stickerPack> stickerPack::fetch(TlBufferParser &p) { + return make_tl_object<stickerPack>(p); +} + +stickerPack::stickerPack(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : emoticon_(TlFetchString<string>::parse(p)) + , documents_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void stickerPack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerPack"); + s.store_field("emoticon", emoticon_); + { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +stickerSet::stickerSet() + : flags_() + , archived_() + , official_() + , masks_() + , animated_() + , videos_() + , emojis_() + , installed_date_() + , id_() + , access_hash_() + , title_() + , short_name_() + , thumbs_() + , thumb_dc_id_() + , thumb_version_() + , thumb_document_id_() + , count_() + , hash_() +{} + +const std::int32_t stickerSet::ID; + +object_ptr<stickerSet> stickerSet::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<stickerSet> res = make_tl_object<stickerSet>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->archived_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->official_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->masks_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->animated_ = TlFetchTrue::parse(p); } + if (var0 & 64) { res->videos_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->emojis_ = TlFetchTrue::parse(p); } + if (var0 & 1) { res->installed_date_ = TlFetchInt::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->short_name_ = TlFetchString<string>::parse(p); + if (var0 & 16) { res->thumbs_ = TlFetchBoxed<TlFetchVector<TlFetchObject<PhotoSize>>, 481674261>::parse(p); } + if (var0 & 16) { res->thumb_dc_id_ = TlFetchInt::parse(p); } + if (var0 & 16) { res->thumb_version_ = TlFetchInt::parse(p); } + if (var0 & 256) { res->thumb_document_id_ = TlFetchLong::parse(p); } + res->count_ = TlFetchInt::parse(p); + res->hash_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void stickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerSet"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("installed_date", installed_date_); } + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("title", title_); + s.store_field("short_name", short_name_); + if (var0 & 16) { { s.store_vector_begin("thumbs", thumbs_.size()); for (const auto &_value : thumbs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 16) { s.store_field("thumb_dc_id", thumb_dc_id_); } + if (var0 & 16) { s.store_field("thumb_version", thumb_version_); } + if (var0 & 256) { s.store_field("thumb_document_id", thumb_document_id_); } + s.store_field("count", count_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +object_ptr<StickerSetCovered> StickerSetCovered::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case stickerSetCovered::ID: + return stickerSetCovered::fetch(p); + case stickerSetMultiCovered::ID: + return stickerSetMultiCovered::fetch(p); + case stickerSetFullCovered::ID: + return stickerSetFullCovered::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t stickerSetCovered::ID; + +object_ptr<StickerSetCovered> stickerSetCovered::fetch(TlBufferParser &p) { + return make_tl_object<stickerSetCovered>(p); +} + +stickerSetCovered::stickerSetCovered(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p)) + , cover_(TlFetchObject<Document>::parse(p)) +#undef FAIL +{} + +void stickerSetCovered::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerSetCovered"); + s.store_object_field("set", static_cast<const BaseObject *>(set_.get())); + s.store_object_field("cover", static_cast<const BaseObject *>(cover_.get())); + s.store_class_end(); + } +} + +const std::int32_t stickerSetMultiCovered::ID; + +object_ptr<StickerSetCovered> stickerSetMultiCovered::fetch(TlBufferParser &p) { + return make_tl_object<stickerSetMultiCovered>(p); +} + +stickerSetMultiCovered::stickerSetMultiCovered(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p)) + , covers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) +#undef FAIL +{} + +void stickerSetMultiCovered::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerSetMultiCovered"); + s.store_object_field("set", static_cast<const BaseObject *>(set_.get())); + { s.store_vector_begin("covers", covers_.size()); for (const auto &_value : covers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t stickerSetFullCovered::ID; + +object_ptr<StickerSetCovered> stickerSetFullCovered::fetch(TlBufferParser &p) { + return make_tl_object<stickerSetFullCovered>(p); +} + +stickerSetFullCovered::stickerSetFullCovered(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p)) + , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p)) + , keywords_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerKeyword>, -50416996>>, 481674261>::parse(p)) + , documents_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) +#undef FAIL +{} + +void stickerSetFullCovered::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickerSetFullCovered"); + s.store_object_field("set", static_cast<const BaseObject *>(set_.get())); + { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("keywords", keywords_.size()); for (const auto &_value : keywords_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +theme::theme() + : flags_() + , creator_() + , default_() + , for_chat_() + , id_() + , access_hash_() + , slug_() + , title_() + , document_() + , settings_() + , emoticon_() + , installs_count_() +{} + +const std::int32_t theme::ID; + +object_ptr<theme> theme::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<theme> res = make_tl_object<theme>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->default_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->for_chat_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + res->access_hash_ = TlFetchLong::parse(p); + res->slug_ = TlFetchString<string>::parse(p); + res->title_ = TlFetchString<string>::parse(p); + if (var0 & 4) { res->document_ = TlFetchObject<Document>::parse(p); } + if (var0 & 8) { res->settings_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<themeSettings>, -94849324>>, 481674261>::parse(p); } + if (var0 & 64) { res->emoticon_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->installs_count_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void theme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "theme"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("access_hash", access_hash_); + s.store_field("slug", slug_); + s.store_field("title", title_); + if (var0 & 4) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 8) { { s.store_vector_begin("settings", settings_.size()); for (const auto &_value : settings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 64) { s.store_field("emoticon", emoticon_); } + if (var0 & 16) { s.store_field("installs_count", installs_count_); } + s.store_class_end(); + } +} + +themeSettings::themeSettings() + : flags_() + , message_colors_animated_() + , base_theme_() + , accent_color_() + , outbox_accent_color_() + , message_colors_() + , wallpaper_() +{} + +const std::int32_t themeSettings::ID; + +object_ptr<themeSettings> themeSettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<themeSettings> res = make_tl_object<themeSettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->message_colors_animated_ = TlFetchTrue::parse(p); } + res->base_theme_ = TlFetchObject<BaseTheme>::parse(p); + res->accent_color_ = TlFetchInt::parse(p); + if (var0 & 8) { res->outbox_accent_color_ = TlFetchInt::parse(p); } + if (var0 & 1) { res->message_colors_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p); } + if (var0 & 2) { res->wallpaper_ = TlFetchObject<WallPaper>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void themeSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "themeSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("base_theme", static_cast<const BaseObject *>(base_theme_.get())); + s.store_field("accent_color", accent_color_); + if (var0 & 8) { s.store_field("outbox_accent_color", outbox_accent_color_); } + if (var0 & 1) { { s.store_vector_begin("message_colors", message_colors_.size()); for (const auto &_value : message_colors_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 2) { s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get())); } + s.store_class_end(); + } +} + +const std::int32_t topPeer::ID; + +object_ptr<topPeer> topPeer::fetch(TlBufferParser &p) { + return make_tl_object<topPeer>(p); +} + +topPeer::topPeer(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , rating_(TlFetchDouble::parse(p)) +#undef FAIL +{} + +void topPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("rating", rating_); + s.store_class_end(); + } +} + +object_ptr<TopPeerCategory> TopPeerCategory::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case topPeerCategoryBotsPM::ID: + return topPeerCategoryBotsPM::fetch(p); + case topPeerCategoryBotsInline::ID: + return topPeerCategoryBotsInline::fetch(p); + case topPeerCategoryCorrespondents::ID: + return topPeerCategoryCorrespondents::fetch(p); + case topPeerCategoryGroups::ID: + return topPeerCategoryGroups::fetch(p); + case topPeerCategoryChannels::ID: + return topPeerCategoryChannels::fetch(p); + case topPeerCategoryPhoneCalls::ID: + return topPeerCategoryPhoneCalls::fetch(p); + case topPeerCategoryForwardUsers::ID: + return topPeerCategoryForwardUsers::fetch(p); + case topPeerCategoryForwardChats::ID: + return topPeerCategoryForwardChats::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t topPeerCategoryBotsPM::ID; + +object_ptr<TopPeerCategory> topPeerCategoryBotsPM::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryBotsPM>(); +} + +void topPeerCategoryBotsPM::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryBotsPM::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryBotsPM::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryBotsPM"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryBotsInline::ID; + +object_ptr<TopPeerCategory> topPeerCategoryBotsInline::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryBotsInline>(); +} + +void topPeerCategoryBotsInline::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryBotsInline::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryBotsInline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryBotsInline"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryCorrespondents::ID; + +object_ptr<TopPeerCategory> topPeerCategoryCorrespondents::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryCorrespondents>(); +} + +void topPeerCategoryCorrespondents::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryCorrespondents::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryCorrespondents::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryCorrespondents"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryGroups::ID; + +object_ptr<TopPeerCategory> topPeerCategoryGroups::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryGroups>(); +} + +void topPeerCategoryGroups::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryGroups::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryGroups::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryGroups"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryChannels::ID; + +object_ptr<TopPeerCategory> topPeerCategoryChannels::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryChannels>(); +} + +void topPeerCategoryChannels::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryChannels::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryChannels"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryPhoneCalls::ID; + +object_ptr<TopPeerCategory> topPeerCategoryPhoneCalls::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryPhoneCalls>(); +} + +void topPeerCategoryPhoneCalls::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryPhoneCalls::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryPhoneCalls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryPhoneCalls"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryForwardUsers::ID; + +object_ptr<TopPeerCategory> topPeerCategoryForwardUsers::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryForwardUsers>(); +} + +void topPeerCategoryForwardUsers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryForwardUsers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryForwardUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryForwardUsers"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryForwardChats::ID; + +object_ptr<TopPeerCategory> topPeerCategoryForwardChats::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryForwardChats>(); +} + +void topPeerCategoryForwardChats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); +} + +void topPeerCategoryForwardChats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); +} + +void topPeerCategoryForwardChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryForwardChats"); + s.store_class_end(); + } +} + +const std::int32_t topPeerCategoryPeers::ID; + +object_ptr<topPeerCategoryPeers> topPeerCategoryPeers::fetch(TlBufferParser &p) { + return make_tl_object<topPeerCategoryPeers>(p); +} + +topPeerCategoryPeers::topPeerCategoryPeers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : category_(TlFetchObject<TopPeerCategory>::parse(p)) + , count_(TlFetchInt::parse(p)) + , peers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<topPeer>, -305282981>>, 481674261>::parse(p)) +#undef FAIL +{} + +void topPeerCategoryPeers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "topPeerCategoryPeers"); + s.store_object_field("category", static_cast<const BaseObject *>(category_.get())); + s.store_field("count", count_); + { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<Update> Update::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case updateNewMessage::ID: + return updateNewMessage::fetch(p); + case updateMessageID::ID: + return updateMessageID::fetch(p); + case updateDeleteMessages::ID: + return updateDeleteMessages::fetch(p); + case updateUserTyping::ID: + return updateUserTyping::fetch(p); + case updateChatUserTyping::ID: + return updateChatUserTyping::fetch(p); + case updateChatParticipants::ID: + return updateChatParticipants::fetch(p); + case updateUserStatus::ID: + return updateUserStatus::fetch(p); + case updateUserName::ID: + return updateUserName::fetch(p); + case updateUserPhoto::ID: + return updateUserPhoto::fetch(p); + case updateNewEncryptedMessage::ID: + return updateNewEncryptedMessage::fetch(p); + case updateEncryptedChatTyping::ID: + return updateEncryptedChatTyping::fetch(p); + case updateEncryption::ID: + return updateEncryption::fetch(p); + case updateEncryptedMessagesRead::ID: + return updateEncryptedMessagesRead::fetch(p); + case updateChatParticipantAdd::ID: + return updateChatParticipantAdd::fetch(p); + case updateChatParticipantDelete::ID: + return updateChatParticipantDelete::fetch(p); + case updateDcOptions::ID: + return updateDcOptions::fetch(p); + case updateNotifySettings::ID: + return updateNotifySettings::fetch(p); + case updateServiceNotification::ID: + return updateServiceNotification::fetch(p); + case updatePrivacy::ID: + return updatePrivacy::fetch(p); + case updateUserPhone::ID: + return updateUserPhone::fetch(p); + case updateReadHistoryInbox::ID: + return updateReadHistoryInbox::fetch(p); + case updateReadHistoryOutbox::ID: + return updateReadHistoryOutbox::fetch(p); + case updateWebPage::ID: + return updateWebPage::fetch(p); + case updateReadMessagesContents::ID: + return updateReadMessagesContents::fetch(p); + case updateChannelTooLong::ID: + return updateChannelTooLong::fetch(p); + case updateChannel::ID: + return updateChannel::fetch(p); + case updateNewChannelMessage::ID: + return updateNewChannelMessage::fetch(p); + case updateReadChannelInbox::ID: + return updateReadChannelInbox::fetch(p); + case updateDeleteChannelMessages::ID: + return updateDeleteChannelMessages::fetch(p); + case updateChannelMessageViews::ID: + return updateChannelMessageViews::fetch(p); + case updateChatParticipantAdmin::ID: + return updateChatParticipantAdmin::fetch(p); + case updateNewStickerSet::ID: + return updateNewStickerSet::fetch(p); + case updateStickerSetsOrder::ID: + return updateStickerSetsOrder::fetch(p); + case updateStickerSets::ID: + return updateStickerSets::fetch(p); + case updateSavedGifs::ID: + return updateSavedGifs::fetch(p); + case updateBotInlineQuery::ID: + return updateBotInlineQuery::fetch(p); + case updateBotInlineSend::ID: + return updateBotInlineSend::fetch(p); + case updateEditChannelMessage::ID: + return updateEditChannelMessage::fetch(p); + case updateBotCallbackQuery::ID: + return updateBotCallbackQuery::fetch(p); + case updateEditMessage::ID: + return updateEditMessage::fetch(p); + case updateInlineBotCallbackQuery::ID: + return updateInlineBotCallbackQuery::fetch(p); + case updateReadChannelOutbox::ID: + return updateReadChannelOutbox::fetch(p); + case updateDraftMessage::ID: + return updateDraftMessage::fetch(p); + case updateReadFeaturedStickers::ID: + return updateReadFeaturedStickers::fetch(p); + case updateRecentStickers::ID: + return updateRecentStickers::fetch(p); + case updateConfig::ID: + return updateConfig::fetch(p); + case updatePtsChanged::ID: + return updatePtsChanged::fetch(p); + case updateChannelWebPage::ID: + return updateChannelWebPage::fetch(p); + case updateDialogPinned::ID: + return updateDialogPinned::fetch(p); + case updatePinnedDialogs::ID: + return updatePinnedDialogs::fetch(p); + case updateBotWebhookJSON::ID: + return updateBotWebhookJSON::fetch(p); + case updateBotWebhookJSONQuery::ID: + return updateBotWebhookJSONQuery::fetch(p); + case updateBotShippingQuery::ID: + return updateBotShippingQuery::fetch(p); + case updateBotPrecheckoutQuery::ID: + return updateBotPrecheckoutQuery::fetch(p); + case updatePhoneCall::ID: + return updatePhoneCall::fetch(p); + case updateLangPackTooLong::ID: + return updateLangPackTooLong::fetch(p); + case updateLangPack::ID: + return updateLangPack::fetch(p); + case updateFavedStickers::ID: + return updateFavedStickers::fetch(p); + case updateChannelReadMessagesContents::ID: + return updateChannelReadMessagesContents::fetch(p); + case updateContactsReset::ID: + return updateContactsReset::fetch(p); + case updateChannelAvailableMessages::ID: + return updateChannelAvailableMessages::fetch(p); + case updateDialogUnreadMark::ID: + return updateDialogUnreadMark::fetch(p); + case updateMessagePoll::ID: + return updateMessagePoll::fetch(p); + case updateChatDefaultBannedRights::ID: + return updateChatDefaultBannedRights::fetch(p); + case updateFolderPeers::ID: + return updateFolderPeers::fetch(p); + case updatePeerSettings::ID: + return updatePeerSettings::fetch(p); + case updatePeerLocated::ID: + return updatePeerLocated::fetch(p); + case updateNewScheduledMessage::ID: + return updateNewScheduledMessage::fetch(p); + case updateDeleteScheduledMessages::ID: + return updateDeleteScheduledMessages::fetch(p); + case updateTheme::ID: + return updateTheme::fetch(p); + case updateGeoLiveViewed::ID: + return updateGeoLiveViewed::fetch(p); + case updateLoginToken::ID: + return updateLoginToken::fetch(p); + case updateMessagePollVote::ID: + return updateMessagePollVote::fetch(p); + case updateDialogFilter::ID: + return updateDialogFilter::fetch(p); + case updateDialogFilterOrder::ID: + return updateDialogFilterOrder::fetch(p); + case updateDialogFilters::ID: + return updateDialogFilters::fetch(p); + case updatePhoneCallSignalingData::ID: + return updatePhoneCallSignalingData::fetch(p); + case updateChannelMessageForwards::ID: + return updateChannelMessageForwards::fetch(p); + case updateReadChannelDiscussionInbox::ID: + return updateReadChannelDiscussionInbox::fetch(p); + case updateReadChannelDiscussionOutbox::ID: + return updateReadChannelDiscussionOutbox::fetch(p); + case updatePeerBlocked::ID: + return updatePeerBlocked::fetch(p); + case updateChannelUserTyping::ID: + return updateChannelUserTyping::fetch(p); + case updatePinnedMessages::ID: + return updatePinnedMessages::fetch(p); + case updatePinnedChannelMessages::ID: + return updatePinnedChannelMessages::fetch(p); + case updateChat::ID: + return updateChat::fetch(p); + case updateGroupCallParticipants::ID: + return updateGroupCallParticipants::fetch(p); + case updateGroupCall::ID: + return updateGroupCall::fetch(p); + case updatePeerHistoryTTL::ID: + return updatePeerHistoryTTL::fetch(p); + case updateChatParticipant::ID: + return updateChatParticipant::fetch(p); + case updateChannelParticipant::ID: + return updateChannelParticipant::fetch(p); + case updateBotStopped::ID: + return updateBotStopped::fetch(p); + case updateGroupCallConnection::ID: + return updateGroupCallConnection::fetch(p); + case updateBotCommands::ID: + return updateBotCommands::fetch(p); + case updatePendingJoinRequests::ID: + return updatePendingJoinRequests::fetch(p); + case updateBotChatInviteRequester::ID: + return updateBotChatInviteRequester::fetch(p); + case updateMessageReactions::ID: + return updateMessageReactions::fetch(p); + case updateAttachMenuBots::ID: + return updateAttachMenuBots::fetch(p); + case updateWebViewResultSent::ID: + return updateWebViewResultSent::fetch(p); + case updateBotMenuButton::ID: + return updateBotMenuButton::fetch(p); + case updateSavedRingtones::ID: + return updateSavedRingtones::fetch(p); + case updateTranscribedAudio::ID: + return updateTranscribedAudio::fetch(p); + case updateReadFeaturedEmojiStickers::ID: + return updateReadFeaturedEmojiStickers::fetch(p); + case updateUserEmojiStatus::ID: + return updateUserEmojiStatus::fetch(p); + case updateRecentEmojiStatuses::ID: + return updateRecentEmojiStatuses::fetch(p); + case updateRecentReactions::ID: + return updateRecentReactions::fetch(p); + case updateMoveStickerSetToTop::ID: + return updateMoveStickerSetToTop::fetch(p); + case updateMessageExtendedMedia::ID: + return updateMessageExtendedMedia::fetch(p); + case updateChannelPinnedTopic::ID: + return updateChannelPinnedTopic::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +updateNewMessage::updateNewMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_) + : message_(std::move(message_)) + , pts_(pts_) + , pts_count_(pts_count_) +{} + +const std::int32_t updateNewMessage::ID; + +object_ptr<Update> updateNewMessage::fetch(TlBufferParser &p) { + return make_tl_object<updateNewMessage>(p); +} + +updateNewMessage::updateNewMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateNewMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updateMessageID::ID; + +object_ptr<Update> updateMessageID::fetch(TlBufferParser &p) { + return make_tl_object<updateMessageID>(p); +} + +updateMessageID::updateMessageID(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchInt::parse(p)) + , random_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void updateMessageID::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageID"); + s.store_field("id", id_); + s.store_field("random_id", random_id_); + s.store_class_end(); + } +} + +updateDeleteMessages::updateDeleteMessages(array<int32> &&messages_, int32 pts_, int32 pts_count_) + : messages_(std::move(messages_)) + , pts_(pts_) + , pts_count_(pts_count_) +{} + +const std::int32_t updateDeleteMessages::ID; + +object_ptr<Update> updateDeleteMessages::fetch(TlBufferParser &p) { + return make_tl_object<updateDeleteMessages>(p); +} + +updateDeleteMessages::updateDeleteMessages(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateDeleteMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDeleteMessages"); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updateUserTyping::ID; + +object_ptr<Update> updateUserTyping::fetch(TlBufferParser &p) { + return make_tl_object<updateUserTyping>(p); +} + +updateUserTyping::updateUserTyping(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , action_(TlFetchObject<SendMessageAction>::parse(p)) +#undef FAIL +{} + +void updateUserTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserTyping"); + s.store_field("user_id", user_id_); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateChatUserTyping::ID; + +object_ptr<Update> updateChatUserTyping::fetch(TlBufferParser &p) { + return make_tl_object<updateChatUserTyping>(p); +} + +updateChatUserTyping::updateChatUserTyping(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) + , from_id_(TlFetchObject<Peer>::parse(p)) + , action_(TlFetchObject<SendMessageAction>::parse(p)) +#undef FAIL +{} + +void updateChatUserTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatUserTyping"); + s.store_field("chat_id", chat_id_); + s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateChatParticipants::ID; + +object_ptr<Update> updateChatParticipants::fetch(TlBufferParser &p) { + return make_tl_object<updateChatParticipants>(p); +} + +updateChatParticipants::updateChatParticipants(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : participants_(TlFetchObject<ChatParticipants>::parse(p)) +#undef FAIL +{} + +void updateChatParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatParticipants"); + s.store_object_field("participants", static_cast<const BaseObject *>(participants_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateUserStatus::ID; + +object_ptr<Update> updateUserStatus::fetch(TlBufferParser &p) { + return make_tl_object<updateUserStatus>(p); +} + +updateUserStatus::updateUserStatus(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , status_(TlFetchObject<UserStatus>::parse(p)) +#undef FAIL +{} + +void updateUserStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserStatus"); + s.store_field("user_id", user_id_); + s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateUserName::ID; + +object_ptr<Update> updateUserName::fetch(TlBufferParser &p) { + return make_tl_object<updateUserName>(p); +} + +updateUserName::updateUserName(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , first_name_(TlFetchString<string>::parse(p)) + , last_name_(TlFetchString<string>::parse(p)) + , usernames_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<username>, -1274595769>>, 481674261>::parse(p)) +#undef FAIL +{} + +void updateUserName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserName"); + s.store_field("user_id", user_id_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateUserPhoto::ID; + +object_ptr<Update> updateUserPhoto::fetch(TlBufferParser &p) { + return make_tl_object<updateUserPhoto>(p); +} + +updateUserPhoto::updateUserPhoto(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) + , photo_(TlFetchObject<UserProfilePhoto>::parse(p)) + , previous_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void updateUserPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserPhoto"); + s.store_field("user_id", user_id_); + s.store_field("date", date_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_field("previous", previous_); + s.store_class_end(); + } +} + +const std::int32_t updateNewEncryptedMessage::ID; + +object_ptr<Update> updateNewEncryptedMessage::fetch(TlBufferParser &p) { + return make_tl_object<updateNewEncryptedMessage>(p); +} + +updateNewEncryptedMessage::updateNewEncryptedMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<EncryptedMessage>::parse(p)) + , qts_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateNewEncryptedMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewEncryptedMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("qts", qts_); + s.store_class_end(); + } +} + +const std::int32_t updateEncryptedChatTyping::ID; + +object_ptr<Update> updateEncryptedChatTyping::fetch(TlBufferParser &p) { + return make_tl_object<updateEncryptedChatTyping>(p); +} + +updateEncryptedChatTyping::updateEncryptedChatTyping(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateEncryptedChatTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateEncryptedChatTyping"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +const std::int32_t updateEncryption::ID; + +object_ptr<Update> updateEncryption::fetch(TlBufferParser &p) { + return make_tl_object<updateEncryption>(p); +} + +updateEncryption::updateEncryption(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_(TlFetchObject<EncryptedChat>::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateEncryption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateEncryption"); + s.store_object_field("chat", static_cast<const BaseObject *>(chat_.get())); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t updateEncryptedMessagesRead::ID; + +object_ptr<Update> updateEncryptedMessagesRead::fetch(TlBufferParser &p) { + return make_tl_object<updateEncryptedMessagesRead>(p); +} + +updateEncryptedMessagesRead::updateEncryptedMessagesRead(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchInt::parse(p)) + , max_date_(TlFetchInt::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateEncryptedMessagesRead::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateEncryptedMessagesRead"); + s.store_field("chat_id", chat_id_); + s.store_field("max_date", max_date_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t updateChatParticipantAdd::ID; + +object_ptr<Update> updateChatParticipantAdd::fetch(TlBufferParser &p) { + return make_tl_object<updateChatParticipantAdd>(p); +} + +updateChatParticipantAdd::updateChatParticipantAdd(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , inviter_id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) + , version_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChatParticipantAdd::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatParticipantAdd"); + s.store_field("chat_id", chat_id_); + s.store_field("user_id", user_id_); + s.store_field("inviter_id", inviter_id_); + s.store_field("date", date_); + s.store_field("version", version_); + s.store_class_end(); + } +} + +const std::int32_t updateChatParticipantDelete::ID; + +object_ptr<Update> updateChatParticipantDelete::fetch(TlBufferParser &p) { + return make_tl_object<updateChatParticipantDelete>(p); +} + +updateChatParticipantDelete::updateChatParticipantDelete(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , version_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChatParticipantDelete::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatParticipantDelete"); + s.store_field("chat_id", chat_id_); + s.store_field("user_id", user_id_); + s.store_field("version", version_); + s.store_class_end(); + } +} + +const std::int32_t updateDcOptions::ID; + +object_ptr<Update> updateDcOptions::fetch(TlBufferParser &p) { + return make_tl_object<updateDcOptions>(p); +} + +updateDcOptions::updateDcOptions(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dc_options_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<dcOption>, 414687501>>, 481674261>::parse(p)) +#undef FAIL +{} + +void updateDcOptions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDcOptions"); + { s.store_vector_begin("dc_options", dc_options_.size()); for (const auto &_value : dc_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateNotifySettings::ID; + +object_ptr<Update> updateNotifySettings::fetch(TlBufferParser &p) { + return make_tl_object<updateNotifySettings>(p); +} + +updateNotifySettings::updateNotifySettings(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<NotifyPeer>::parse(p)) + , notify_settings_(TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p)) +#undef FAIL +{} + +void updateNotifySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNotifySettings"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get())); + s.store_class_end(); + } +} + +updateServiceNotification::updateServiceNotification() + : flags_() + , popup_() + , inbox_date_() + , type_() + , message_() + , media_() + , entities_() +{} + +updateServiceNotification::updateServiceNotification(int32 flags_, bool popup_, int32 inbox_date_, string const &type_, string const &message_, object_ptr<MessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_) + : flags_(flags_) + , popup_(popup_) + , inbox_date_(inbox_date_) + , type_(type_) + , message_(message_) + , media_(std::move(media_)) + , entities_(std::move(entities_)) +{} + +const std::int32_t updateServiceNotification::ID; + +object_ptr<Update> updateServiceNotification::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateServiceNotification> res = make_tl_object<updateServiceNotification>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->popup_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->inbox_date_ = TlFetchInt::parse(p); } + res->type_ = TlFetchString<string>::parse(p); + res->message_ = TlFetchString<string>::parse(p); + res->media_ = TlFetchObject<MessageMedia>::parse(p); + res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateServiceNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateServiceNotification"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_field("inbox_date", inbox_date_); } + s.store_field("type", type_); + s.store_field("message", message_); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updatePrivacy::ID; + +object_ptr<Update> updatePrivacy::fetch(TlBufferParser &p) { + return make_tl_object<updatePrivacy>(p); +} + +updatePrivacy::updatePrivacy(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : key_(TlFetchObject<PrivacyKey>::parse(p)) + , rules_(TlFetchBoxed<TlFetchVector<TlFetchObject<PrivacyRule>>, 481674261>::parse(p)) +#undef FAIL +{} + +void updatePrivacy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePrivacy"); + s.store_object_field("key", static_cast<const BaseObject *>(key_.get())); + { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateUserPhone::ID; + +object_ptr<Update> updateUserPhone::fetch(TlBufferParser &p) { + return make_tl_object<updateUserPhone>(p); +} + +updateUserPhone::updateUserPhone(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , phone_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void updateUserPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserPhone"); + s.store_field("user_id", user_id_); + s.store_field("phone", phone_); + s.store_class_end(); + } +} + +updateReadHistoryInbox::updateReadHistoryInbox() + : flags_() + , folder_id_() + , peer_() + , max_id_() + , still_unread_count_() + , pts_() + , pts_count_() +{} + +const std::int32_t updateReadHistoryInbox::ID; + +object_ptr<Update> updateReadHistoryInbox::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateReadHistoryInbox> res = make_tl_object<updateReadHistoryInbox>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->folder_id_ = TlFetchInt::parse(p); } + res->peer_ = TlFetchObject<Peer>::parse(p); + res->max_id_ = TlFetchInt::parse(p); + res->still_unread_count_ = TlFetchInt::parse(p); + res->pts_ = TlFetchInt::parse(p); + res->pts_count_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateReadHistoryInbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadHistoryInbox"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("folder_id", folder_id_); } + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("max_id", max_id_); + s.store_field("still_unread_count", still_unread_count_); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updateReadHistoryOutbox::ID; + +object_ptr<Update> updateReadHistoryOutbox::fetch(TlBufferParser &p) { + return make_tl_object<updateReadHistoryOutbox>(p); +} + +updateReadHistoryOutbox::updateReadHistoryOutbox(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , max_id_(TlFetchInt::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateReadHistoryOutbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadHistoryOutbox"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("max_id", max_id_); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updateWebPage::ID; + +object_ptr<Update> updateWebPage::fetch(TlBufferParser &p) { + return make_tl_object<updateWebPage>(p); +} + +updateWebPage::updateWebPage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : webpage_(TlFetchObject<WebPage>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateWebPage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateWebPage"); + s.store_object_field("webpage", static_cast<const BaseObject *>(webpage_.get())); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updateReadMessagesContents::ID; + +object_ptr<Update> updateReadMessagesContents::fetch(TlBufferParser &p) { + return make_tl_object<updateReadMessagesContents>(p); +} + +updateReadMessagesContents::updateReadMessagesContents(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateReadMessagesContents::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadMessagesContents"); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +updateChannelTooLong::updateChannelTooLong() + : flags_() + , channel_id_() + , pts_() +{} + +updateChannelTooLong::updateChannelTooLong(int32 flags_, int64 channel_id_, int32 pts_) + : flags_(flags_) + , channel_id_(channel_id_) + , pts_(pts_) +{} + +const std::int32_t updateChannelTooLong::ID; + +object_ptr<Update> updateChannelTooLong::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateChannelTooLong> res = make_tl_object<updateChannelTooLong>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->channel_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->pts_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateChannelTooLong::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelTooLong"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("channel_id", channel_id_); + if (var0 & 1) { s.store_field("pts", pts_); } + s.store_class_end(); + } +} + +const std::int32_t updateChannel::ID; + +object_ptr<Update> updateChannel::fetch(TlBufferParser &p) { + return make_tl_object<updateChannel>(p); +} + +updateChannel::updateChannel(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void updateChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannel"); + s.store_field("channel_id", channel_id_); + s.store_class_end(); + } +} + +const std::int32_t updateNewChannelMessage::ID; + +object_ptr<Update> updateNewChannelMessage::fetch(TlBufferParser &p) { + return make_tl_object<updateNewChannelMessage>(p); +} + +updateNewChannelMessage::updateNewChannelMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateNewChannelMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewChannelMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +updateReadChannelInbox::updateReadChannelInbox() + : flags_() + , folder_id_() + , channel_id_() + , max_id_() + , still_unread_count_() + , pts_() +{} + +const std::int32_t updateReadChannelInbox::ID; + +object_ptr<Update> updateReadChannelInbox::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateReadChannelInbox> res = make_tl_object<updateReadChannelInbox>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->folder_id_ = TlFetchInt::parse(p); } + res->channel_id_ = TlFetchLong::parse(p); + res->max_id_ = TlFetchInt::parse(p); + res->still_unread_count_ = TlFetchInt::parse(p); + res->pts_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateReadChannelInbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadChannelInbox"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("folder_id", folder_id_); } + s.store_field("channel_id", channel_id_); + s.store_field("max_id", max_id_); + s.store_field("still_unread_count", still_unread_count_); + s.store_field("pts", pts_); + s.store_class_end(); + } +} + +const std::int32_t updateDeleteChannelMessages::ID; + +object_ptr<Update> updateDeleteChannelMessages::fetch(TlBufferParser &p) { + return make_tl_object<updateDeleteChannelMessages>(p); +} + +updateDeleteChannelMessages::updateDeleteChannelMessages(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateDeleteChannelMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDeleteChannelMessages"); + s.store_field("channel_id", channel_id_); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updateChannelMessageViews::ID; + +object_ptr<Update> updateChannelMessageViews::fetch(TlBufferParser &p) { + return make_tl_object<updateChannelMessageViews>(p); +} + +updateChannelMessageViews::updateChannelMessageViews(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , id_(TlFetchInt::parse(p)) + , views_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChannelMessageViews::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelMessageViews"); + s.store_field("channel_id", channel_id_); + s.store_field("id", id_); + s.store_field("views", views_); + s.store_class_end(); + } +} + +const std::int32_t updateChatParticipantAdmin::ID; + +object_ptr<Update> updateChatParticipantAdmin::fetch(TlBufferParser &p) { + return make_tl_object<updateChatParticipantAdmin>(p); +} + +updateChatParticipantAdmin::updateChatParticipantAdmin(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , is_admin_(TlFetchBool::parse(p)) + , version_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChatParticipantAdmin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatParticipantAdmin"); + s.store_field("chat_id", chat_id_); + s.store_field("user_id", user_id_); + s.store_field("is_admin", is_admin_); + s.store_field("version", version_); + s.store_class_end(); + } +} + +const std::int32_t updateNewStickerSet::ID; + +object_ptr<Update> updateNewStickerSet::fetch(TlBufferParser &p) { + return make_tl_object<updateNewStickerSet>(p); +} + +updateNewStickerSet::updateNewStickerSet(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : stickerset_(TlFetchObject<messages_StickerSet>::parse(p)) +#undef FAIL +{} + +void updateNewStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewStickerSet"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_class_end(); + } +} + +updateStickerSetsOrder::updateStickerSetsOrder() + : flags_() + , masks_() + , emojis_() + , order_() +{} + +const std::int32_t updateStickerSetsOrder::ID; + +object_ptr<Update> updateStickerSetsOrder::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateStickerSetsOrder> res = make_tl_object<updateStickerSetsOrder>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->masks_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->emojis_ = TlFetchTrue::parse(p); } + res->order_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateStickerSetsOrder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateStickerSetsOrder"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +updateStickerSets::updateStickerSets() + : flags_() + , masks_() + , emojis_() +{} + +const std::int32_t updateStickerSets::ID; + +object_ptr<Update> updateStickerSets::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateStickerSets> res = make_tl_object<updateStickerSets>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->masks_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->emojis_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateStickerSets"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +const std::int32_t updateSavedGifs::ID; + +object_ptr<Update> updateSavedGifs::fetch(TlBufferParser &p) { + return make_tl_object<updateSavedGifs>(); +} + +void updateSavedGifs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSavedGifs"); + s.store_class_end(); + } +} + +updateBotInlineQuery::updateBotInlineQuery() + : flags_() + , query_id_() + , user_id_() + , query_() + , geo_() + , peer_type_() + , offset_() +{} + +const std::int32_t updateBotInlineQuery::ID; + +object_ptr<Update> updateBotInlineQuery::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateBotInlineQuery> res = make_tl_object<updateBotInlineQuery>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->query_id_ = TlFetchLong::parse(p); + res->user_id_ = TlFetchLong::parse(p); + res->query_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->geo_ = TlFetchObject<GeoPoint>::parse(p); } + if (var0 & 2) { res->peer_type_ = TlFetchObject<InlineQueryPeerType>::parse(p); } + res->offset_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateBotInlineQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotInlineQuery"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + s.store_field("user_id", user_id_); + s.store_field("query", query_); + if (var0 & 1) { s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); } + if (var0 & 2) { s.store_object_field("peer_type", static_cast<const BaseObject *>(peer_type_.get())); } + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +updateBotInlineSend::updateBotInlineSend() + : flags_() + , user_id_() + , query_() + , geo_() + , id_() + , msg_id_() +{} + +const std::int32_t updateBotInlineSend::ID; + +object_ptr<Update> updateBotInlineSend::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateBotInlineSend> res = make_tl_object<updateBotInlineSend>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->user_id_ = TlFetchLong::parse(p); + res->query_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->geo_ = TlFetchObject<GeoPoint>::parse(p); } + res->id_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->msg_id_ = TlFetchObject<InputBotInlineMessageID>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateBotInlineSend::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotInlineSend"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("user_id", user_id_); + s.store_field("query", query_); + if (var0 & 1) { s.store_object_field("geo", static_cast<const BaseObject *>(geo_.get())); } + s.store_field("id", id_); + if (var0 & 2) { s.store_object_field("msg_id", static_cast<const BaseObject *>(msg_id_.get())); } + s.store_class_end(); + } +} + +updateEditChannelMessage::updateEditChannelMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_) + : message_(std::move(message_)) + , pts_(pts_) + , pts_count_(pts_count_) +{} + +const std::int32_t updateEditChannelMessage::ID; + +object_ptr<Update> updateEditChannelMessage::fetch(TlBufferParser &p) { + return make_tl_object<updateEditChannelMessage>(p); +} + +updateEditChannelMessage::updateEditChannelMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateEditChannelMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateEditChannelMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +updateBotCallbackQuery::updateBotCallbackQuery() + : flags_() + , query_id_() + , user_id_() + , peer_() + , msg_id_() + , chat_instance_() + , data_() + , game_short_name_() +{} + +const std::int32_t updateBotCallbackQuery::ID; + +object_ptr<Update> updateBotCallbackQuery::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateBotCallbackQuery> res = make_tl_object<updateBotCallbackQuery>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->query_id_ = TlFetchLong::parse(p); + res->user_id_ = TlFetchLong::parse(p); + res->peer_ = TlFetchObject<Peer>::parse(p); + res->msg_id_ = TlFetchInt::parse(p); + res->chat_instance_ = TlFetchLong::parse(p); + if (var0 & 1) { res->data_ = TlFetchBytes<bytes>::parse(p); } + if (var0 & 2) { res->game_short_name_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateBotCallbackQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotCallbackQuery"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + s.store_field("user_id", user_id_); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("chat_instance", chat_instance_); + if (var0 & 1) { s.store_bytes_field("data", data_); } + if (var0 & 2) { s.store_field("game_short_name", game_short_name_); } + s.store_class_end(); + } +} + +const std::int32_t updateEditMessage::ID; + +object_ptr<Update> updateEditMessage::fetch(TlBufferParser &p) { + return make_tl_object<updateEditMessage>(p); +} + +updateEditMessage::updateEditMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateEditMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateEditMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +updateInlineBotCallbackQuery::updateInlineBotCallbackQuery() + : flags_() + , query_id_() + , user_id_() + , msg_id_() + , chat_instance_() + , data_() + , game_short_name_() +{} + +const std::int32_t updateInlineBotCallbackQuery::ID; + +object_ptr<Update> updateInlineBotCallbackQuery::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateInlineBotCallbackQuery> res = make_tl_object<updateInlineBotCallbackQuery>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->query_id_ = TlFetchLong::parse(p); + res->user_id_ = TlFetchLong::parse(p); + res->msg_id_ = TlFetchObject<InputBotInlineMessageID>::parse(p); + res->chat_instance_ = TlFetchLong::parse(p); + if (var0 & 1) { res->data_ = TlFetchBytes<bytes>::parse(p); } + if (var0 & 2) { res->game_short_name_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateInlineBotCallbackQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateInlineBotCallbackQuery"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + s.store_field("user_id", user_id_); + s.store_object_field("msg_id", static_cast<const BaseObject *>(msg_id_.get())); + s.store_field("chat_instance", chat_instance_); + if (var0 & 1) { s.store_bytes_field("data", data_); } + if (var0 & 2) { s.store_field("game_short_name", game_short_name_); } + s.store_class_end(); + } +} + +const std::int32_t updateReadChannelOutbox::ID; + +object_ptr<Update> updateReadChannelOutbox::fetch(TlBufferParser &p) { + return make_tl_object<updateReadChannelOutbox>(p); +} + +updateReadChannelOutbox::updateReadChannelOutbox(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , max_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateReadChannelOutbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadChannelOutbox"); + s.store_field("channel_id", channel_id_); + s.store_field("max_id", max_id_); + s.store_class_end(); + } +} + +updateDraftMessage::updateDraftMessage() + : flags_() + , peer_() + , top_msg_id_() + , draft_() +{} + +const std::int32_t updateDraftMessage::ID; + +object_ptr<Update> updateDraftMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateDraftMessage> res = make_tl_object<updateDraftMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->peer_ = TlFetchObject<Peer>::parse(p); + if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); } + res->draft_ = TlFetchObject<DraftMessage>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateDraftMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDraftMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_object_field("draft", static_cast<const BaseObject *>(draft_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateReadFeaturedStickers::ID; + +object_ptr<Update> updateReadFeaturedStickers::fetch(TlBufferParser &p) { + return make_tl_object<updateReadFeaturedStickers>(); +} + +void updateReadFeaturedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadFeaturedStickers"); + s.store_class_end(); + } +} + +const std::int32_t updateRecentStickers::ID; + +object_ptr<Update> updateRecentStickers::fetch(TlBufferParser &p) { + return make_tl_object<updateRecentStickers>(); +} + +void updateRecentStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateRecentStickers"); + s.store_class_end(); + } +} + +const std::int32_t updateConfig::ID; + +object_ptr<Update> updateConfig::fetch(TlBufferParser &p) { + return make_tl_object<updateConfig>(); +} + +void updateConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateConfig"); + s.store_class_end(); + } +} + +const std::int32_t updatePtsChanged::ID; + +object_ptr<Update> updatePtsChanged::fetch(TlBufferParser &p) { + return make_tl_object<updatePtsChanged>(); +} + +void updatePtsChanged::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePtsChanged"); + s.store_class_end(); + } +} + +const std::int32_t updateChannelWebPage::ID; + +object_ptr<Update> updateChannelWebPage::fetch(TlBufferParser &p) { + return make_tl_object<updateChannelWebPage>(p); +} + +updateChannelWebPage::updateChannelWebPage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , webpage_(TlFetchObject<WebPage>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChannelWebPage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelWebPage"); + s.store_field("channel_id", channel_id_); + s.store_object_field("webpage", static_cast<const BaseObject *>(webpage_.get())); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +updateDialogPinned::updateDialogPinned() + : flags_() + , pinned_() + , folder_id_() + , peer_() +{} + +const std::int32_t updateDialogPinned::ID; + +object_ptr<Update> updateDialogPinned::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateDialogPinned> res = make_tl_object<updateDialogPinned>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->pinned_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->folder_id_ = TlFetchInt::parse(p); } + res->peer_ = TlFetchObject<DialogPeer>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateDialogPinned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDialogPinned"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_field("folder_id", folder_id_); } + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +updatePinnedDialogs::updatePinnedDialogs() + : flags_() + , folder_id_() + , order_() +{} + +const std::int32_t updatePinnedDialogs::ID; + +object_ptr<Update> updatePinnedDialogs::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updatePinnedDialogs> res = make_tl_object<updatePinnedDialogs>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->folder_id_ = TlFetchInt::parse(p); } + if (var0 & 1) { res->order_ = TlFetchBoxed<TlFetchVector<TlFetchObject<DialogPeer>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updatePinnedDialogs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePinnedDialogs"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_field("folder_id", folder_id_); } + if (var0 & 1) { { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +const std::int32_t updateBotWebhookJSON::ID; + +object_ptr<Update> updateBotWebhookJSON::fetch(TlBufferParser &p) { + return make_tl_object<updateBotWebhookJSON>(p); +} + +updateBotWebhookJSON::updateBotWebhookJSON(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : data_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p)) +#undef FAIL +{} + +void updateBotWebhookJSON::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotWebhookJSON"); + s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateBotWebhookJSONQuery::ID; + +object_ptr<Update> updateBotWebhookJSONQuery::fetch(TlBufferParser &p) { + return make_tl_object<updateBotWebhookJSONQuery>(p); +} + +updateBotWebhookJSONQuery::updateBotWebhookJSONQuery(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : query_id_(TlFetchLong::parse(p)) + , data_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p)) + , timeout_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateBotWebhookJSONQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotWebhookJSONQuery"); + s.store_field("query_id", query_id_); + s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); + s.store_field("timeout", timeout_); + s.store_class_end(); + } +} + +const std::int32_t updateBotShippingQuery::ID; + +object_ptr<Update> updateBotShippingQuery::fetch(TlBufferParser &p) { + return make_tl_object<updateBotShippingQuery>(p); +} + +updateBotShippingQuery::updateBotShippingQuery(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : query_id_(TlFetchLong::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , payload_(TlFetchBytes<bytes>::parse(p)) + , shipping_address_(TlFetchBoxed<TlFetchObject<postAddress>, 512535275>::parse(p)) +#undef FAIL +{} + +void updateBotShippingQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotShippingQuery"); + s.store_field("query_id", query_id_); + s.store_field("user_id", user_id_); + s.store_bytes_field("payload", payload_); + s.store_object_field("shipping_address", static_cast<const BaseObject *>(shipping_address_.get())); + s.store_class_end(); + } +} + +updateBotPrecheckoutQuery::updateBotPrecheckoutQuery() + : flags_() + , query_id_() + , user_id_() + , payload_() + , info_() + , shipping_option_id_() + , currency_() + , total_amount_() +{} + +const std::int32_t updateBotPrecheckoutQuery::ID; + +object_ptr<Update> updateBotPrecheckoutQuery::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateBotPrecheckoutQuery> res = make_tl_object<updateBotPrecheckoutQuery>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->query_id_ = TlFetchLong::parse(p); + res->user_id_ = TlFetchLong::parse(p); + res->payload_ = TlFetchBytes<bytes>::parse(p); + if (var0 & 1) { res->info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); } + if (var0 & 2) { res->shipping_option_id_ = TlFetchString<string>::parse(p); } + res->currency_ = TlFetchString<string>::parse(p); + res->total_amount_ = TlFetchLong::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateBotPrecheckoutQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotPrecheckoutQuery"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + s.store_field("user_id", user_id_); + s.store_bytes_field("payload", payload_); + if (var0 & 1) { s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); } + if (var0 & 2) { s.store_field("shipping_option_id", shipping_option_id_); } + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_class_end(); + } +} + +const std::int32_t updatePhoneCall::ID; + +object_ptr<Update> updatePhoneCall::fetch(TlBufferParser &p) { + return make_tl_object<updatePhoneCall>(p); +} + +updatePhoneCall::updatePhoneCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_call_(TlFetchObject<PhoneCall>::parse(p)) +#undef FAIL +{} + +void updatePhoneCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePhoneCall"); + s.store_object_field("phone_call", static_cast<const BaseObject *>(phone_call_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateLangPackTooLong::ID; + +object_ptr<Update> updateLangPackTooLong::fetch(TlBufferParser &p) { + return make_tl_object<updateLangPackTooLong>(p); +} + +updateLangPackTooLong::updateLangPackTooLong(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : lang_code_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void updateLangPackTooLong::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateLangPackTooLong"); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +const std::int32_t updateLangPack::ID; + +object_ptr<Update> updateLangPack::fetch(TlBufferParser &p) { + return make_tl_object<updateLangPack>(p); +} + +updateLangPack::updateLangPack(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : difference_(TlFetchBoxed<TlFetchObject<langPackDifference>, -209337866>::parse(p)) +#undef FAIL +{} + +void updateLangPack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateLangPack"); + s.store_object_field("difference", static_cast<const BaseObject *>(difference_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateFavedStickers::ID; + +object_ptr<Update> updateFavedStickers::fetch(TlBufferParser &p) { + return make_tl_object<updateFavedStickers>(); +} + +void updateFavedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFavedStickers"); + s.store_class_end(); + } +} + +updateChannelReadMessagesContents::updateChannelReadMessagesContents() + : flags_() + , channel_id_() + , top_msg_id_() + , messages_() +{} + +const std::int32_t updateChannelReadMessagesContents::ID; + +object_ptr<Update> updateChannelReadMessagesContents::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateChannelReadMessagesContents> res = make_tl_object<updateChannelReadMessagesContents>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->channel_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); } + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateChannelReadMessagesContents::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelReadMessagesContents"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("channel_id", channel_id_); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateContactsReset::ID; + +object_ptr<Update> updateContactsReset::fetch(TlBufferParser &p) { + return make_tl_object<updateContactsReset>(); +} + +void updateContactsReset::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateContactsReset"); + s.store_class_end(); + } +} + +const std::int32_t updateChannelAvailableMessages::ID; + +object_ptr<Update> updateChannelAvailableMessages::fetch(TlBufferParser &p) { + return make_tl_object<updateChannelAvailableMessages>(p); +} + +updateChannelAvailableMessages::updateChannelAvailableMessages(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , available_min_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChannelAvailableMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelAvailableMessages"); + s.store_field("channel_id", channel_id_); + s.store_field("available_min_id", available_min_id_); + s.store_class_end(); + } +} + +updateDialogUnreadMark::updateDialogUnreadMark() + : flags_() + , unread_() + , peer_() +{} + +const std::int32_t updateDialogUnreadMark::ID; + +object_ptr<Update> updateDialogUnreadMark::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateDialogUnreadMark> res = make_tl_object<updateDialogUnreadMark>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->unread_ = TlFetchTrue::parse(p); } + res->peer_ = TlFetchObject<DialogPeer>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateDialogUnreadMark::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDialogUnreadMark"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +updateMessagePoll::updateMessagePoll() + : flags_() + , poll_id_() + , poll_() + , results_() +{} + +const std::int32_t updateMessagePoll::ID; + +object_ptr<Update> updateMessagePoll::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateMessagePoll> res = make_tl_object<updateMessagePoll>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->poll_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->poll_ = TlFetchBoxed<TlFetchObject<poll>, -2032041631>::parse(p); } + res->results_ = TlFetchBoxed<TlFetchObject<pollResults>, -591909213>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateMessagePoll::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessagePoll"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("poll_id", poll_id_); + if (var0 & 1) { s.store_object_field("poll", static_cast<const BaseObject *>(poll_.get())); } + s.store_object_field("results", static_cast<const BaseObject *>(results_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateChatDefaultBannedRights::ID; + +object_ptr<Update> updateChatDefaultBannedRights::fetch(TlBufferParser &p) { + return make_tl_object<updateChatDefaultBannedRights>(p); +} + +updateChatDefaultBannedRights::updateChatDefaultBannedRights(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , default_banned_rights_(TlFetchBoxed<TlFetchObject<chatBannedRights>, -1626209256>::parse(p)) + , version_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChatDefaultBannedRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatDefaultBannedRights"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("default_banned_rights", static_cast<const BaseObject *>(default_banned_rights_.get())); + s.store_field("version", version_); + s.store_class_end(); + } +} + +const std::int32_t updateFolderPeers::ID; + +object_ptr<Update> updateFolderPeers::fetch(TlBufferParser &p) { + return make_tl_object<updateFolderPeers>(p); +} + +updateFolderPeers::updateFolderPeers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : folder_peers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<folderPeer>, -373643672>>, 481674261>::parse(p)) + , pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateFolderPeers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateFolderPeers"); + { s.store_vector_begin("folder_peers", folder_peers_.size()); for (const auto &_value : folder_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updatePeerSettings::ID; + +object_ptr<Update> updatePeerSettings::fetch(TlBufferParser &p) { + return make_tl_object<updatePeerSettings>(p); +} + +updatePeerSettings::updatePeerSettings(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , settings_(TlFetchBoxed<TlFetchObject<peerSettings>, -1525149427>::parse(p)) +#undef FAIL +{} + +void updatePeerSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePeerSettings"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +const std::int32_t updatePeerLocated::ID; + +object_ptr<Update> updatePeerLocated::fetch(TlBufferParser &p) { + return make_tl_object<updatePeerLocated>(p); +} + +updatePeerLocated::updatePeerLocated(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peers_(TlFetchBoxed<TlFetchVector<TlFetchObject<PeerLocated>>, 481674261>::parse(p)) +#undef FAIL +{} + +void updatePeerLocated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePeerLocated"); + { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateNewScheduledMessage::ID; + +object_ptr<Update> updateNewScheduledMessage::fetch(TlBufferParser &p) { + return make_tl_object<updateNewScheduledMessage>(p); +} + +updateNewScheduledMessage::updateNewScheduledMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchObject<Message>::parse(p)) +#undef FAIL +{} + +void updateNewScheduledMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateNewScheduledMessage"); + s.store_object_field("message", static_cast<const BaseObject *>(message_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateDeleteScheduledMessages::ID; + +object_ptr<Update> updateDeleteScheduledMessages::fetch(TlBufferParser &p) { + return make_tl_object<updateDeleteScheduledMessages>(p); +} + +updateDeleteScheduledMessages::updateDeleteScheduledMessages(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) +#undef FAIL +{} + +void updateDeleteScheduledMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDeleteScheduledMessages"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateTheme::ID; + +object_ptr<Update> updateTheme::fetch(TlBufferParser &p) { + return make_tl_object<updateTheme>(p); +} + +updateTheme::updateTheme(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : theme_(TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p)) +#undef FAIL +{} + +void updateTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateTheme"); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateGeoLiveViewed::ID; + +object_ptr<Update> updateGeoLiveViewed::fetch(TlBufferParser &p) { + return make_tl_object<updateGeoLiveViewed>(p); +} + +updateGeoLiveViewed::updateGeoLiveViewed(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , msg_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateGeoLiveViewed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateGeoLiveViewed"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +const std::int32_t updateLoginToken::ID; + +object_ptr<Update> updateLoginToken::fetch(TlBufferParser &p) { + return make_tl_object<updateLoginToken>(); +} + +void updateLoginToken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateLoginToken"); + s.store_class_end(); + } +} + +const std::int32_t updateMessagePollVote::ID; + +object_ptr<Update> updateMessagePollVote::fetch(TlBufferParser &p) { + return make_tl_object<updateMessagePollVote>(p); +} + +updateMessagePollVote::updateMessagePollVote(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : poll_id_(TlFetchLong::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , options_(TlFetchBoxed<TlFetchVector<TlFetchBytes<bytes>>, 481674261>::parse(p)) + , qts_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateMessagePollVote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessagePollVote"); + s.store_field("poll_id", poll_id_); + s.store_field("user_id", user_id_); + { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_bytes_field("", _value); } s.store_class_end(); } + s.store_field("qts", qts_); + s.store_class_end(); + } +} + +updateDialogFilter::updateDialogFilter() + : flags_() + , id_() + , filter_() +{} + +const std::int32_t updateDialogFilter::ID; + +object_ptr<Update> updateDialogFilter::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateDialogFilter> res = make_tl_object<updateDialogFilter>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchInt::parse(p); + if (var0 & 1) { res->filter_ = TlFetchObject<DialogFilter>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateDialogFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDialogFilter"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + if (var0 & 1) { s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); } + s.store_class_end(); + } +} + +const std::int32_t updateDialogFilterOrder::ID; + +object_ptr<Update> updateDialogFilterOrder::fetch(TlBufferParser &p) { + return make_tl_object<updateDialogFilterOrder>(p); +} + +updateDialogFilterOrder::updateDialogFilterOrder(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : order_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) +#undef FAIL +{} + +void updateDialogFilterOrder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDialogFilterOrder"); + { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateDialogFilters::ID; + +object_ptr<Update> updateDialogFilters::fetch(TlBufferParser &p) { + return make_tl_object<updateDialogFilters>(); +} + +void updateDialogFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateDialogFilters"); + s.store_class_end(); + } +} + +const std::int32_t updatePhoneCallSignalingData::ID; + +object_ptr<Update> updatePhoneCallSignalingData::fetch(TlBufferParser &p) { + return make_tl_object<updatePhoneCallSignalingData>(p); +} + +updatePhoneCallSignalingData::updatePhoneCallSignalingData(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_call_id_(TlFetchLong::parse(p)) + , data_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void updatePhoneCallSignalingData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePhoneCallSignalingData"); + s.store_field("phone_call_id", phone_call_id_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +const std::int32_t updateChannelMessageForwards::ID; + +object_ptr<Update> updateChannelMessageForwards::fetch(TlBufferParser &p) { + return make_tl_object<updateChannelMessageForwards>(p); +} + +updateChannelMessageForwards::updateChannelMessageForwards(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , id_(TlFetchInt::parse(p)) + , forwards_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateChannelMessageForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelMessageForwards"); + s.store_field("channel_id", channel_id_); + s.store_field("id", id_); + s.store_field("forwards", forwards_); + s.store_class_end(); + } +} + +updateReadChannelDiscussionInbox::updateReadChannelDiscussionInbox() + : flags_() + , channel_id_() + , top_msg_id_() + , read_max_id_() + , broadcast_id_() + , broadcast_post_() +{} + +const std::int32_t updateReadChannelDiscussionInbox::ID; + +object_ptr<Update> updateReadChannelDiscussionInbox::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateReadChannelDiscussionInbox> res = make_tl_object<updateReadChannelDiscussionInbox>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->channel_id_ = TlFetchLong::parse(p); + res->top_msg_id_ = TlFetchInt::parse(p); + res->read_max_id_ = TlFetchInt::parse(p); + if (var0 & 1) { res->broadcast_id_ = TlFetchLong::parse(p); } + if (var0 & 1) { res->broadcast_post_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateReadChannelDiscussionInbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadChannelDiscussionInbox"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("channel_id", channel_id_); + s.store_field("top_msg_id", top_msg_id_); + s.store_field("read_max_id", read_max_id_); + if (var0 & 1) { s.store_field("broadcast_id", broadcast_id_); } + if (var0 & 1) { s.store_field("broadcast_post", broadcast_post_); } + s.store_class_end(); + } +} + +const std::int32_t updateReadChannelDiscussionOutbox::ID; + +object_ptr<Update> updateReadChannelDiscussionOutbox::fetch(TlBufferParser &p) { + return make_tl_object<updateReadChannelDiscussionOutbox>(p); +} + +updateReadChannelDiscussionOutbox::updateReadChannelDiscussionOutbox(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channel_id_(TlFetchLong::parse(p)) + , top_msg_id_(TlFetchInt::parse(p)) + , read_max_id_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateReadChannelDiscussionOutbox::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadChannelDiscussionOutbox"); + s.store_field("channel_id", channel_id_); + s.store_field("top_msg_id", top_msg_id_); + s.store_field("read_max_id", read_max_id_); + s.store_class_end(); + } +} + +const std::int32_t updatePeerBlocked::ID; + +object_ptr<Update> updatePeerBlocked::fetch(TlBufferParser &p) { + return make_tl_object<updatePeerBlocked>(p); +} + +updatePeerBlocked::updatePeerBlocked(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_id_(TlFetchObject<Peer>::parse(p)) + , blocked_(TlFetchBool::parse(p)) +#undef FAIL +{} + +void updatePeerBlocked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePeerBlocked"); + s.store_object_field("peer_id", static_cast<const BaseObject *>(peer_id_.get())); + s.store_field("blocked", blocked_); + s.store_class_end(); + } +} + +updateChannelUserTyping::updateChannelUserTyping() + : flags_() + , channel_id_() + , top_msg_id_() + , from_id_() + , action_() +{} + +const std::int32_t updateChannelUserTyping::ID; + +object_ptr<Update> updateChannelUserTyping::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateChannelUserTyping> res = make_tl_object<updateChannelUserTyping>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->channel_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); } + res->from_id_ = TlFetchObject<Peer>::parse(p); + res->action_ = TlFetchObject<SendMessageAction>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateChannelUserTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelUserTyping"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("channel_id", channel_id_); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +updatePinnedMessages::updatePinnedMessages() + : flags_() + , pinned_() + , peer_() + , messages_() + , pts_() + , pts_count_() +{} + +const std::int32_t updatePinnedMessages::ID; + +object_ptr<Update> updatePinnedMessages::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updatePinnedMessages> res = make_tl_object<updatePinnedMessages>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->pinned_ = TlFetchTrue::parse(p); } + res->peer_ = TlFetchObject<Peer>::parse(p); + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p); + res->pts_ = TlFetchInt::parse(p); + res->pts_count_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updatePinnedMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePinnedMessages"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +updatePinnedChannelMessages::updatePinnedChannelMessages() + : flags_() + , pinned_() + , channel_id_() + , messages_() + , pts_() + , pts_count_() +{} + +const std::int32_t updatePinnedChannelMessages::ID; + +object_ptr<Update> updatePinnedChannelMessages::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updatePinnedChannelMessages> res = make_tl_object<updatePinnedChannelMessages>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->pinned_ = TlFetchTrue::parse(p); } + res->channel_id_ = TlFetchLong::parse(p); + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p); + res->pts_ = TlFetchInt::parse(p); + res->pts_count_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updatePinnedChannelMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePinnedChannelMessages"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("channel_id", channel_id_); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +const std::int32_t updateChat::ID; + +object_ptr<Update> updateChat::fetch(TlBufferParser &p) { + return make_tl_object<updateChat>(p); +} + +updateChat::updateChat(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void updateChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +const std::int32_t updateGroupCallParticipants::ID; + +object_ptr<Update> updateGroupCallParticipants::fetch(TlBufferParser &p) { + return make_tl_object<updateGroupCallParticipants>(p); +} + +updateGroupCallParticipants::updateGroupCallParticipants(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : call_(TlFetchBoxed<TlFetchObject<inputGroupCall>, -659913713>::parse(p)) + , participants_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>>, 481674261>::parse(p)) + , version_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateGroupCallParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateGroupCallParticipants"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("version", version_); + s.store_class_end(); + } +} + +const std::int32_t updateGroupCall::ID; + +object_ptr<Update> updateGroupCall::fetch(TlBufferParser &p) { + return make_tl_object<updateGroupCall>(p); +} + +updateGroupCall::updateGroupCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chat_id_(TlFetchLong::parse(p)) + , call_(TlFetchObject<GroupCall>::parse(p)) +#undef FAIL +{} + +void updateGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateGroupCall"); + s.store_field("chat_id", chat_id_); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +updatePeerHistoryTTL::updatePeerHistoryTTL() + : flags_() + , peer_() + , ttl_period_() +{} + +const std::int32_t updatePeerHistoryTTL::ID; + +object_ptr<Update> updatePeerHistoryTTL::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updatePeerHistoryTTL> res = make_tl_object<updatePeerHistoryTTL>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->peer_ = TlFetchObject<Peer>::parse(p); + if (var0 & 1) { res->ttl_period_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updatePeerHistoryTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePeerHistoryTTL"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("ttl_period", ttl_period_); } + s.store_class_end(); + } +} + +updateChatParticipant::updateChatParticipant() + : flags_() + , chat_id_() + , date_() + , actor_id_() + , user_id_() + , prev_participant_() + , new_participant_() + , invite_() + , qts_() +{} + +const std::int32_t updateChatParticipant::ID; + +object_ptr<Update> updateChatParticipant::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateChatParticipant> res = make_tl_object<updateChatParticipant>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->chat_id_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->actor_id_ = TlFetchLong::parse(p); + res->user_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->prev_participant_ = TlFetchObject<ChatParticipant>::parse(p); } + if (var0 & 2) { res->new_participant_ = TlFetchObject<ChatParticipant>::parse(p); } + if (var0 & 4) { res->invite_ = TlFetchObject<ExportedChatInvite>::parse(p); } + res->qts_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateChatParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChatParticipant"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("chat_id", chat_id_); + s.store_field("date", date_); + s.store_field("actor_id", actor_id_); + s.store_field("user_id", user_id_); + if (var0 & 1) { s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get())); } + if (var0 & 2) { s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get())); } + if (var0 & 4) { s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); } + s.store_field("qts", qts_); + s.store_class_end(); + } +} + +updateChannelParticipant::updateChannelParticipant() + : flags_() + , channel_id_() + , date_() + , actor_id_() + , user_id_() + , prev_participant_() + , new_participant_() + , invite_() + , qts_() +{} + +const std::int32_t updateChannelParticipant::ID; + +object_ptr<Update> updateChannelParticipant::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateChannelParticipant> res = make_tl_object<updateChannelParticipant>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->channel_id_ = TlFetchLong::parse(p); + res->date_ = TlFetchInt::parse(p); + res->actor_id_ = TlFetchLong::parse(p); + res->user_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->prev_participant_ = TlFetchObject<ChannelParticipant>::parse(p); } + if (var0 & 2) { res->new_participant_ = TlFetchObject<ChannelParticipant>::parse(p); } + if (var0 & 4) { res->invite_ = TlFetchObject<ExportedChatInvite>::parse(p); } + res->qts_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateChannelParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelParticipant"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("channel_id", channel_id_); + s.store_field("date", date_); + s.store_field("actor_id", actor_id_); + s.store_field("user_id", user_id_); + if (var0 & 1) { s.store_object_field("prev_participant", static_cast<const BaseObject *>(prev_participant_.get())); } + if (var0 & 2) { s.store_object_field("new_participant", static_cast<const BaseObject *>(new_participant_.get())); } + if (var0 & 4) { s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); } + s.store_field("qts", qts_); + s.store_class_end(); + } +} + +const std::int32_t updateBotStopped::ID; + +object_ptr<Update> updateBotStopped::fetch(TlBufferParser &p) { + return make_tl_object<updateBotStopped>(p); +} + +updateBotStopped::updateBotStopped(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) + , stopped_(TlFetchBool::parse(p)) + , qts_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateBotStopped::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotStopped"); + s.store_field("user_id", user_id_); + s.store_field("date", date_); + s.store_field("stopped", stopped_); + s.store_field("qts", qts_); + s.store_class_end(); + } +} + +updateGroupCallConnection::updateGroupCallConnection() + : flags_() + , presentation_() + , params_() +{} + +const std::int32_t updateGroupCallConnection::ID; + +object_ptr<Update> updateGroupCallConnection::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateGroupCallConnection> res = make_tl_object<updateGroupCallConnection>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->presentation_ = TlFetchTrue::parse(p); } + res->params_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateGroupCallConnection::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateGroupCallConnection"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("params", static_cast<const BaseObject *>(params_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateBotCommands::ID; + +object_ptr<Update> updateBotCommands::fetch(TlBufferParser &p) { + return make_tl_object<updateBotCommands>(p); +} + +updateBotCommands::updateBotCommands(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , bot_id_(TlFetchLong::parse(p)) + , commands_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botCommand>, -1032140601>>, 481674261>::parse(p)) +#undef FAIL +{} + +void updateBotCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotCommands"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("bot_id", bot_id_); + { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updatePendingJoinRequests::ID; + +object_ptr<Update> updatePendingJoinRequests::fetch(TlBufferParser &p) { + return make_tl_object<updatePendingJoinRequests>(p); +} + +updatePendingJoinRequests::updatePendingJoinRequests(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , requests_pending_(TlFetchInt::parse(p)) + , recent_requesters_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) +#undef FAIL +{} + +void updatePendingJoinRequests::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatePendingJoinRequests"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("requests_pending", requests_pending_); + { s.store_vector_begin("recent_requesters", recent_requesters_.size()); for (const auto &_value : recent_requesters_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t updateBotChatInviteRequester::ID; + +object_ptr<Update> updateBotChatInviteRequester::fetch(TlBufferParser &p) { + return make_tl_object<updateBotChatInviteRequester>(p); +} + +updateBotChatInviteRequester::updateBotChatInviteRequester(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , date_(TlFetchInt::parse(p)) + , user_id_(TlFetchLong::parse(p)) + , about_(TlFetchString<string>::parse(p)) + , invite_(TlFetchObject<ExportedChatInvite>::parse(p)) + , qts_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateBotChatInviteRequester::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotChatInviteRequester"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("date", date_); + s.store_field("user_id", user_id_); + s.store_field("about", about_); + s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); + s.store_field("qts", qts_); + s.store_class_end(); + } +} + +updateMessageReactions::updateMessageReactions() + : flags_() + , peer_() + , msg_id_() + , top_msg_id_() + , reactions_() +{} + +const std::int32_t updateMessageReactions::ID; + +object_ptr<Update> updateMessageReactions::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateMessageReactions> res = make_tl_object<updateMessageReactions>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->peer_ = TlFetchObject<Peer>::parse(p); + res->msg_id_ = TlFetchInt::parse(p); + if (var0 & 1) { res->top_msg_id_ = TlFetchInt::parse(p); } + res->reactions_ = TlFetchBoxed<TlFetchObject<messageReactions>, 1328256121>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateMessageReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageReactions"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_object_field("reactions", static_cast<const BaseObject *>(reactions_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateAttachMenuBots::ID; + +object_ptr<Update> updateAttachMenuBots::fetch(TlBufferParser &p) { + return make_tl_object<updateAttachMenuBots>(); +} + +void updateAttachMenuBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateAttachMenuBots"); + s.store_class_end(); + } +} + +const std::int32_t updateWebViewResultSent::ID; + +object_ptr<Update> updateWebViewResultSent::fetch(TlBufferParser &p) { + return make_tl_object<updateWebViewResultSent>(p); +} + +updateWebViewResultSent::updateWebViewResultSent(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : query_id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void updateWebViewResultSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateWebViewResultSent"); + s.store_field("query_id", query_id_); + s.store_class_end(); + } +} + +const std::int32_t updateBotMenuButton::ID; + +object_ptr<Update> updateBotMenuButton::fetch(TlBufferParser &p) { + return make_tl_object<updateBotMenuButton>(p); +} + +updateBotMenuButton::updateBotMenuButton(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : bot_id_(TlFetchLong::parse(p)) + , button_(TlFetchObject<BotMenuButton>::parse(p)) +#undef FAIL +{} + +void updateBotMenuButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateBotMenuButton"); + s.store_field("bot_id", bot_id_); + s.store_object_field("button", static_cast<const BaseObject *>(button_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateSavedRingtones::ID; + +object_ptr<Update> updateSavedRingtones::fetch(TlBufferParser &p) { + return make_tl_object<updateSavedRingtones>(); +} + +void updateSavedRingtones::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateSavedRingtones"); + s.store_class_end(); + } +} + +updateTranscribedAudio::updateTranscribedAudio() + : flags_() + , pending_() + , peer_() + , msg_id_() + , transcription_id_() + , text_() +{} + +const std::int32_t updateTranscribedAudio::ID; + +object_ptr<Update> updateTranscribedAudio::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateTranscribedAudio> res = make_tl_object<updateTranscribedAudio>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->pending_ = TlFetchTrue::parse(p); } + res->peer_ = TlFetchObject<Peer>::parse(p); + res->msg_id_ = TlFetchInt::parse(p); + res->transcription_id_ = TlFetchLong::parse(p); + res->text_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateTranscribedAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateTranscribedAudio"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("transcription_id", transcription_id_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +const std::int32_t updateReadFeaturedEmojiStickers::ID; + +object_ptr<Update> updateReadFeaturedEmojiStickers::fetch(TlBufferParser &p) { + return make_tl_object<updateReadFeaturedEmojiStickers>(); +} + +void updateReadFeaturedEmojiStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateReadFeaturedEmojiStickers"); + s.store_class_end(); + } +} + +const std::int32_t updateUserEmojiStatus::ID; + +object_ptr<Update> updateUserEmojiStatus::fetch(TlBufferParser &p) { + return make_tl_object<updateUserEmojiStatus>(p); +} + +updateUserEmojiStatus::updateUserEmojiStatus(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : user_id_(TlFetchLong::parse(p)) + , emoji_status_(TlFetchObject<EmojiStatus>::parse(p)) +#undef FAIL +{} + +void updateUserEmojiStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateUserEmojiStatus"); + s.store_field("user_id", user_id_); + s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get())); + s.store_class_end(); + } +} + +const std::int32_t updateRecentEmojiStatuses::ID; + +object_ptr<Update> updateRecentEmojiStatuses::fetch(TlBufferParser &p) { + return make_tl_object<updateRecentEmojiStatuses>(); +} + +void updateRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateRecentEmojiStatuses"); + s.store_class_end(); + } +} + +const std::int32_t updateRecentReactions::ID; + +object_ptr<Update> updateRecentReactions::fetch(TlBufferParser &p) { + return make_tl_object<updateRecentReactions>(); +} + +void updateRecentReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateRecentReactions"); + s.store_class_end(); + } +} + +updateMoveStickerSetToTop::updateMoveStickerSetToTop() + : flags_() + , masks_() + , emojis_() + , stickerset_() +{} + +const std::int32_t updateMoveStickerSetToTop::ID; + +object_ptr<Update> updateMoveStickerSetToTop::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateMoveStickerSetToTop> res = make_tl_object<updateMoveStickerSetToTop>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->masks_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->emojis_ = TlFetchTrue::parse(p); } + res->stickerset_ = TlFetchLong::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateMoveStickerSetToTop::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMoveStickerSetToTop"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("stickerset", stickerset_); + s.store_class_end(); + } +} + +const std::int32_t updateMessageExtendedMedia::ID; + +object_ptr<Update> updateMessageExtendedMedia::fetch(TlBufferParser &p) { + return make_tl_object<updateMessageExtendedMedia>(p); +} + +updateMessageExtendedMedia::updateMessageExtendedMedia(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , msg_id_(TlFetchInt::parse(p)) + , extended_media_(TlFetchObject<MessageExtendedMedia>::parse(p)) +#undef FAIL +{} + +void updateMessageExtendedMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateMessageExtendedMedia"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_object_field("extended_media", static_cast<const BaseObject *>(extended_media_.get())); + s.store_class_end(); + } +} + +updateChannelPinnedTopic::updateChannelPinnedTopic() + : flags_() + , channel_id_() + , topic_id_() +{} + +const std::int32_t updateChannelPinnedTopic::ID; + +object_ptr<Update> updateChannelPinnedTopic::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateChannelPinnedTopic> res = make_tl_object<updateChannelPinnedTopic>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->channel_id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->topic_id_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateChannelPinnedTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateChannelPinnedTopic"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("channel_id", channel_id_); + if (var0 & 1) { s.store_field("topic_id", topic_id_); } + s.store_class_end(); + } +} + +object_ptr<Updates> Updates::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case updatesTooLong::ID: + return updatesTooLong::fetch(p); + case updateShortMessage::ID: + return updateShortMessage::fetch(p); + case updateShortChatMessage::ID: + return updateShortChatMessage::fetch(p); + case updateShort::ID: + return updateShort::fetch(p); + case updatesCombined::ID: + return updatesCombined::fetch(p); + case updates::ID: + return updates::fetch(p); + case updateShortSentMessage::ID: + return updateShortSentMessage::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t updatesTooLong::ID; + +object_ptr<Updates> updatesTooLong::fetch(TlBufferParser &p) { + return make_tl_object<updatesTooLong>(); +} + +void updatesTooLong::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatesTooLong"); + s.store_class_end(); + } +} + +updateShortMessage::updateShortMessage() + : flags_() + , out_() + , mentioned_() + , media_unread_() + , silent_() + , id_() + , user_id_() + , message_() + , pts_() + , pts_count_() + , date_() + , fwd_from_() + , via_bot_id_() + , reply_to_() + , entities_() + , ttl_period_() +{} + +const std::int32_t updateShortMessage::ID; + +object_ptr<Updates> updateShortMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateShortMessage> res = make_tl_object<updateShortMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->user_id_ = TlFetchLong::parse(p); + res->message_ = TlFetchString<string>::parse(p); + res->pts_ = TlFetchInt::parse(p); + res->pts_count_ = TlFetchInt::parse(p); + res->date_ = TlFetchInt::parse(p); + if (var0 & 4) { res->fwd_from_ = TlFetchBoxed<TlFetchObject<messageFwdHeader>, 1601666510>::parse(p); } + if (var0 & 2048) { res->via_bot_id_ = TlFetchLong::parse(p); } + if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); } + if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateShortMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateShortMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("user_id", user_id_); + s.store_field("message", message_); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_field("date", date_); + if (var0 & 4) { s.store_object_field("fwd_from", static_cast<const BaseObject *>(fwd_from_.get())); } + if (var0 & 2048) { s.store_field("via_bot_id", via_bot_id_); } + if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); } + if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); } + s.store_class_end(); + } +} + +updateShortChatMessage::updateShortChatMessage() + : flags_() + , out_() + , mentioned_() + , media_unread_() + , silent_() + , id_() + , from_id_() + , chat_id_() + , message_() + , pts_() + , pts_count_() + , date_() + , fwd_from_() + , via_bot_id_() + , reply_to_() + , entities_() + , ttl_period_() +{} + +const std::int32_t updateShortChatMessage::ID; + +object_ptr<Updates> updateShortChatMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateShortChatMessage> res = make_tl_object<updateShortChatMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->mentioned_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->media_unread_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->silent_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->from_id_ = TlFetchLong::parse(p); + res->chat_id_ = TlFetchLong::parse(p); + res->message_ = TlFetchString<string>::parse(p); + res->pts_ = TlFetchInt::parse(p); + res->pts_count_ = TlFetchInt::parse(p); + res->date_ = TlFetchInt::parse(p); + if (var0 & 4) { res->fwd_from_ = TlFetchBoxed<TlFetchObject<messageFwdHeader>, 1601666510>::parse(p); } + if (var0 & 2048) { res->via_bot_id_ = TlFetchLong::parse(p); } + if (var0 & 8) { res->reply_to_ = TlFetchBoxed<TlFetchObject<messageReplyHeader>, -1495959709>::parse(p); } + if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateShortChatMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateShortChatMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("from_id", from_id_); + s.store_field("chat_id", chat_id_); + s.store_field("message", message_); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_field("date", date_); + if (var0 & 4) { s.store_object_field("fwd_from", static_cast<const BaseObject *>(fwd_from_.get())); } + if (var0 & 2048) { s.store_field("via_bot_id", via_bot_id_); } + if (var0 & 8) { s.store_object_field("reply_to", static_cast<const BaseObject *>(reply_to_.get())); } + if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); } + s.store_class_end(); + } +} + +const std::int32_t updateShort::ID; + +object_ptr<Updates> updateShort::fetch(TlBufferParser &p) { + return make_tl_object<updateShort>(p); +} + +updateShort::updateShort(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : update_(TlFetchObject<Update>::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updateShort::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateShort"); + s.store_object_field("update", static_cast<const BaseObject *>(update_.get())); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t updatesCombined::ID; + +object_ptr<Updates> updatesCombined::fetch(TlBufferParser &p) { + return make_tl_object<updatesCombined>(p); +} + +updatesCombined::updatesCombined(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , date_(TlFetchInt::parse(p)) + , seq_start_(TlFetchInt::parse(p)) + , seq_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updatesCombined::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updatesCombined"); + { s.store_vector_begin("updates", updates_.size()); for (const auto &_value : updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("date", date_); + s.store_field("seq_start", seq_start_); + s.store_field("seq", seq_); + s.store_class_end(); + } +} + +updates::updates() + : updates_() + , users_() + , chats_() + , date_() + , seq_() +{} + +const std::int32_t updates::ID; + +object_ptr<Updates> updates::fetch(TlBufferParser &p) { + return make_tl_object<updates>(p); +} + +updates::updates(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , date_(TlFetchInt::parse(p)) + , seq_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updates::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates"); + { s.store_vector_begin("updates", updates_.size()); for (const auto &_value : updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("date", date_); + s.store_field("seq", seq_); + s.store_class_end(); + } +} + +updateShortSentMessage::updateShortSentMessage() + : flags_() + , out_() + , id_() + , pts_() + , pts_count_() + , date_() + , media_() + , entities_() + , ttl_period_() +{} + +const std::int32_t updateShortSentMessage::ID; + +object_ptr<Updates> updateShortSentMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updateShortSentMessage> res = make_tl_object<updateShortSentMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->out_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->pts_ = TlFetchInt::parse(p); + res->pts_count_ = TlFetchInt::parse(p); + res->date_ = TlFetchInt::parse(p); + if (var0 & 512) { res->media_ = TlFetchObject<MessageMedia>::parse(p); } + if (var0 & 128) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (var0 & 33554432) { res->ttl_period_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updateShortSentMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updateShortSentMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_field("date", date_); + if (var0 & 512) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); } + if (var0 & 128) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 33554432) { s.store_field("ttl_period", ttl_period_); } + s.store_class_end(); + } +} + +object_ptr<UrlAuthResult> UrlAuthResult::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case urlAuthResultRequest::ID: + return urlAuthResultRequest::fetch(p); + case urlAuthResultAccepted::ID: + return urlAuthResultAccepted::fetch(p); + case urlAuthResultDefault::ID: + return urlAuthResultDefault::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +urlAuthResultRequest::urlAuthResultRequest() + : flags_() + , request_write_access_() + , bot_() + , domain_() +{} + +const std::int32_t urlAuthResultRequest::ID; + +object_ptr<UrlAuthResult> urlAuthResultRequest::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<urlAuthResultRequest> res = make_tl_object<urlAuthResultRequest>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->request_write_access_ = TlFetchTrue::parse(p); } + res->bot_ = TlFetchObject<User>::parse(p); + res->domain_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void urlAuthResultRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "urlAuthResultRequest"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_field("domain", domain_); + s.store_class_end(); + } +} + +const std::int32_t urlAuthResultAccepted::ID; + +object_ptr<UrlAuthResult> urlAuthResultAccepted::fetch(TlBufferParser &p) { + return make_tl_object<urlAuthResultAccepted>(p); +} + +urlAuthResultAccepted::urlAuthResultAccepted(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void urlAuthResultAccepted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "urlAuthResultAccepted"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +const std::int32_t urlAuthResultDefault::ID; + +object_ptr<UrlAuthResult> urlAuthResultDefault::fetch(TlBufferParser &p) { + return make_tl_object<urlAuthResultDefault>(); +} + +void urlAuthResultDefault::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "urlAuthResultDefault"); + s.store_class_end(); + } +} + +object_ptr<User> User::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case userEmpty::ID: + return userEmpty::fetch(p); + case user::ID: + return user::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t userEmpty::ID; + +object_ptr<User> userEmpty::fetch(TlBufferParser &p) { + return make_tl_object<userEmpty>(p); +} + +userEmpty::userEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void userEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userEmpty"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +user::user() + : flags_() + , self_() + , contact_() + , mutual_contact_() + , deleted_() + , bot_() + , bot_chat_history_() + , bot_nochats_() + , verified_() + , restricted_() + , min_() + , bot_inline_geo_() + , support_() + , scam_() + , apply_min_photo_() + , fake_() + , bot_attach_menu_() + , premium_() + , attach_menu_enabled_() + , flags2_() + , id_() + , access_hash_() + , first_name_() + , last_name_() + , username_() + , phone_() + , photo_() + , status_() + , bot_info_version_() + , restriction_reason_() + , bot_inline_placeholder_() + , lang_code_() + , emoji_status_() + , usernames_() +{} + +user::user(int32 flags_, bool self_, bool contact_, bool mutual_contact_, bool deleted_, bool bot_, bool bot_chat_history_, bool bot_nochats_, bool verified_, bool restricted_, bool min_, bool bot_inline_geo_, bool support_, bool scam_, bool apply_min_photo_, bool fake_, bool bot_attach_menu_, bool premium_, bool attach_menu_enabled_, int32 flags2_, int64 id_, int64 access_hash_, string const &first_name_, string const &last_name_, string const &username_, string const &phone_, object_ptr<UserProfilePhoto> &&photo_, object_ptr<UserStatus> &&status_, int32 bot_info_version_, array<object_ptr<restrictionReason>> &&restriction_reason_, string const &bot_inline_placeholder_, string const &lang_code_, object_ptr<EmojiStatus> &&emoji_status_, array<object_ptr<username>> &&usernames_) + : flags_(flags_) + , self_(self_) + , contact_(contact_) + , mutual_contact_(mutual_contact_) + , deleted_(deleted_) + , bot_(bot_) + , bot_chat_history_(bot_chat_history_) + , bot_nochats_(bot_nochats_) + , verified_(verified_) + , restricted_(restricted_) + , min_(min_) + , bot_inline_geo_(bot_inline_geo_) + , support_(support_) + , scam_(scam_) + , apply_min_photo_(apply_min_photo_) + , fake_(fake_) + , bot_attach_menu_(bot_attach_menu_) + , premium_(premium_) + , attach_menu_enabled_(attach_menu_enabled_) + , flags2_(flags2_) + , id_(id_) + , access_hash_(access_hash_) + , first_name_(first_name_) + , last_name_(last_name_) + , username_(username_) + , phone_(phone_) + , photo_(std::move(photo_)) + , status_(std::move(status_)) + , bot_info_version_(bot_info_version_) + , restriction_reason_(std::move(restriction_reason_)) + , bot_inline_placeholder_(bot_inline_placeholder_) + , lang_code_(lang_code_) + , emoji_status_(std::move(emoji_status_)) + , usernames_(std::move(usernames_)) +{} + +const std::int32_t user::ID; + +object_ptr<User> user::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<user> res = make_tl_object<user>(); + int32 var0; + int32 var1; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1024) { res->self_ = TlFetchTrue::parse(p); } + if (var0 & 2048) { res->contact_ = TlFetchTrue::parse(p); } + if (var0 & 4096) { res->mutual_contact_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->deleted_ = TlFetchTrue::parse(p); } + if (var0 & 16384) { res->bot_ = TlFetchTrue::parse(p); } + if (var0 & 32768) { res->bot_chat_history_ = TlFetchTrue::parse(p); } + if (var0 & 65536) { res->bot_nochats_ = TlFetchTrue::parse(p); } + if (var0 & 131072) { res->verified_ = TlFetchTrue::parse(p); } + if (var0 & 262144) { res->restricted_ = TlFetchTrue::parse(p); } + if (var0 & 1048576) { res->min_ = TlFetchTrue::parse(p); } + if (var0 & 2097152) { res->bot_inline_geo_ = TlFetchTrue::parse(p); } + if (var0 & 8388608) { res->support_ = TlFetchTrue::parse(p); } + if (var0 & 16777216) { res->scam_ = TlFetchTrue::parse(p); } + if (var0 & 33554432) { res->apply_min_photo_ = TlFetchTrue::parse(p); } + if (var0 & 67108864) { res->fake_ = TlFetchTrue::parse(p); } + if (var0 & 134217728) { res->bot_attach_menu_ = TlFetchTrue::parse(p); } + if (var0 & 268435456) { res->premium_ = TlFetchTrue::parse(p); } + if (var0 & 536870912) { res->attach_menu_enabled_ = TlFetchTrue::parse(p); } + if ((var1 = res->flags2_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchLong::parse(p); + if (var0 & 1) { res->access_hash_ = TlFetchLong::parse(p); } + if (var0 & 2) { res->first_name_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->last_name_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->username_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->phone_ = TlFetchString<string>::parse(p); } + if (var0 & 32) { res->photo_ = TlFetchObject<UserProfilePhoto>::parse(p); } + if (var0 & 64) { res->status_ = TlFetchObject<UserStatus>::parse(p); } + if (var0 & 16384) { res->bot_info_version_ = TlFetchInt::parse(p); } + if (var0 & 262144) { res->restriction_reason_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<restrictionReason>, -797791052>>, 481674261>::parse(p); } + if (var0 & 524288) { res->bot_inline_placeholder_ = TlFetchString<string>::parse(p); } + if (var0 & 4194304) { res->lang_code_ = TlFetchString<string>::parse(p); } + if (var0 & 1073741824) { res->emoji_status_ = TlFetchObject<EmojiStatus>::parse(p); } + if (var1 & 1) { res->usernames_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<username>, -1274595769>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void user::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "user"); + int32 var0; + int32 var1; + s.store_field("flags", (var0 = flags_)); + s.store_field("flags2", (var1 = flags2_)); + s.store_field("id", id_); + if (var0 & 1) { s.store_field("access_hash", access_hash_); } + if (var0 & 2) { s.store_field("first_name", first_name_); } + if (var0 & 4) { s.store_field("last_name", last_name_); } + if (var0 & 8) { s.store_field("username", username_); } + if (var0 & 16) { s.store_field("phone", phone_); } + if (var0 & 32) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + if (var0 & 64) { s.store_object_field("status", static_cast<const BaseObject *>(status_.get())); } + if (var0 & 16384) { s.store_field("bot_info_version", bot_info_version_); } + if (var0 & 262144) { { s.store_vector_begin("restriction_reason", restriction_reason_.size()); for (const auto &_value : restriction_reason_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 524288) { s.store_field("bot_inline_placeholder", bot_inline_placeholder_); } + if (var0 & 4194304) { s.store_field("lang_code", lang_code_); } + if (var0 & 1073741824) { s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get())); } + if (var1 & 1) { { s.store_vector_begin("usernames", usernames_.size()); for (const auto &_value : usernames_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +userFull::userFull() + : flags_() + , blocked_() + , phone_calls_available_() + , phone_calls_private_() + , can_pin_message_() + , has_scheduled_() + , video_calls_available_() + , voice_messages_forbidden_() + , id_() + , about_() + , settings_() + , profile_photo_() + , notify_settings_() + , bot_info_() + , pinned_msg_id_() + , common_chats_count_() + , folder_id_() + , ttl_period_() + , theme_emoticon_() + , private_forward_name_() + , bot_group_admin_rights_() + , bot_broadcast_admin_rights_() + , premium_gifts_() +{} + +const std::int32_t userFull::ID; + +object_ptr<userFull> userFull::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<userFull> res = make_tl_object<userFull>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->blocked_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->phone_calls_available_ = TlFetchTrue::parse(p); } + if (var0 & 32) { res->phone_calls_private_ = TlFetchTrue::parse(p); } + if (var0 & 128) { res->can_pin_message_ = TlFetchTrue::parse(p); } + if (var0 & 4096) { res->has_scheduled_ = TlFetchTrue::parse(p); } + if (var0 & 8192) { res->video_calls_available_ = TlFetchTrue::parse(p); } + if (var0 & 1048576) { res->voice_messages_forbidden_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchLong::parse(p); + if (var0 & 2) { res->about_ = TlFetchString<string>::parse(p); } + res->settings_ = TlFetchBoxed<TlFetchObject<peerSettings>, -1525149427>::parse(p); + if (var0 & 4) { res->profile_photo_ = TlFetchObject<Photo>::parse(p); } + res->notify_settings_ = TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p); + if (var0 & 8) { res->bot_info_ = TlFetchBoxed<TlFetchObject<botInfo>, -1892676777>::parse(p); } + if (var0 & 64) { res->pinned_msg_id_ = TlFetchInt::parse(p); } + res->common_chats_count_ = TlFetchInt::parse(p); + if (var0 & 2048) { res->folder_id_ = TlFetchInt::parse(p); } + if (var0 & 16384) { res->ttl_period_ = TlFetchInt::parse(p); } + if (var0 & 32768) { res->theme_emoticon_ = TlFetchString<string>::parse(p); } + if (var0 & 65536) { res->private_forward_name_ = TlFetchString<string>::parse(p); } + if (var0 & 131072) { res->bot_group_admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); } + if (var0 & 262144) { res->bot_broadcast_admin_rights_ = TlFetchBoxed<TlFetchObject<chatAdminRights>, 1605510357>::parse(p); } + if (var0 & 524288) { res->premium_gifts_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<premiumGiftOption>, 1958953753>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void userFull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userFull"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + if (var0 & 2) { s.store_field("about", about_); } + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + if (var0 & 4) { s.store_object_field("profile_photo", static_cast<const BaseObject *>(profile_photo_.get())); } + s.store_object_field("notify_settings", static_cast<const BaseObject *>(notify_settings_.get())); + if (var0 & 8) { s.store_object_field("bot_info", static_cast<const BaseObject *>(bot_info_.get())); } + if (var0 & 64) { s.store_field("pinned_msg_id", pinned_msg_id_); } + s.store_field("common_chats_count", common_chats_count_); + if (var0 & 2048) { s.store_field("folder_id", folder_id_); } + if (var0 & 16384) { s.store_field("ttl_period", ttl_period_); } + if (var0 & 32768) { s.store_field("theme_emoticon", theme_emoticon_); } + if (var0 & 65536) { s.store_field("private_forward_name", private_forward_name_); } + if (var0 & 131072) { s.store_object_field("bot_group_admin_rights", static_cast<const BaseObject *>(bot_group_admin_rights_.get())); } + if (var0 & 262144) { s.store_object_field("bot_broadcast_admin_rights", static_cast<const BaseObject *>(bot_broadcast_admin_rights_.get())); } + if (var0 & 524288) { { s.store_vector_begin("premium_gifts", premium_gifts_.size()); for (const auto &_value : premium_gifts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +object_ptr<UserProfilePhoto> UserProfilePhoto::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case userProfilePhotoEmpty::ID: + return userProfilePhotoEmpty::fetch(p); + case userProfilePhoto::ID: + return userProfilePhoto::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t userProfilePhotoEmpty::ID; + +object_ptr<UserProfilePhoto> userProfilePhotoEmpty::fetch(TlBufferParser &p) { + return make_tl_object<userProfilePhotoEmpty>(); +} + +void userProfilePhotoEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userProfilePhotoEmpty"); + s.store_class_end(); + } +} + +userProfilePhoto::userProfilePhoto() + : flags_() + , has_video_() + , photo_id_() + , stripped_thumb_() + , dc_id_() +{} + +userProfilePhoto::userProfilePhoto(int32 flags_, bool has_video_, int64 photo_id_, bytes &&stripped_thumb_, int32 dc_id_) + : flags_(flags_) + , has_video_(has_video_) + , photo_id_(photo_id_) + , stripped_thumb_(std::move(stripped_thumb_)) + , dc_id_(dc_id_) +{} + +const std::int32_t userProfilePhoto::ID; + +object_ptr<UserProfilePhoto> userProfilePhoto::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<userProfilePhoto> res = make_tl_object<userProfilePhoto>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->has_video_ = TlFetchTrue::parse(p); } + res->photo_id_ = TlFetchLong::parse(p); + if (var0 & 2) { res->stripped_thumb_ = TlFetchBytes<bytes>::parse(p); } + res->dc_id_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void userProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userProfilePhoto"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("photo_id", photo_id_); + if (var0 & 2) { s.store_bytes_field("stripped_thumb", stripped_thumb_); } + s.store_field("dc_id", dc_id_); + s.store_class_end(); + } +} + +object_ptr<UserStatus> UserStatus::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case userStatusEmpty::ID: + return userStatusEmpty::fetch(p); + case userStatusOnline::ID: + return userStatusOnline::fetch(p); + case userStatusOffline::ID: + return userStatusOffline::fetch(p); + case userStatusRecently::ID: + return userStatusRecently::fetch(p); + case userStatusLastWeek::ID: + return userStatusLastWeek::fetch(p); + case userStatusLastMonth::ID: + return userStatusLastMonth::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t userStatusEmpty::ID; + +object_ptr<UserStatus> userStatusEmpty::fetch(TlBufferParser &p) { + return make_tl_object<userStatusEmpty>(); +} + +void userStatusEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusEmpty"); + s.store_class_end(); + } +} + +const std::int32_t userStatusOnline::ID; + +object_ptr<UserStatus> userStatusOnline::fetch(TlBufferParser &p) { + return make_tl_object<userStatusOnline>(p); +} + +userStatusOnline::userStatusOnline(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : expires_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void userStatusOnline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusOnline"); + s.store_field("expires", expires_); + s.store_class_end(); + } +} + +const std::int32_t userStatusOffline::ID; + +object_ptr<UserStatus> userStatusOffline::fetch(TlBufferParser &p) { + return make_tl_object<userStatusOffline>(p); +} + +userStatusOffline::userStatusOffline(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : was_online_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void userStatusOffline::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusOffline"); + s.store_field("was_online", was_online_); + s.store_class_end(); + } +} + +const std::int32_t userStatusRecently::ID; + +object_ptr<UserStatus> userStatusRecently::fetch(TlBufferParser &p) { + return make_tl_object<userStatusRecently>(); +} + +void userStatusRecently::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusRecently"); + s.store_class_end(); + } +} + +const std::int32_t userStatusLastWeek::ID; + +object_ptr<UserStatus> userStatusLastWeek::fetch(TlBufferParser &p) { + return make_tl_object<userStatusLastWeek>(); +} + +void userStatusLastWeek::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusLastWeek"); + s.store_class_end(); + } +} + +const std::int32_t userStatusLastMonth::ID; + +object_ptr<UserStatus> userStatusLastMonth::fetch(TlBufferParser &p) { + return make_tl_object<userStatusLastMonth>(); +} + +void userStatusLastMonth::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "userStatusLastMonth"); + s.store_class_end(); + } +} + +username::username() + : flags_() + , editable_() + , active_() + , username_() +{} + +const std::int32_t username::ID; + +object_ptr<username> username::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<username> res = make_tl_object<username>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->editable_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->active_ = TlFetchTrue::parse(p); } + res->username_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void username::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "username"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("username", username_); + s.store_class_end(); + } +} + +videoSize::videoSize() + : flags_() + , type_() + , w_() + , h_() + , size_() + , video_start_ts_() +{} + +const std::int32_t videoSize::ID; + +object_ptr<videoSize> videoSize::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<videoSize> res = make_tl_object<videoSize>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->type_ = TlFetchString<string>::parse(p); + res->w_ = TlFetchInt::parse(p); + res->h_ = TlFetchInt::parse(p); + res->size_ = TlFetchInt::parse(p); + if (var0 & 1) { res->video_start_ts_ = TlFetchDouble::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void videoSize::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "videoSize"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("type", type_); + s.store_field("w", w_); + s.store_field("h", h_); + s.store_field("size", size_); + if (var0 & 1) { s.store_field("video_start_ts", video_start_ts_); } + s.store_class_end(); + } +} + +object_ptr<WallPaper> WallPaper::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case wallPaper::ID: + return wallPaper::fetch(p); + case wallPaperNoFile::ID: + return wallPaperNoFile::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +wallPaper::wallPaper() + : id_() + , flags_() + , creator_() + , default_() + , pattern_() + , dark_() + , access_hash_() + , slug_() + , document_() + , settings_() +{} + +const std::int32_t wallPaper::ID; + +object_ptr<WallPaper> wallPaper::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<wallPaper> res = make_tl_object<wallPaper>(); + int32 var0; + res->id_ = TlFetchLong::parse(p); + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->creator_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->default_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->pattern_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->dark_ = TlFetchTrue::parse(p); } + res->access_hash_ = TlFetchLong::parse(p); + res->slug_ = TlFetchString<string>::parse(p); + res->document_ = TlFetchObject<Document>::parse(p); + if (var0 & 4) { res->settings_ = TlFetchBoxed<TlFetchObject<wallPaperSettings>, 499236004>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void wallPaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "wallPaper"); + int32 var0; + s.store_field("id", id_); + s.store_field("flags", (var0 = flags_)); + s.store_field("access_hash", access_hash_); + s.store_field("slug", slug_); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + if (var0 & 4) { s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); } + s.store_class_end(); + } +} + +wallPaperNoFile::wallPaperNoFile() + : id_() + , flags_() + , default_() + , dark_() + , settings_() +{} + +const std::int32_t wallPaperNoFile::ID; + +object_ptr<WallPaper> wallPaperNoFile::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<wallPaperNoFile> res = make_tl_object<wallPaperNoFile>(); + int32 var0; + res->id_ = TlFetchLong::parse(p); + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->default_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->dark_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->settings_ = TlFetchBoxed<TlFetchObject<wallPaperSettings>, 499236004>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void wallPaperNoFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "wallPaperNoFile"); + int32 var0; + s.store_field("id", id_); + s.store_field("flags", (var0 = flags_)); + if (var0 & 4) { s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); } + s.store_class_end(); + } +} + +wallPaperSettings::wallPaperSettings() + : flags_() + , blur_() + , motion_() + , background_color_() + , second_background_color_() + , third_background_color_() + , fourth_background_color_() + , intensity_() + , rotation_() +{} + +wallPaperSettings::wallPaperSettings(int32 flags_, bool blur_, bool motion_, int32 background_color_, int32 second_background_color_, int32 third_background_color_, int32 fourth_background_color_, int32 intensity_, int32 rotation_) + : flags_(flags_) + , blur_(blur_) + , motion_(motion_) + , background_color_(background_color_) + , second_background_color_(second_background_color_) + , third_background_color_(third_background_color_) + , fourth_background_color_(fourth_background_color_) + , intensity_(intensity_) + , rotation_(rotation_) +{} + +const std::int32_t wallPaperSettings::ID; + +object_ptr<wallPaperSettings> wallPaperSettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<wallPaperSettings> res = make_tl_object<wallPaperSettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->blur_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->motion_ = TlFetchTrue::parse(p); } + if (var0 & 1) { res->background_color_ = TlFetchInt::parse(p); } + if (var0 & 16) { res->second_background_color_ = TlFetchInt::parse(p); } + if (var0 & 32) { res->third_background_color_ = TlFetchInt::parse(p); } + if (var0 & 64) { res->fourth_background_color_ = TlFetchInt::parse(p); } + if (var0 & 8) { res->intensity_ = TlFetchInt::parse(p); } + if (var0 & 16) { res->rotation_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void wallPaperSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBinary::store(background_color_, s); } + if (var0 & 16) { TlStoreBinary::store(second_background_color_, s); } + if (var0 & 32) { TlStoreBinary::store(third_background_color_, s); } + if (var0 & 64) { TlStoreBinary::store(fourth_background_color_, s); } + if (var0 & 8) { TlStoreBinary::store(intensity_, s); } + if (var0 & 16) { TlStoreBinary::store(rotation_, s); } +} + +void wallPaperSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBinary::store(background_color_, s); } + if (var0 & 16) { TlStoreBinary::store(second_background_color_, s); } + if (var0 & 32) { TlStoreBinary::store(third_background_color_, s); } + if (var0 & 64) { TlStoreBinary::store(fourth_background_color_, s); } + if (var0 & 8) { TlStoreBinary::store(intensity_, s); } + if (var0 & 16) { TlStoreBinary::store(rotation_, s); } +} + +void wallPaperSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "wallPaperSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("background_color", background_color_); } + if (var0 & 16) { s.store_field("second_background_color", second_background_color_); } + if (var0 & 32) { s.store_field("third_background_color", third_background_color_); } + if (var0 & 64) { s.store_field("fourth_background_color", fourth_background_color_); } + if (var0 & 8) { s.store_field("intensity", intensity_); } + if (var0 & 16) { s.store_field("rotation", rotation_); } + s.store_class_end(); + } +} + +const std::int32_t webAuthorization::ID; + +object_ptr<webAuthorization> webAuthorization::fetch(TlBufferParser &p) { + return make_tl_object<webAuthorization>(p); +} + +webAuthorization::webAuthorization(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , bot_id_(TlFetchLong::parse(p)) + , domain_(TlFetchString<string>::parse(p)) + , browser_(TlFetchString<string>::parse(p)) + , platform_(TlFetchString<string>::parse(p)) + , date_created_(TlFetchInt::parse(p)) + , date_active_(TlFetchInt::parse(p)) + , ip_(TlFetchString<string>::parse(p)) + , region_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void webAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webAuthorization"); + s.store_field("hash", hash_); + s.store_field("bot_id", bot_id_); + s.store_field("domain", domain_); + s.store_field("browser", browser_); + s.store_field("platform", platform_); + s.store_field("date_created", date_created_); + s.store_field("date_active", date_active_); + s.store_field("ip", ip_); + s.store_field("region", region_); + s.store_class_end(); + } +} + +object_ptr<WebDocument> WebDocument::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case webDocument::ID: + return webDocument::fetch(p); + case webDocumentNoProxy::ID: + return webDocumentNoProxy::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t webDocument::ID; + +object_ptr<WebDocument> webDocument::fetch(TlBufferParser &p) { + return make_tl_object<webDocument>(p); +} + +webDocument::webDocument(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , access_hash_(TlFetchLong::parse(p)) + , size_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p)) +#undef FAIL +{} + +void webDocument::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webDocument"); + s.store_field("url", url_); + s.store_field("access_hash", access_hash_); + s.store_field("size", size_); + s.store_field("mime_type", mime_type_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t webDocumentNoProxy::ID; + +object_ptr<WebDocument> webDocumentNoProxy::fetch(TlBufferParser &p) { + return make_tl_object<webDocumentNoProxy>(p); +} + +webDocumentNoProxy::webDocumentNoProxy(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , size_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , attributes_(TlFetchBoxed<TlFetchVector<TlFetchObject<DocumentAttribute>>, 481674261>::parse(p)) +#undef FAIL +{} + +void webDocumentNoProxy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webDocumentNoProxy"); + s.store_field("url", url_); + s.store_field("size", size_); + s.store_field("mime_type", mime_type_); + { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<WebPage> WebPage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case webPageEmpty::ID: + return webPageEmpty::fetch(p); + case webPagePending::ID: + return webPagePending::fetch(p); + case webPage::ID: + return webPage::fetch(p); + case webPageNotModified::ID: + return webPageNotModified::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t webPageEmpty::ID; + +object_ptr<WebPage> webPageEmpty::fetch(TlBufferParser &p) { + return make_tl_object<webPageEmpty>(p); +} + +webPageEmpty::webPageEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void webPageEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webPageEmpty"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +const std::int32_t webPagePending::ID; + +object_ptr<WebPage> webPagePending::fetch(TlBufferParser &p) { + return make_tl_object<webPagePending>(p); +} + +webPagePending::webPagePending(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void webPagePending::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webPagePending"); + s.store_field("id", id_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +webPage::webPage() + : flags_() + , id_() + , url_() + , display_url_() + , hash_() + , type_() + , site_name_() + , title_() + , description_() + , photo_() + , embed_url_() + , embed_type_() + , embed_width_() + , embed_height_() + , duration_() + , author_() + , document_() + , cached_page_() + , attributes_() +{} + +const std::int32_t webPage::ID; + +object_ptr<WebPage> webPage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<webPage> res = make_tl_object<webPage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->id_ = TlFetchLong::parse(p); + res->url_ = TlFetchString<string>::parse(p); + res->display_url_ = TlFetchString<string>::parse(p); + res->hash_ = TlFetchInt::parse(p); + if (var0 & 1) { res->type_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->site_name_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->title_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->description_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->photo_ = TlFetchObject<Photo>::parse(p); } + if (var0 & 32) { res->embed_url_ = TlFetchString<string>::parse(p); } + if (var0 & 32) { res->embed_type_ = TlFetchString<string>::parse(p); } + if (var0 & 64) { res->embed_width_ = TlFetchInt::parse(p); } + if (var0 & 64) { res->embed_height_ = TlFetchInt::parse(p); } + if (var0 & 128) { res->duration_ = TlFetchInt::parse(p); } + if (var0 & 256) { res->author_ = TlFetchString<string>::parse(p); } + if (var0 & 512) { res->document_ = TlFetchObject<Document>::parse(p); } + if (var0 & 1024) { res->cached_page_ = TlFetchBoxed<TlFetchObject<page>, -1738178803>::parse(p); } + if (var0 & 4096) { res->attributes_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<webPageAttributeTheme>, 1421174295>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void webPage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webPage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("url", url_); + s.store_field("display_url", display_url_); + s.store_field("hash", hash_); + if (var0 & 1) { s.store_field("type", type_); } + if (var0 & 2) { s.store_field("site_name", site_name_); } + if (var0 & 4) { s.store_field("title", title_); } + if (var0 & 8) { s.store_field("description", description_); } + if (var0 & 16) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + if (var0 & 32) { s.store_field("embed_url", embed_url_); } + if (var0 & 32) { s.store_field("embed_type", embed_type_); } + if (var0 & 64) { s.store_field("embed_width", embed_width_); } + if (var0 & 64) { s.store_field("embed_height", embed_height_); } + if (var0 & 128) { s.store_field("duration", duration_); } + if (var0 & 256) { s.store_field("author", author_); } + if (var0 & 512) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 1024) { s.store_object_field("cached_page", static_cast<const BaseObject *>(cached_page_.get())); } + if (var0 & 4096) { { s.store_vector_begin("attributes", attributes_.size()); for (const auto &_value : attributes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +webPageNotModified::webPageNotModified() + : flags_() + , cached_page_views_() +{} + +const std::int32_t webPageNotModified::ID; + +object_ptr<WebPage> webPageNotModified::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<webPageNotModified> res = make_tl_object<webPageNotModified>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->cached_page_views_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void webPageNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webPageNotModified"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("cached_page_views", cached_page_views_); } + s.store_class_end(); + } +} + +webPageAttributeTheme::webPageAttributeTheme() + : flags_() + , documents_() + , settings_() +{} + +const std::int32_t webPageAttributeTheme::ID; + +object_ptr<webPageAttributeTheme> webPageAttributeTheme::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<webPageAttributeTheme> res = make_tl_object<webPageAttributeTheme>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->documents_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p); } + if (var0 & 2) { res->settings_ = TlFetchBoxed<TlFetchObject<themeSettings>, -94849324>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void webPageAttributeTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webPageAttributeTheme"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 2) { s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); } + s.store_class_end(); + } +} + +webViewMessageSent::webViewMessageSent() + : flags_() + , msg_id_() +{} + +const std::int32_t webViewMessageSent::ID; + +object_ptr<webViewMessageSent> webViewMessageSent::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<webViewMessageSent> res = make_tl_object<webViewMessageSent>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->msg_id_ = TlFetchObject<InputBotInlineMessageID>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void webViewMessageSent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webViewMessageSent"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("msg_id", static_cast<const BaseObject *>(msg_id_.get())); } + s.store_class_end(); + } +} + +const std::int32_t webViewResultUrl::ID; + +object_ptr<webViewResultUrl> webViewResultUrl::fetch(TlBufferParser &p) { + return make_tl_object<webViewResultUrl>(p); +} + +webViewResultUrl::webViewResultUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : query_id_(TlFetchLong::parse(p)) + , url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void webViewResultUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "webViewResultUrl"); + s.store_field("query_id", query_id_); + s.store_field("url", url_); + s.store_class_end(); + } +} + +account_authorizationForm::account_authorizationForm() + : flags_() + , required_types_() + , values_() + , errors_() + , users_() + , privacy_policy_url_() +{} + +const std::int32_t account_authorizationForm::ID; + +object_ptr<account_authorizationForm> account_authorizationForm::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<account_authorizationForm> res = make_tl_object<account_authorizationForm>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->required_types_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureRequiredType>>, 481674261>::parse(p); + res->values_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p); + res->errors_ = TlFetchBoxed<TlFetchVector<TlFetchObject<SecureValueError>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (var0 & 1) { res->privacy_policy_url_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void account_authorizationForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.authorizationForm"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("required_types", required_types_.size()); for (const auto &_value : required_types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("values", values_.size()); for (const auto &_value : values_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 1) { s.store_field("privacy_policy_url", privacy_policy_url_); } + s.store_class_end(); + } +} + +const std::int32_t account_authorizations::ID; + +object_ptr<account_authorizations> account_authorizations::fetch(TlBufferParser &p) { + return make_tl_object<account_authorizations>(p); +} + +account_authorizations::account_authorizations(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : authorization_ttl_days_(TlFetchInt::parse(p)) + , authorizations_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<authorization>, -1392388579>>, 481674261>::parse(p)) +#undef FAIL +{} + +void account_authorizations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.authorizations"); + s.store_field("authorization_ttl_days", authorization_ttl_days_); + { s.store_vector_begin("authorizations", authorizations_.size()); for (const auto &_value : authorizations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t account_autoDownloadSettings::ID; + +object_ptr<account_autoDownloadSettings> account_autoDownloadSettings::fetch(TlBufferParser &p) { + return make_tl_object<account_autoDownloadSettings>(p); +} + +account_autoDownloadSettings::account_autoDownloadSettings(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : low_(TlFetchBoxed<TlFetchObject<autoDownloadSettings>, -1896171181>::parse(p)) + , medium_(TlFetchBoxed<TlFetchObject<autoDownloadSettings>, -1896171181>::parse(p)) + , high_(TlFetchBoxed<TlFetchObject<autoDownloadSettings>, -1896171181>::parse(p)) +#undef FAIL +{} + +void account_autoDownloadSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.autoDownloadSettings"); + s.store_object_field("low", static_cast<const BaseObject *>(low_.get())); + s.store_object_field("medium", static_cast<const BaseObject *>(medium_.get())); + s.store_object_field("high", static_cast<const BaseObject *>(high_.get())); + s.store_class_end(); + } +} + +account_contentSettings::account_contentSettings() + : flags_() + , sensitive_enabled_() + , sensitive_can_change_() +{} + +const std::int32_t account_contentSettings::ID; + +object_ptr<account_contentSettings> account_contentSettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<account_contentSettings> res = make_tl_object<account_contentSettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->sensitive_enabled_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->sensitive_can_change_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void account_contentSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.contentSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +object_ptr<account_EmailVerified> account_EmailVerified::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case account_emailVerified::ID: + return account_emailVerified::fetch(p); + case account_emailVerifiedLogin::ID: + return account_emailVerifiedLogin::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t account_emailVerified::ID; + +object_ptr<account_EmailVerified> account_emailVerified::fetch(TlBufferParser &p) { + return make_tl_object<account_emailVerified>(p); +} + +account_emailVerified::account_emailVerified(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : email_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void account_emailVerified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.emailVerified"); + s.store_field("email", email_); + s.store_class_end(); + } +} + +const std::int32_t account_emailVerifiedLogin::ID; + +object_ptr<account_EmailVerified> account_emailVerifiedLogin::fetch(TlBufferParser &p) { + return make_tl_object<account_emailVerifiedLogin>(p); +} + +account_emailVerifiedLogin::account_emailVerifiedLogin(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : email_(TlFetchString<string>::parse(p)) + , sent_code_(TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p)) +#undef FAIL +{} + +void account_emailVerifiedLogin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.emailVerifiedLogin"); + s.store_field("email", email_); + s.store_object_field("sent_code", static_cast<const BaseObject *>(sent_code_.get())); + s.store_class_end(); + } +} + +object_ptr<account_EmojiStatuses> account_EmojiStatuses::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case account_emojiStatusesNotModified::ID: + return account_emojiStatusesNotModified::fetch(p); + case account_emojiStatuses::ID: + return account_emojiStatuses::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t account_emojiStatusesNotModified::ID; + +object_ptr<account_EmojiStatuses> account_emojiStatusesNotModified::fetch(TlBufferParser &p) { + return make_tl_object<account_emojiStatusesNotModified>(); +} + +void account_emojiStatusesNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.emojiStatusesNotModified"); + s.store_class_end(); + } +} + +const std::int32_t account_emojiStatuses::ID; + +object_ptr<account_EmojiStatuses> account_emojiStatuses::fetch(TlBufferParser &p) { + return make_tl_object<account_emojiStatuses>(p); +} + +account_emojiStatuses::account_emojiStatuses(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , statuses_(TlFetchBoxed<TlFetchVector<TlFetchObject<EmojiStatus>>, 481674261>::parse(p)) +#undef FAIL +{} + +void account_emojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.emojiStatuses"); + s.store_field("hash", hash_); + { s.store_vector_begin("statuses", statuses_.size()); for (const auto &_value : statuses_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_password::account_password() + : flags_() + , has_recovery_() + , has_secure_values_() + , has_password_() + , current_algo_() + , srp_B_() + , srp_id_() + , hint_() + , email_unconfirmed_pattern_() + , new_algo_() + , new_secure_algo_() + , secure_random_() + , pending_reset_date_() + , login_email_pattern_() +{} + +const std::int32_t account_password::ID; + +object_ptr<account_password> account_password::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<account_password> res = make_tl_object<account_password>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->has_recovery_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->has_secure_values_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->has_password_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->current_algo_ = TlFetchObject<PasswordKdfAlgo>::parse(p); } + if (var0 & 4) { res->srp_B_ = TlFetchBytes<bytes>::parse(p); } + if (var0 & 4) { res->srp_id_ = TlFetchLong::parse(p); } + if (var0 & 8) { res->hint_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->email_unconfirmed_pattern_ = TlFetchString<string>::parse(p); } + res->new_algo_ = TlFetchObject<PasswordKdfAlgo>::parse(p); + res->new_secure_algo_ = TlFetchObject<SecurePasswordKdfAlgo>::parse(p); + res->secure_random_ = TlFetchBytes<bytes>::parse(p); + if (var0 & 32) { res->pending_reset_date_ = TlFetchInt::parse(p); } + if (var0 & 64) { res->login_email_pattern_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void account_password::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.password"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 4) { s.store_object_field("current_algo", static_cast<const BaseObject *>(current_algo_.get())); } + if (var0 & 4) { s.store_bytes_field("srp_B", srp_B_); } + if (var0 & 4) { s.store_field("srp_id", srp_id_); } + if (var0 & 8) { s.store_field("hint", hint_); } + if (var0 & 16) { s.store_field("email_unconfirmed_pattern", email_unconfirmed_pattern_); } + s.store_object_field("new_algo", static_cast<const BaseObject *>(new_algo_.get())); + s.store_object_field("new_secure_algo", static_cast<const BaseObject *>(new_secure_algo_.get())); + s.store_bytes_field("secure_random", secure_random_); + if (var0 & 32) { s.store_field("pending_reset_date", pending_reset_date_); } + if (var0 & 64) { s.store_field("login_email_pattern", login_email_pattern_); } + s.store_class_end(); + } +} + +account_passwordInputSettings::account_passwordInputSettings(int32 flags_, object_ptr<PasswordKdfAlgo> &&new_algo_, bytes &&new_password_hash_, string const &hint_, string const &email_, object_ptr<secureSecretSettings> &&new_secure_settings_) + : flags_(flags_) + , new_algo_(std::move(new_algo_)) + , new_password_hash_(std::move(new_password_hash_)) + , hint_(hint_) + , email_(email_) + , new_secure_settings_(std::move(new_secure_settings_)) +{} + +const std::int32_t account_passwordInputSettings::ID; + +void account_passwordInputSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(new_algo_, s); } + if (var0 & 1) { TlStoreString::store(new_password_hash_, s); } + if (var0 & 1) { TlStoreString::store(hint_, s); } + if (var0 & 2) { TlStoreString::store(email_, s); } + if (var0 & 4) { TlStoreBoxed<TlStoreObject, 354925740>::store(new_secure_settings_, s); } +} + +void account_passwordInputSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + int32 var0; + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(new_algo_, s); } + if (var0 & 1) { TlStoreString::store(new_password_hash_, s); } + if (var0 & 1) { TlStoreString::store(hint_, s); } + if (var0 & 2) { TlStoreString::store(email_, s); } + if (var0 & 4) { TlStoreBoxed<TlStoreObject, 354925740>::store(new_secure_settings_, s); } +} + +void account_passwordInputSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.passwordInputSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("new_algo", static_cast<const BaseObject *>(new_algo_.get())); } + if (var0 & 1) { s.store_bytes_field("new_password_hash", new_password_hash_); } + if (var0 & 1) { s.store_field("hint", hint_); } + if (var0 & 2) { s.store_field("email", email_); } + if (var0 & 4) { s.store_object_field("new_secure_settings", static_cast<const BaseObject *>(new_secure_settings_.get())); } + s.store_class_end(); + } +} + +account_passwordSettings::account_passwordSettings() + : flags_() + , email_() + , secure_settings_() +{} + +const std::int32_t account_passwordSettings::ID; + +object_ptr<account_passwordSettings> account_passwordSettings::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<account_passwordSettings> res = make_tl_object<account_passwordSettings>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->email_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->secure_settings_ = TlFetchBoxed<TlFetchObject<secureSecretSettings>, 354925740>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void account_passwordSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.passwordSettings"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("email", email_); } + if (var0 & 2) { s.store_object_field("secure_settings", static_cast<const BaseObject *>(secure_settings_.get())); } + s.store_class_end(); + } +} + +const std::int32_t account_privacyRules::ID; + +object_ptr<account_privacyRules> account_privacyRules::fetch(TlBufferParser &p) { + return make_tl_object<account_privacyRules>(p); +} + +account_privacyRules::account_privacyRules(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : rules_(TlFetchBoxed<TlFetchVector<TlFetchObject<PrivacyRule>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void account_privacyRules::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.privacyRules"); + { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<account_ResetPasswordResult> account_ResetPasswordResult::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case account_resetPasswordFailedWait::ID: + return account_resetPasswordFailedWait::fetch(p); + case account_resetPasswordRequestedWait::ID: + return account_resetPasswordRequestedWait::fetch(p); + case account_resetPasswordOk::ID: + return account_resetPasswordOk::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t account_resetPasswordFailedWait::ID; + +object_ptr<account_ResetPasswordResult> account_resetPasswordFailedWait::fetch(TlBufferParser &p) { + return make_tl_object<account_resetPasswordFailedWait>(p); +} + +account_resetPasswordFailedWait::account_resetPasswordFailedWait(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : retry_date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void account_resetPasswordFailedWait::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetPasswordFailedWait"); + s.store_field("retry_date", retry_date_); + s.store_class_end(); + } +} + +const std::int32_t account_resetPasswordRequestedWait::ID; + +object_ptr<account_ResetPasswordResult> account_resetPasswordRequestedWait::fetch(TlBufferParser &p) { + return make_tl_object<account_resetPasswordRequestedWait>(p); +} + +account_resetPasswordRequestedWait::account_resetPasswordRequestedWait(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : until_date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void account_resetPasswordRequestedWait::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetPasswordRequestedWait"); + s.store_field("until_date", until_date_); + s.store_class_end(); + } +} + +const std::int32_t account_resetPasswordOk::ID; + +object_ptr<account_ResetPasswordResult> account_resetPasswordOk::fetch(TlBufferParser &p) { + return make_tl_object<account_resetPasswordOk>(); +} + +void account_resetPasswordOk::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetPasswordOk"); + s.store_class_end(); + } +} + +object_ptr<account_SavedRingtone> account_SavedRingtone::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case account_savedRingtone::ID: + return account_savedRingtone::fetch(p); + case account_savedRingtoneConverted::ID: + return account_savedRingtoneConverted::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t account_savedRingtone::ID; + +object_ptr<account_SavedRingtone> account_savedRingtone::fetch(TlBufferParser &p) { + return make_tl_object<account_savedRingtone>(); +} + +void account_savedRingtone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.savedRingtone"); + s.store_class_end(); + } +} + +const std::int32_t account_savedRingtoneConverted::ID; + +object_ptr<account_SavedRingtone> account_savedRingtoneConverted::fetch(TlBufferParser &p) { + return make_tl_object<account_savedRingtoneConverted>(p); +} + +account_savedRingtoneConverted::account_savedRingtoneConverted(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : document_(TlFetchObject<Document>::parse(p)) +#undef FAIL +{} + +void account_savedRingtoneConverted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.savedRingtoneConverted"); + s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); + s.store_class_end(); + } +} + +object_ptr<account_SavedRingtones> account_SavedRingtones::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case account_savedRingtonesNotModified::ID: + return account_savedRingtonesNotModified::fetch(p); + case account_savedRingtones::ID: + return account_savedRingtones::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t account_savedRingtonesNotModified::ID; + +object_ptr<account_SavedRingtones> account_savedRingtonesNotModified::fetch(TlBufferParser &p) { + return make_tl_object<account_savedRingtonesNotModified>(); +} + +void account_savedRingtonesNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.savedRingtonesNotModified"); + s.store_class_end(); + } +} + +const std::int32_t account_savedRingtones::ID; + +object_ptr<account_SavedRingtones> account_savedRingtones::fetch(TlBufferParser &p) { + return make_tl_object<account_savedRingtones>(p); +} + +account_savedRingtones::account_savedRingtones(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , ringtones_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) +#undef FAIL +{} + +void account_savedRingtones::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.savedRingtones"); + s.store_field("hash", hash_); + { s.store_vector_begin("ringtones", ringtones_.size()); for (const auto &_value : ringtones_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t account_sentEmailCode::ID; + +object_ptr<account_sentEmailCode> account_sentEmailCode::fetch(TlBufferParser &p) { + return make_tl_object<account_sentEmailCode>(p); +} + +account_sentEmailCode::account_sentEmailCode(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : email_pattern_(TlFetchString<string>::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void account_sentEmailCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.sentEmailCode"); + s.store_field("email_pattern", email_pattern_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +const std::int32_t account_takeout::ID; + +object_ptr<account_takeout> account_takeout::fetch(TlBufferParser &p) { + return make_tl_object<account_takeout>(p); +} + +account_takeout::account_takeout(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void account_takeout::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.takeout"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +object_ptr<account_Themes> account_Themes::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case account_themesNotModified::ID: + return account_themesNotModified::fetch(p); + case account_themes::ID: + return account_themes::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t account_themesNotModified::ID; + +object_ptr<account_Themes> account_themesNotModified::fetch(TlBufferParser &p) { + return make_tl_object<account_themesNotModified>(); +} + +void account_themesNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.themesNotModified"); + s.store_class_end(); + } +} + +const std::int32_t account_themes::ID; + +object_ptr<account_Themes> account_themes::fetch(TlBufferParser &p) { + return make_tl_object<account_themes>(p); +} + +account_themes::account_themes(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , themes_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<theme>, -1609668650>>, 481674261>::parse(p)) +#undef FAIL +{} + +void account_themes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.themes"); + s.store_field("hash", hash_); + { s.store_vector_begin("themes", themes_.size()); for (const auto &_value : themes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t account_tmpPassword::ID; + +object_ptr<account_tmpPassword> account_tmpPassword::fetch(TlBufferParser &p) { + return make_tl_object<account_tmpPassword>(p); +} + +account_tmpPassword::account_tmpPassword(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : tmp_password_(TlFetchBytes<bytes>::parse(p)) + , valid_until_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void account_tmpPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.tmpPassword"); + s.store_bytes_field("tmp_password", tmp_password_); + s.store_field("valid_until", valid_until_); + s.store_class_end(); + } +} + +object_ptr<account_WallPapers> account_WallPapers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case account_wallPapersNotModified::ID: + return account_wallPapersNotModified::fetch(p); + case account_wallPapers::ID: + return account_wallPapers::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t account_wallPapersNotModified::ID; + +object_ptr<account_WallPapers> account_wallPapersNotModified::fetch(TlBufferParser &p) { + return make_tl_object<account_wallPapersNotModified>(); +} + +void account_wallPapersNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.wallPapersNotModified"); + s.store_class_end(); + } +} + +const std::int32_t account_wallPapers::ID; + +object_ptr<account_WallPapers> account_wallPapers::fetch(TlBufferParser &p) { + return make_tl_object<account_wallPapers>(p); +} + +account_wallPapers::account_wallPapers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , wallpapers_(TlFetchBoxed<TlFetchVector<TlFetchObject<WallPaper>>, 481674261>::parse(p)) +#undef FAIL +{} + +void account_wallPapers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.wallPapers"); + s.store_field("hash", hash_); + { s.store_vector_begin("wallpapers", wallpapers_.size()); for (const auto &_value : wallpapers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t account_webAuthorizations::ID; + +object_ptr<account_webAuthorizations> account_webAuthorizations::fetch(TlBufferParser &p) { + return make_tl_object<account_webAuthorizations>(p); +} + +account_webAuthorizations::account_webAuthorizations(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : authorizations_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<webAuthorization>, -1493633966>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void account_webAuthorizations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.webAuthorizations"); + { s.store_vector_begin("authorizations", authorizations_.size()); for (const auto &_value : authorizations_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<auth_Authorization> auth_Authorization::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case auth_authorization::ID: + return auth_authorization::fetch(p); + case auth_authorizationSignUpRequired::ID: + return auth_authorizationSignUpRequired::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +auth_authorization::auth_authorization() + : flags_() + , setup_password_required_() + , otherwise_relogin_days_() + , tmp_sessions_() + , user_() +{} + +const std::int32_t auth_authorization::ID; + +object_ptr<auth_Authorization> auth_authorization::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<auth_authorization> res = make_tl_object<auth_authorization>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->setup_password_required_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->otherwise_relogin_days_ = TlFetchInt::parse(p); } + if (var0 & 1) { res->tmp_sessions_ = TlFetchInt::parse(p); } + res->user_ = TlFetchObject<User>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void auth_authorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.authorization"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_field("otherwise_relogin_days", otherwise_relogin_days_); } + if (var0 & 1) { s.store_field("tmp_sessions", tmp_sessions_); } + s.store_object_field("user", static_cast<const BaseObject *>(user_.get())); + s.store_class_end(); + } +} + +auth_authorizationSignUpRequired::auth_authorizationSignUpRequired() + : flags_() + , terms_of_service_() +{} + +const std::int32_t auth_authorizationSignUpRequired::ID; + +object_ptr<auth_Authorization> auth_authorizationSignUpRequired::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<auth_authorizationSignUpRequired> res = make_tl_object<auth_authorizationSignUpRequired>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->terms_of_service_ = TlFetchBoxed<TlFetchObject<help_termsOfService>, 2013922064>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void auth_authorizationSignUpRequired::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.authorizationSignUpRequired"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get())); } + s.store_class_end(); + } +} + +object_ptr<auth_CodeType> auth_CodeType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case auth_codeTypeSms::ID: + return auth_codeTypeSms::fetch(p); + case auth_codeTypeCall::ID: + return auth_codeTypeCall::fetch(p); + case auth_codeTypeFlashCall::ID: + return auth_codeTypeFlashCall::fetch(p); + case auth_codeTypeMissedCall::ID: + return auth_codeTypeMissedCall::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t auth_codeTypeSms::ID; + +object_ptr<auth_CodeType> auth_codeTypeSms::fetch(TlBufferParser &p) { + return make_tl_object<auth_codeTypeSms>(); +} + +void auth_codeTypeSms::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.codeTypeSms"); + s.store_class_end(); + } +} + +const std::int32_t auth_codeTypeCall::ID; + +object_ptr<auth_CodeType> auth_codeTypeCall::fetch(TlBufferParser &p) { + return make_tl_object<auth_codeTypeCall>(); +} + +void auth_codeTypeCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.codeTypeCall"); + s.store_class_end(); + } +} + +const std::int32_t auth_codeTypeFlashCall::ID; + +object_ptr<auth_CodeType> auth_codeTypeFlashCall::fetch(TlBufferParser &p) { + return make_tl_object<auth_codeTypeFlashCall>(); +} + +void auth_codeTypeFlashCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.codeTypeFlashCall"); + s.store_class_end(); + } +} + +const std::int32_t auth_codeTypeMissedCall::ID; + +object_ptr<auth_CodeType> auth_codeTypeMissedCall::fetch(TlBufferParser &p) { + return make_tl_object<auth_codeTypeMissedCall>(); +} + +void auth_codeTypeMissedCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.codeTypeMissedCall"); + s.store_class_end(); + } +} + +const std::int32_t auth_exportedAuthorization::ID; + +object_ptr<auth_exportedAuthorization> auth_exportedAuthorization::fetch(TlBufferParser &p) { + return make_tl_object<auth_exportedAuthorization>(p); +} + +auth_exportedAuthorization::auth_exportedAuthorization(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void auth_exportedAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.exportedAuthorization"); + s.store_field("id", id_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +auth_loggedOut::auth_loggedOut() + : flags_() + , future_auth_token_() +{} + +const std::int32_t auth_loggedOut::ID; + +object_ptr<auth_loggedOut> auth_loggedOut::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<auth_loggedOut> res = make_tl_object<auth_loggedOut>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->future_auth_token_ = TlFetchBytes<bytes>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void auth_loggedOut::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.loggedOut"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_bytes_field("future_auth_token", future_auth_token_); } + s.store_class_end(); + } +} + +object_ptr<auth_LoginToken> auth_LoginToken::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case auth_loginToken::ID: + return auth_loginToken::fetch(p); + case auth_loginTokenMigrateTo::ID: + return auth_loginTokenMigrateTo::fetch(p); + case auth_loginTokenSuccess::ID: + return auth_loginTokenSuccess::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t auth_loginToken::ID; + +object_ptr<auth_LoginToken> auth_loginToken::fetch(TlBufferParser &p) { + return make_tl_object<auth_loginToken>(p); +} + +auth_loginToken::auth_loginToken(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : expires_(TlFetchInt::parse(p)) + , token_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void auth_loginToken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.loginToken"); + s.store_field("expires", expires_); + s.store_bytes_field("token", token_); + s.store_class_end(); + } +} + +const std::int32_t auth_loginTokenMigrateTo::ID; + +object_ptr<auth_LoginToken> auth_loginTokenMigrateTo::fetch(TlBufferParser &p) { + return make_tl_object<auth_loginTokenMigrateTo>(p); +} + +auth_loginTokenMigrateTo::auth_loginTokenMigrateTo(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dc_id_(TlFetchInt::parse(p)) + , token_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void auth_loginTokenMigrateTo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.loginTokenMigrateTo"); + s.store_field("dc_id", dc_id_); + s.store_bytes_field("token", token_); + s.store_class_end(); + } +} + +const std::int32_t auth_loginTokenSuccess::ID; + +object_ptr<auth_LoginToken> auth_loginTokenSuccess::fetch(TlBufferParser &p) { + return make_tl_object<auth_loginTokenSuccess>(p); +} + +auth_loginTokenSuccess::auth_loginTokenSuccess(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : authorization_(TlFetchObject<auth_Authorization>::parse(p)) +#undef FAIL +{} + +void auth_loginTokenSuccess::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.loginTokenSuccess"); + s.store_object_field("authorization", static_cast<const BaseObject *>(authorization_.get())); + s.store_class_end(); + } +} + +const std::int32_t auth_passwordRecovery::ID; + +object_ptr<auth_passwordRecovery> auth_passwordRecovery::fetch(TlBufferParser &p) { + return make_tl_object<auth_passwordRecovery>(p); +} + +auth_passwordRecovery::auth_passwordRecovery(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : email_pattern_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void auth_passwordRecovery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.passwordRecovery"); + s.store_field("email_pattern", email_pattern_); + s.store_class_end(); + } +} + +auth_sentCode::auth_sentCode() + : flags_() + , type_() + , phone_code_hash_() + , next_type_() + , timeout_() +{} + +const std::int32_t auth_sentCode::ID; + +object_ptr<auth_sentCode> auth_sentCode::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<auth_sentCode> res = make_tl_object<auth_sentCode>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->type_ = TlFetchObject<auth_SentCodeType>::parse(p); + res->phone_code_hash_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->next_type_ = TlFetchObject<auth_CodeType>::parse(p); } + if (var0 & 4) { res->timeout_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void auth_sentCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCode"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("phone_code_hash", phone_code_hash_); + if (var0 & 2) { s.store_object_field("next_type", static_cast<const BaseObject *>(next_type_.get())); } + if (var0 & 4) { s.store_field("timeout", timeout_); } + s.store_class_end(); + } +} + +object_ptr<auth_SentCodeType> auth_SentCodeType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case auth_sentCodeTypeApp::ID: + return auth_sentCodeTypeApp::fetch(p); + case auth_sentCodeTypeSms::ID: + return auth_sentCodeTypeSms::fetch(p); + case auth_sentCodeTypeCall::ID: + return auth_sentCodeTypeCall::fetch(p); + case auth_sentCodeTypeFlashCall::ID: + return auth_sentCodeTypeFlashCall::fetch(p); + case auth_sentCodeTypeMissedCall::ID: + return auth_sentCodeTypeMissedCall::fetch(p); + case auth_sentCodeTypeEmailCode::ID: + return auth_sentCodeTypeEmailCode::fetch(p); + case auth_sentCodeTypeSetUpEmailRequired::ID: + return auth_sentCodeTypeSetUpEmailRequired::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t auth_sentCodeTypeApp::ID; + +object_ptr<auth_SentCodeType> auth_sentCodeTypeApp::fetch(TlBufferParser &p) { + return make_tl_object<auth_sentCodeTypeApp>(p); +} + +auth_sentCodeTypeApp::auth_sentCodeTypeApp(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void auth_sentCodeTypeApp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCodeTypeApp"); + s.store_field("length", length_); + s.store_class_end(); + } +} + +const std::int32_t auth_sentCodeTypeSms::ID; + +object_ptr<auth_SentCodeType> auth_sentCodeTypeSms::fetch(TlBufferParser &p) { + return make_tl_object<auth_sentCodeTypeSms>(p); +} + +auth_sentCodeTypeSms::auth_sentCodeTypeSms(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void auth_sentCodeTypeSms::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCodeTypeSms"); + s.store_field("length", length_); + s.store_class_end(); + } +} + +const std::int32_t auth_sentCodeTypeCall::ID; + +object_ptr<auth_SentCodeType> auth_sentCodeTypeCall::fetch(TlBufferParser &p) { + return make_tl_object<auth_sentCodeTypeCall>(p); +} + +auth_sentCodeTypeCall::auth_sentCodeTypeCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void auth_sentCodeTypeCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCodeTypeCall"); + s.store_field("length", length_); + s.store_class_end(); + } +} + +const std::int32_t auth_sentCodeTypeFlashCall::ID; + +object_ptr<auth_SentCodeType> auth_sentCodeTypeFlashCall::fetch(TlBufferParser &p) { + return make_tl_object<auth_sentCodeTypeFlashCall>(p); +} + +auth_sentCodeTypeFlashCall::auth_sentCodeTypeFlashCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : pattern_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void auth_sentCodeTypeFlashCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCodeTypeFlashCall"); + s.store_field("pattern", pattern_); + s.store_class_end(); + } +} + +const std::int32_t auth_sentCodeTypeMissedCall::ID; + +object_ptr<auth_SentCodeType> auth_sentCodeTypeMissedCall::fetch(TlBufferParser &p) { + return make_tl_object<auth_sentCodeTypeMissedCall>(p); +} + +auth_sentCodeTypeMissedCall::auth_sentCodeTypeMissedCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : prefix_(TlFetchString<string>::parse(p)) + , length_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void auth_sentCodeTypeMissedCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCodeTypeMissedCall"); + s.store_field("prefix", prefix_); + s.store_field("length", length_); + s.store_class_end(); + } +} + +auth_sentCodeTypeEmailCode::auth_sentCodeTypeEmailCode() + : flags_() + , apple_signin_allowed_() + , google_signin_allowed_() + , email_pattern_() + , length_() + , next_phone_login_date_() +{} + +const std::int32_t auth_sentCodeTypeEmailCode::ID; + +object_ptr<auth_SentCodeType> auth_sentCodeTypeEmailCode::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<auth_sentCodeTypeEmailCode> res = make_tl_object<auth_sentCodeTypeEmailCode>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->apple_signin_allowed_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->google_signin_allowed_ = TlFetchTrue::parse(p); } + res->email_pattern_ = TlFetchString<string>::parse(p); + res->length_ = TlFetchInt::parse(p); + if (var0 & 4) { res->next_phone_login_date_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void auth_sentCodeTypeEmailCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCodeTypeEmailCode"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("email_pattern", email_pattern_); + s.store_field("length", length_); + if (var0 & 4) { s.store_field("next_phone_login_date", next_phone_login_date_); } + s.store_class_end(); + } +} + +auth_sentCodeTypeSetUpEmailRequired::auth_sentCodeTypeSetUpEmailRequired() + : flags_() + , apple_signin_allowed_() + , google_signin_allowed_() +{} + +const std::int32_t auth_sentCodeTypeSetUpEmailRequired::ID; + +object_ptr<auth_SentCodeType> auth_sentCodeTypeSetUpEmailRequired::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<auth_sentCodeTypeSetUpEmailRequired> res = make_tl_object<auth_sentCodeTypeSetUpEmailRequired>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->apple_signin_allowed_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->google_signin_allowed_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void auth_sentCodeTypeSetUpEmailRequired::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sentCodeTypeSetUpEmailRequired"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +const std::int32_t channels_adminLogResults::ID; + +object_ptr<channels_adminLogResults> channels_adminLogResults::fetch(TlBufferParser &p) { + return make_tl_object<channels_adminLogResults>(p); +} + +channels_adminLogResults::channels_adminLogResults(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : events_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<channelAdminLogEvent>, 531458253>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void channels_adminLogResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.adminLogResults"); + { s.store_vector_begin("events", events_.size()); for (const auto &_value : events_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t channels_channelParticipant::ID; + +object_ptr<channels_channelParticipant> channels_channelParticipant::fetch(TlBufferParser &p) { + return make_tl_object<channels_channelParticipant>(p); +} + +channels_channelParticipant::channels_channelParticipant(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : participant_(TlFetchObject<ChannelParticipant>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void channels_channelParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.channelParticipant"); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<channels_ChannelParticipants> channels_ChannelParticipants::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case channels_channelParticipants::ID: + return channels_channelParticipants::fetch(p); + case channels_channelParticipantsNotModified::ID: + return channels_channelParticipantsNotModified::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t channels_channelParticipants::ID; + +object_ptr<channels_ChannelParticipants> channels_channelParticipants::fetch(TlBufferParser &p) { + return make_tl_object<channels_channelParticipants>(p); +} + +channels_channelParticipants::channels_channelParticipants(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , participants_(TlFetchBoxed<TlFetchVector<TlFetchObject<ChannelParticipant>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void channels_channelParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.channelParticipants"); + s.store_field("count", count_); + { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t channels_channelParticipantsNotModified::ID; + +object_ptr<channels_ChannelParticipants> channels_channelParticipantsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<channels_channelParticipantsNotModified>(); +} + +void channels_channelParticipantsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.channelParticipantsNotModified"); + s.store_class_end(); + } +} + +const std::int32_t channels_sendAsPeers::ID; + +object_ptr<channels_sendAsPeers> channels_sendAsPeers::fetch(TlBufferParser &p) { + return make_tl_object<channels_sendAsPeers>(p); +} + +channels_sendAsPeers::channels_sendAsPeers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<sendAsPeer>, -1206095820>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void channels_sendAsPeers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.sendAsPeers"); + { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<contacts_Blocked> contacts_Blocked::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case contacts_blocked::ID: + return contacts_blocked::fetch(p); + case contacts_blockedSlice::ID: + return contacts_blockedSlice::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t contacts_blocked::ID; + +object_ptr<contacts_Blocked> contacts_blocked::fetch(TlBufferParser &p) { + return make_tl_object<contacts_blocked>(p); +} + +contacts_blocked::contacts_blocked(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : blocked_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<peerBlocked>, -386039788>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void contacts_blocked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.blocked"); + { s.store_vector_begin("blocked", blocked_.size()); for (const auto &_value : blocked_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t contacts_blockedSlice::ID; + +object_ptr<contacts_Blocked> contacts_blockedSlice::fetch(TlBufferParser &p) { + return make_tl_object<contacts_blockedSlice>(p); +} + +contacts_blockedSlice::contacts_blockedSlice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , blocked_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<peerBlocked>, -386039788>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void contacts_blockedSlice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.blockedSlice"); + s.store_field("count", count_); + { s.store_vector_begin("blocked", blocked_.size()); for (const auto &_value : blocked_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<contacts_Contacts> contacts_Contacts::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case contacts_contactsNotModified::ID: + return contacts_contactsNotModified::fetch(p); + case contacts_contacts::ID: + return contacts_contacts::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t contacts_contactsNotModified::ID; + +object_ptr<contacts_Contacts> contacts_contactsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<contacts_contactsNotModified>(); +} + +void contacts_contactsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.contactsNotModified"); + s.store_class_end(); + } +} + +const std::int32_t contacts_contacts::ID; + +object_ptr<contacts_Contacts> contacts_contacts::fetch(TlBufferParser &p) { + return make_tl_object<contacts_contacts>(p); +} + +contacts_contacts::contacts_contacts(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : contacts_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<contact>, 341499403>>, 481674261>::parse(p)) + , saved_count_(TlFetchInt::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void contacts_contacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.contacts"); + { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("saved_count", saved_count_); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t contacts_found::ID; + +object_ptr<contacts_found> contacts_found::fetch(TlBufferParser &p) { + return make_tl_object<contacts_found>(p); +} + +contacts_found::contacts_found(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : my_results_(TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p)) + , results_(TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void contacts_found::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.found"); + { s.store_vector_begin("my_results", my_results_.size()); for (const auto &_value : my_results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t contacts_importedContacts::ID; + +object_ptr<contacts_importedContacts> contacts_importedContacts::fetch(TlBufferParser &p) { + return make_tl_object<contacts_importedContacts>(p); +} + +contacts_importedContacts::contacts_importedContacts(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : imported_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<importedContact>, -1052885936>>, 481674261>::parse(p)) + , popular_invites_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<popularContact>, 1558266229>>, 481674261>::parse(p)) + , retry_contacts_(TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void contacts_importedContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.importedContacts"); + { s.store_vector_begin("imported", imported_.size()); for (const auto &_value : imported_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("popular_invites", popular_invites_.size()); for (const auto &_value : popular_invites_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("retry_contacts", retry_contacts_.size()); for (const auto &_value : retry_contacts_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t contacts_resolvedPeer::ID; + +object_ptr<contacts_resolvedPeer> contacts_resolvedPeer::fetch(TlBufferParser &p) { + return make_tl_object<contacts_resolvedPeer>(p); +} + +contacts_resolvedPeer::contacts_resolvedPeer(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peer_(TlFetchObject<Peer>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void contacts_resolvedPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.resolvedPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<contacts_TopPeers> contacts_TopPeers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case contacts_topPeersNotModified::ID: + return contacts_topPeersNotModified::fetch(p); + case contacts_topPeers::ID: + return contacts_topPeers::fetch(p); + case contacts_topPeersDisabled::ID: + return contacts_topPeersDisabled::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t contacts_topPeersNotModified::ID; + +object_ptr<contacts_TopPeers> contacts_topPeersNotModified::fetch(TlBufferParser &p) { + return make_tl_object<contacts_topPeersNotModified>(); +} + +void contacts_topPeersNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.topPeersNotModified"); + s.store_class_end(); + } +} + +const std::int32_t contacts_topPeers::ID; + +object_ptr<contacts_TopPeers> contacts_topPeers::fetch(TlBufferParser &p) { + return make_tl_object<contacts_topPeers>(p); +} + +contacts_topPeers::contacts_topPeers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : categories_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<topPeerCategoryPeers>, -75283823>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void contacts_topPeers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.topPeers"); + { s.store_vector_begin("categories", categories_.size()); for (const auto &_value : categories_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t contacts_topPeersDisabled::ID; + +object_ptr<contacts_TopPeers> contacts_topPeersDisabled::fetch(TlBufferParser &p) { + return make_tl_object<contacts_topPeersDisabled>(); +} + +void contacts_topPeersDisabled::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.topPeersDisabled"); + s.store_class_end(); + } +} + +object_ptr<help_AppUpdate> help_AppUpdate::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case help_appUpdate::ID: + return help_appUpdate::fetch(p); + case help_noAppUpdate::ID: + return help_noAppUpdate::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +help_appUpdate::help_appUpdate() + : flags_() + , can_not_skip_() + , id_() + , version_() + , text_() + , entities_() + , document_() + , url_() + , sticker_() +{} + +const std::int32_t help_appUpdate::ID; + +object_ptr<help_AppUpdate> help_appUpdate::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<help_appUpdate> res = make_tl_object<help_appUpdate>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->can_not_skip_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchInt::parse(p); + res->version_ = TlFetchString<string>::parse(p); + res->text_ = TlFetchString<string>::parse(p); + res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); + if (var0 & 2) { res->document_ = TlFetchObject<Document>::parse(p); } + if (var0 & 4) { res->url_ = TlFetchString<string>::parse(p); } + if (var0 & 8) { res->sticker_ = TlFetchObject<Document>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void help_appUpdate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.appUpdate"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + s.store_field("version", version_); + s.store_field("text", text_); + { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 2) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 4) { s.store_field("url", url_); } + if (var0 & 8) { s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); } + s.store_class_end(); + } +} + +const std::int32_t help_noAppUpdate::ID; + +object_ptr<help_AppUpdate> help_noAppUpdate::fetch(TlBufferParser &p) { + return make_tl_object<help_noAppUpdate>(); +} + +void help_noAppUpdate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.noAppUpdate"); + s.store_class_end(); + } +} + +const std::int32_t help_configSimple::ID; + +object_ptr<help_configSimple> help_configSimple::fetch(TlBufferParser &p) { + return make_tl_object<help_configSimple>(p); +} + +help_configSimple::help_configSimple(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : date_(TlFetchInt::parse(p)) + , expires_(TlFetchInt::parse(p)) + , rules_(TlFetchVector<TlFetchBoxed<TlFetchObject<accessPointRule>, 1182381663>>::parse(p)) +#undef FAIL +{} + +void help_configSimple::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.configSimple"); + s.store_field("date", date_); + s.store_field("expires", expires_); + { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<help_CountriesList> help_CountriesList::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case help_countriesListNotModified::ID: + return help_countriesListNotModified::fetch(p); + case help_countriesList::ID: + return help_countriesList::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t help_countriesListNotModified::ID; + +object_ptr<help_CountriesList> help_countriesListNotModified::fetch(TlBufferParser &p) { + return make_tl_object<help_countriesListNotModified>(); +} + +void help_countriesListNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.countriesListNotModified"); + s.store_class_end(); + } +} + +const std::int32_t help_countriesList::ID; + +object_ptr<help_CountriesList> help_countriesList::fetch(TlBufferParser &p) { + return make_tl_object<help_countriesList>(p); +} + +help_countriesList::help_countriesList(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : countries_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<help_country>, -1014526429>>, 481674261>::parse(p)) + , hash_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void help_countriesList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.countriesList"); + { s.store_vector_begin("countries", countries_.size()); for (const auto &_value : countries_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +help_country::help_country() + : flags_() + , hidden_() + , iso2_() + , default_name_() + , name_() + , country_codes_() +{} + +const std::int32_t help_country::ID; + +object_ptr<help_country> help_country::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<help_country> res = make_tl_object<help_country>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->hidden_ = TlFetchTrue::parse(p); } + res->iso2_ = TlFetchString<string>::parse(p); + res->default_name_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->name_ = TlFetchString<string>::parse(p); } + res->country_codes_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<help_countryCode>, 1107543535>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void help_country::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.country"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("iso2", iso2_); + s.store_field("default_name", default_name_); + if (var0 & 2) { s.store_field("name", name_); } + { s.store_vector_begin("country_codes", country_codes_.size()); for (const auto &_value : country_codes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +help_countryCode::help_countryCode() + : flags_() + , country_code_() + , prefixes_() + , patterns_() +{} + +const std::int32_t help_countryCode::ID; + +object_ptr<help_countryCode> help_countryCode::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<help_countryCode> res = make_tl_object<help_countryCode>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->country_code_ = TlFetchString<string>::parse(p); + if (var0 & 1) { res->prefixes_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p); } + if (var0 & 2) { res->patterns_ = TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void help_countryCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.countryCode"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("country_code", country_code_); + if (var0 & 1) { { s.store_vector_begin("prefixes", prefixes_.size()); for (const auto &_value : prefixes_) { s.store_field("", _value); } s.store_class_end(); } } + if (var0 & 2) { { s.store_vector_begin("patterns", patterns_.size()); for (const auto &_value : patterns_) { s.store_field("", _value); } s.store_class_end(); } } + s.store_class_end(); + } +} + +object_ptr<help_DeepLinkInfo> help_DeepLinkInfo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case help_deepLinkInfoEmpty::ID: + return help_deepLinkInfoEmpty::fetch(p); + case help_deepLinkInfo::ID: + return help_deepLinkInfo::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t help_deepLinkInfoEmpty::ID; + +object_ptr<help_DeepLinkInfo> help_deepLinkInfoEmpty::fetch(TlBufferParser &p) { + return make_tl_object<help_deepLinkInfoEmpty>(); +} + +void help_deepLinkInfoEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.deepLinkInfoEmpty"); + s.store_class_end(); + } +} + +help_deepLinkInfo::help_deepLinkInfo() + : flags_() + , update_app_() + , message_() + , entities_() +{} + +const std::int32_t help_deepLinkInfo::ID; + +object_ptr<help_DeepLinkInfo> help_deepLinkInfo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<help_deepLinkInfo> res = make_tl_object<help_deepLinkInfo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->update_app_ = TlFetchTrue::parse(p); } + res->message_ = TlFetchString<string>::parse(p); + if (var0 & 2) { res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void help_deepLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.deepLinkInfo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("message", message_); + if (var0 & 2) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +const std::int32_t help_inviteText::ID; + +object_ptr<help_inviteText> help_inviteText::fetch(TlBufferParser &p) { + return make_tl_object<help_inviteText>(p); +} + +help_inviteText::help_inviteText(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void help_inviteText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.inviteText"); + s.store_field("message", message_); + s.store_class_end(); + } +} + +object_ptr<help_PassportConfig> help_PassportConfig::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case help_passportConfigNotModified::ID: + return help_passportConfigNotModified::fetch(p); + case help_passportConfig::ID: + return help_passportConfig::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t help_passportConfigNotModified::ID; + +object_ptr<help_PassportConfig> help_passportConfigNotModified::fetch(TlBufferParser &p) { + return make_tl_object<help_passportConfigNotModified>(); +} + +void help_passportConfigNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.passportConfigNotModified"); + s.store_class_end(); + } +} + +const std::int32_t help_passportConfig::ID; + +object_ptr<help_PassportConfig> help_passportConfig::fetch(TlBufferParser &p) { + return make_tl_object<help_passportConfig>(p); +} + +help_passportConfig::help_passportConfig(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchInt::parse(p)) + , countries_langs_(TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p)) +#undef FAIL +{} + +void help_passportConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.passportConfig"); + s.store_field("hash", hash_); + s.store_object_field("countries_langs", static_cast<const BaseObject *>(countries_langs_.get())); + s.store_class_end(); + } +} + +const std::int32_t help_premiumPromo::ID; + +object_ptr<help_premiumPromo> help_premiumPromo::fetch(TlBufferParser &p) { + return make_tl_object<help_premiumPromo>(p); +} + +help_premiumPromo::help_premiumPromo(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : status_text_(TlFetchString<string>::parse(p)) + , status_entities_(TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p)) + , video_sections_(TlFetchBoxed<TlFetchVector<TlFetchString<string>>, 481674261>::parse(p)) + , videos_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) + , period_options_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<premiumSubscriptionOption>, -1225711938>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void help_premiumPromo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.premiumPromo"); + s.store_field("status_text", status_text_); + { s.store_vector_begin("status_entities", status_entities_.size()); for (const auto &_value : status_entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("video_sections", video_sections_.size()); for (const auto &_value : video_sections_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("videos", videos_.size()); for (const auto &_value : videos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("period_options", period_options_.size()); for (const auto &_value : period_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<help_PromoData> help_PromoData::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case help_promoDataEmpty::ID: + return help_promoDataEmpty::fetch(p); + case help_promoData::ID: + return help_promoData::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t help_promoDataEmpty::ID; + +object_ptr<help_PromoData> help_promoDataEmpty::fetch(TlBufferParser &p) { + return make_tl_object<help_promoDataEmpty>(p); +} + +help_promoDataEmpty::help_promoDataEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : expires_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void help_promoDataEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.promoDataEmpty"); + s.store_field("expires", expires_); + s.store_class_end(); + } +} + +help_promoData::help_promoData() + : flags_() + , proxy_() + , expires_() + , peer_() + , chats_() + , users_() + , psa_type_() + , psa_message_() +{} + +const std::int32_t help_promoData::ID; + +object_ptr<help_PromoData> help_promoData::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<help_promoData> res = make_tl_object<help_promoData>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->proxy_ = TlFetchTrue::parse(p); } + res->expires_ = TlFetchInt::parse(p); + res->peer_ = TlFetchObject<Peer>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (var0 & 2) { res->psa_type_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->psa_message_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void help_promoData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.promoData"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("expires", expires_); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 2) { s.store_field("psa_type", psa_type_); } + if (var0 & 4) { s.store_field("psa_message", psa_message_); } + s.store_class_end(); + } +} + +const std::int32_t help_recentMeUrls::ID; + +object_ptr<help_recentMeUrls> help_recentMeUrls::fetch(TlBufferParser &p) { + return make_tl_object<help_recentMeUrls>(p); +} + +help_recentMeUrls::help_recentMeUrls(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : urls_(TlFetchBoxed<TlFetchVector<TlFetchObject<RecentMeUrl>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void help_recentMeUrls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.recentMeUrls"); + { s.store_vector_begin("urls", urls_.size()); for (const auto &_value : urls_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t help_support::ID; + +object_ptr<help_support> help_support::fetch(TlBufferParser &p) { + return make_tl_object<help_support>(p); +} + +help_support::help_support(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_number_(TlFetchString<string>::parse(p)) + , user_(TlFetchObject<User>::parse(p)) +#undef FAIL +{} + +void help_support::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.support"); + s.store_field("phone_number", phone_number_); + s.store_object_field("user", static_cast<const BaseObject *>(user_.get())); + s.store_class_end(); + } +} + +const std::int32_t help_supportName::ID; + +object_ptr<help_supportName> help_supportName::fetch(TlBufferParser &p) { + return make_tl_object<help_supportName>(p); +} + +help_supportName::help_supportName(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void help_supportName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.supportName"); + s.store_field("name", name_); + s.store_class_end(); + } +} + +help_termsOfService::help_termsOfService() + : flags_() + , popup_() + , id_() + , text_() + , entities_() + , min_age_confirm_() +{} + +const std::int32_t help_termsOfService::ID; + +object_ptr<help_termsOfService> help_termsOfService::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<help_termsOfService> res = make_tl_object<help_termsOfService>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->popup_ = TlFetchTrue::parse(p); } + res->id_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p); + res->text_ = TlFetchString<string>::parse(p); + res->entities_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p); + if (var0 & 2) { res->min_age_confirm_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void help_termsOfService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.termsOfService"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_field("text", text_); + { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 2) { s.store_field("min_age_confirm", min_age_confirm_); } + s.store_class_end(); + } +} + +object_ptr<help_TermsOfServiceUpdate> help_TermsOfServiceUpdate::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case help_termsOfServiceUpdateEmpty::ID: + return help_termsOfServiceUpdateEmpty::fetch(p); + case help_termsOfServiceUpdate::ID: + return help_termsOfServiceUpdate::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t help_termsOfServiceUpdateEmpty::ID; + +object_ptr<help_TermsOfServiceUpdate> help_termsOfServiceUpdateEmpty::fetch(TlBufferParser &p) { + return make_tl_object<help_termsOfServiceUpdateEmpty>(p); +} + +help_termsOfServiceUpdateEmpty::help_termsOfServiceUpdateEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : expires_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void help_termsOfServiceUpdateEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.termsOfServiceUpdateEmpty"); + s.store_field("expires", expires_); + s.store_class_end(); + } +} + +const std::int32_t help_termsOfServiceUpdate::ID; + +object_ptr<help_TermsOfServiceUpdate> help_termsOfServiceUpdate::fetch(TlBufferParser &p) { + return make_tl_object<help_termsOfServiceUpdate>(p); +} + +help_termsOfServiceUpdate::help_termsOfServiceUpdate(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : expires_(TlFetchInt::parse(p)) + , terms_of_service_(TlFetchBoxed<TlFetchObject<help_termsOfService>, 2013922064>::parse(p)) +#undef FAIL +{} + +void help_termsOfServiceUpdate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.termsOfServiceUpdate"); + s.store_field("expires", expires_); + s.store_object_field("terms_of_service", static_cast<const BaseObject *>(terms_of_service_.get())); + s.store_class_end(); + } +} + +object_ptr<help_UserInfo> help_UserInfo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case help_userInfoEmpty::ID: + return help_userInfoEmpty::fetch(p); + case help_userInfo::ID: + return help_userInfo::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t help_userInfoEmpty::ID; + +object_ptr<help_UserInfo> help_userInfoEmpty::fetch(TlBufferParser &p) { + return make_tl_object<help_userInfoEmpty>(); +} + +void help_userInfoEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.userInfoEmpty"); + s.store_class_end(); + } +} + +const std::int32_t help_userInfo::ID; + +object_ptr<help_UserInfo> help_userInfo::fetch(TlBufferParser &p) { + return make_tl_object<help_userInfo>(p); +} + +help_userInfo::help_userInfo(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : message_(TlFetchString<string>::parse(p)) + , entities_(TlFetchBoxed<TlFetchVector<TlFetchObject<MessageEntity>>, 481674261>::parse(p)) + , author_(TlFetchString<string>::parse(p)) + , date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void help_userInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.userInfo"); + s.store_field("message", message_); + { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("author", author_); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t messages_affectedFoundMessages::ID; + +object_ptr<messages_affectedFoundMessages> messages_affectedFoundMessages::fetch(TlBufferParser &p) { + return make_tl_object<messages_affectedFoundMessages>(p); +} + +messages_affectedFoundMessages::messages_affectedFoundMessages(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) + , offset_(TlFetchInt::parse(p)) + , messages_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_affectedFoundMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.affectedFoundMessages"); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_field("offset", offset_); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_affectedHistory::ID; + +object_ptr<messages_affectedHistory> messages_affectedHistory::fetch(TlBufferParser &p) { + return make_tl_object<messages_affectedHistory>(p); +} + +messages_affectedHistory::messages_affectedHistory(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) + , offset_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messages_affectedHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.affectedHistory"); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +const std::int32_t messages_affectedMessages::ID; + +object_ptr<messages_affectedMessages> messages_affectedMessages::fetch(TlBufferParser &p) { + return make_tl_object<messages_affectedMessages>(p); +} + +messages_affectedMessages::messages_affectedMessages(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : pts_(TlFetchInt::parse(p)) + , pts_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messages_affectedMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.affectedMessages"); + s.store_field("pts", pts_); + s.store_field("pts_count", pts_count_); + s.store_class_end(); + } +} + +object_ptr<messages_AllStickers> messages_AllStickers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_allStickersNotModified::ID: + return messages_allStickersNotModified::fetch(p); + case messages_allStickers::ID: + return messages_allStickers::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_allStickersNotModified::ID; + +object_ptr<messages_AllStickers> messages_allStickersNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_allStickersNotModified>(); +} + +void messages_allStickersNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.allStickersNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_allStickers::ID; + +object_ptr<messages_AllStickers> messages_allStickers::fetch(TlBufferParser &p) { + return make_tl_object<messages_allStickers>(p); +} + +messages_allStickers::messages_allStickers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , sets_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_allStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.allStickers"); + s.store_field("hash", hash_); + { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_archivedStickers::ID; + +object_ptr<messages_archivedStickers> messages_archivedStickers::fetch(TlBufferParser &p) { + return make_tl_object<messages_archivedStickers>(p); +} + +messages_archivedStickers::messages_archivedStickers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , sets_(TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_archivedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.archivedStickers"); + s.store_field("count", count_); + { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_AvailableReactions> messages_AvailableReactions::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_availableReactionsNotModified::ID: + return messages_availableReactionsNotModified::fetch(p); + case messages_availableReactions::ID: + return messages_availableReactions::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_availableReactionsNotModified::ID; + +object_ptr<messages_AvailableReactions> messages_availableReactionsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_availableReactionsNotModified>(); +} + +void messages_availableReactionsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.availableReactionsNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_availableReactions::ID; + +object_ptr<messages_AvailableReactions> messages_availableReactions::fetch(TlBufferParser &p) { + return make_tl_object<messages_availableReactions>(p); +} + +messages_availableReactions::messages_availableReactions(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchInt::parse(p)) + , reactions_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<availableReaction>, -1065882623>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_availableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.availableReactions"); + s.store_field("hash", hash_); + { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_botCallbackAnswer::messages_botCallbackAnswer() + : flags_() + , alert_() + , has_url_() + , native_ui_() + , message_() + , url_() + , cache_time_() +{} + +const std::int32_t messages_botCallbackAnswer::ID; + +object_ptr<messages_botCallbackAnswer> messages_botCallbackAnswer::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_botCallbackAnswer> res = make_tl_object<messages_botCallbackAnswer>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->alert_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->has_url_ = TlFetchTrue::parse(p); } + if (var0 & 16) { res->native_ui_ = TlFetchTrue::parse(p); } + if (var0 & 1) { res->message_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->url_ = TlFetchString<string>::parse(p); } + res->cache_time_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_botCallbackAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.botCallbackAnswer"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("message", message_); } + if (var0 & 4) { s.store_field("url", url_); } + s.store_field("cache_time", cache_time_); + s.store_class_end(); + } +} + +messages_botResults::messages_botResults() + : flags_() + , gallery_() + , query_id_() + , next_offset_() + , switch_pm_() + , results_() + , cache_time_() + , users_() +{} + +const std::int32_t messages_botResults::ID; + +object_ptr<messages_botResults> messages_botResults::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_botResults> res = make_tl_object<messages_botResults>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->gallery_ = TlFetchTrue::parse(p); } + res->query_id_ = TlFetchLong::parse(p); + if (var0 & 2) { res->next_offset_ = TlFetchString<string>::parse(p); } + if (var0 & 4) { res->switch_pm_ = TlFetchBoxed<TlFetchObject<inlineBotSwitchPM>, 1008755359>::parse(p); } + res->results_ = TlFetchBoxed<TlFetchVector<TlFetchObject<BotInlineResult>>, 481674261>::parse(p); + res->cache_time_ = TlFetchInt::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_botResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.botResults"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + if (var0 & 2) { s.store_field("next_offset", next_offset_); } + if (var0 & 4) { s.store_object_field("switch_pm", static_cast<const BaseObject *>(switch_pm_.get())); } + { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("cache_time", cache_time_); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_chatAdminsWithInvites::ID; + +object_ptr<messages_chatAdminsWithInvites> messages_chatAdminsWithInvites::fetch(TlBufferParser &p) { + return make_tl_object<messages_chatAdminsWithInvites>(p); +} + +messages_chatAdminsWithInvites::messages_chatAdminsWithInvites(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : admins_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<chatAdminWithInvites>, -219353309>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_chatAdminsWithInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.chatAdminsWithInvites"); + { s.store_vector_begin("admins", admins_.size()); for (const auto &_value : admins_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_chatFull::ID; + +object_ptr<messages_chatFull> messages_chatFull::fetch(TlBufferParser &p) { + return make_tl_object<messages_chatFull>(p); +} + +messages_chatFull::messages_chatFull(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : full_chat_(TlFetchObject<ChatFull>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_chatFull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.chatFull"); + s.store_object_field("full_chat", static_cast<const BaseObject *>(full_chat_.get())); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_chatInviteImporters::ID; + +object_ptr<messages_chatInviteImporters> messages_chatInviteImporters::fetch(TlBufferParser &p) { + return make_tl_object<messages_chatInviteImporters>(p); +} + +messages_chatInviteImporters::messages_chatInviteImporters(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , importers_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<chatInviteImporter>, -1940201511>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_chatInviteImporters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.chatInviteImporters"); + s.store_field("count", count_); + { s.store_vector_begin("importers", importers_.size()); for (const auto &_value : importers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_Chats> messages_Chats::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_chats::ID: + return messages_chats::fetch(p); + case messages_chatsSlice::ID: + return messages_chatsSlice::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_chats::ID; + +object_ptr<messages_Chats> messages_chats::fetch(TlBufferParser &p) { + return make_tl_object<messages_chats>(p); +} + +messages_chats::messages_chats(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_chats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.chats"); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_chatsSlice::ID; + +object_ptr<messages_Chats> messages_chatsSlice::fetch(TlBufferParser &p) { + return make_tl_object<messages_chatsSlice>(p); +} + +messages_chatsSlice::messages_chatsSlice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_chatsSlice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.chatsSlice"); + s.store_field("count", count_); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_checkedHistoryImportPeer::ID; + +object_ptr<messages_checkedHistoryImportPeer> messages_checkedHistoryImportPeer::fetch(TlBufferParser &p) { + return make_tl_object<messages_checkedHistoryImportPeer>(p); +} + +messages_checkedHistoryImportPeer::messages_checkedHistoryImportPeer(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : confirm_text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messages_checkedHistoryImportPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.checkedHistoryImportPeer"); + s.store_field("confirm_text", confirm_text_); + s.store_class_end(); + } +} + +object_ptr<messages_DhConfig> messages_DhConfig::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_dhConfigNotModified::ID: + return messages_dhConfigNotModified::fetch(p); + case messages_dhConfig::ID: + return messages_dhConfig::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_dhConfigNotModified::ID; + +object_ptr<messages_DhConfig> messages_dhConfigNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_dhConfigNotModified>(p); +} + +messages_dhConfigNotModified::messages_dhConfigNotModified(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : random_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void messages_dhConfigNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.dhConfigNotModified"); + s.store_bytes_field("random", random_); + s.store_class_end(); + } +} + +const std::int32_t messages_dhConfig::ID; + +object_ptr<messages_DhConfig> messages_dhConfig::fetch(TlBufferParser &p) { + return make_tl_object<messages_dhConfig>(p); +} + +messages_dhConfig::messages_dhConfig(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : g_(TlFetchInt::parse(p)) + , p_(TlFetchBytes<bytes>::parse(p)) + , version_(TlFetchInt::parse(p)) + , random_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void messages_dhConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.dhConfig"); + s.store_field("g", g_); + s.store_bytes_field("p", p_); + s.store_field("version", version_); + s.store_bytes_field("random", random_); + s.store_class_end(); + } +} + +object_ptr<messages_Dialogs> messages_Dialogs::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_dialogs::ID: + return messages_dialogs::fetch(p); + case messages_dialogsSlice::ID: + return messages_dialogsSlice::fetch(p); + case messages_dialogsNotModified::ID: + return messages_dialogsNotModified::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_dialogs::ID; + +object_ptr<messages_Dialogs> messages_dialogs::fetch(TlBufferParser &p) { + return make_tl_object<messages_dialogs>(p); +} + +messages_dialogs::messages_dialogs(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dialogs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Dialog>>, 481674261>::parse(p)) + , messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_dialogs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.dialogs"); + { s.store_vector_begin("dialogs", dialogs_.size()); for (const auto &_value : dialogs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_dialogsSlice::ID; + +object_ptr<messages_Dialogs> messages_dialogsSlice::fetch(TlBufferParser &p) { + return make_tl_object<messages_dialogsSlice>(p); +} + +messages_dialogsSlice::messages_dialogsSlice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , dialogs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Dialog>>, 481674261>::parse(p)) + , messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_dialogsSlice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.dialogsSlice"); + s.store_field("count", count_); + { s.store_vector_begin("dialogs", dialogs_.size()); for (const auto &_value : dialogs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_dialogsNotModified::ID; + +object_ptr<messages_Dialogs> messages_dialogsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_dialogsNotModified>(p); +} + +messages_dialogsNotModified::messages_dialogsNotModified(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messages_dialogsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.dialogsNotModified"); + s.store_field("count", count_); + s.store_class_end(); + } +} + +messages_discussionMessage::messages_discussionMessage() + : flags_() + , messages_() + , max_id_() + , read_inbox_max_id_() + , read_outbox_max_id_() + , unread_count_() + , chats_() + , users_() +{} + +const std::int32_t messages_discussionMessage::ID; + +object_ptr<messages_discussionMessage> messages_discussionMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_discussionMessage> res = make_tl_object<messages_discussionMessage>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p); + if (var0 & 1) { res->max_id_ = TlFetchInt::parse(p); } + if (var0 & 2) { res->read_inbox_max_id_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->read_outbox_max_id_ = TlFetchInt::parse(p); } + res->unread_count_ = TlFetchInt::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_discussionMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.discussionMessage"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 1) { s.store_field("max_id", max_id_); } + if (var0 & 2) { s.store_field("read_inbox_max_id", read_inbox_max_id_); } + if (var0 & 4) { s.store_field("read_outbox_max_id", read_outbox_max_id_); } + s.store_field("unread_count", unread_count_); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_ExportedChatInvite> messages_ExportedChatInvite::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_exportedChatInvite::ID: + return messages_exportedChatInvite::fetch(p); + case messages_exportedChatInviteReplaced::ID: + return messages_exportedChatInviteReplaced::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_exportedChatInvite::ID; + +object_ptr<messages_ExportedChatInvite> messages_exportedChatInvite::fetch(TlBufferParser &p) { + return make_tl_object<messages_exportedChatInvite>(p); +} + +messages_exportedChatInvite::messages_exportedChatInvite(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : invite_(TlFetchObject<ExportedChatInvite>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_exportedChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.exportedChatInvite"); + s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_exportedChatInviteReplaced::ID; + +object_ptr<messages_ExportedChatInvite> messages_exportedChatInviteReplaced::fetch(TlBufferParser &p) { + return make_tl_object<messages_exportedChatInviteReplaced>(p); +} + +messages_exportedChatInviteReplaced::messages_exportedChatInviteReplaced(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : invite_(TlFetchObject<ExportedChatInvite>::parse(p)) + , new_invite_(TlFetchObject<ExportedChatInvite>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_exportedChatInviteReplaced::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.exportedChatInviteReplaced"); + s.store_object_field("invite", static_cast<const BaseObject *>(invite_.get())); + s.store_object_field("new_invite", static_cast<const BaseObject *>(new_invite_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_exportedChatInvites::ID; + +object_ptr<messages_exportedChatInvites> messages_exportedChatInvites::fetch(TlBufferParser &p) { + return make_tl_object<messages_exportedChatInvites>(p); +} + +messages_exportedChatInvites::messages_exportedChatInvites(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , invites_(TlFetchBoxed<TlFetchVector<TlFetchObject<ExportedChatInvite>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_exportedChatInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.exportedChatInvites"); + s.store_field("count", count_); + { s.store_vector_begin("invites", invites_.size()); for (const auto &_value : invites_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_FavedStickers> messages_FavedStickers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_favedStickersNotModified::ID: + return messages_favedStickersNotModified::fetch(p); + case messages_favedStickers::ID: + return messages_favedStickers::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_favedStickersNotModified::ID; + +object_ptr<messages_FavedStickers> messages_favedStickersNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_favedStickersNotModified>(); +} + +void messages_favedStickersNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.favedStickersNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_favedStickers::ID; + +object_ptr<messages_FavedStickers> messages_favedStickers::fetch(TlBufferParser &p) { + return make_tl_object<messages_favedStickers>(p); +} + +messages_favedStickers::messages_favedStickers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p)) + , stickers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_favedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.favedStickers"); + s.store_field("hash", hash_); + { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_FeaturedStickers> messages_FeaturedStickers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_featuredStickersNotModified::ID: + return messages_featuredStickersNotModified::fetch(p); + case messages_featuredStickers::ID: + return messages_featuredStickers::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_featuredStickersNotModified::ID; + +object_ptr<messages_FeaturedStickers> messages_featuredStickersNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_featuredStickersNotModified>(p); +} + +messages_featuredStickersNotModified::messages_featuredStickersNotModified(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messages_featuredStickersNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.featuredStickersNotModified"); + s.store_field("count", count_); + s.store_class_end(); + } +} + +messages_featuredStickers::messages_featuredStickers() + : flags_() + , premium_() + , hash_() + , count_() + , sets_() + , unread_() +{} + +const std::int32_t messages_featuredStickers::ID; + +object_ptr<messages_FeaturedStickers> messages_featuredStickers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_featuredStickers> res = make_tl_object<messages_featuredStickers>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->premium_ = TlFetchTrue::parse(p); } + res->hash_ = TlFetchLong::parse(p); + res->count_ = TlFetchInt::parse(p); + res->sets_ = TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p); + res->unread_ = TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messages_featuredStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.featuredStickers"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("hash", hash_); + s.store_field("count", count_); + { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("unread", unread_.size()); for (const auto &_value : unread_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_forumTopics::messages_forumTopics() + : flags_() + , order_by_create_date_() + , count_() + , topics_() + , messages_() + , chats_() + , users_() + , pts_() +{} + +const std::int32_t messages_forumTopics::ID; + +object_ptr<messages_forumTopics> messages_forumTopics::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_forumTopics> res = make_tl_object<messages_forumTopics>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->order_by_create_date_ = TlFetchTrue::parse(p); } + res->count_ = TlFetchInt::parse(p); + res->topics_ = TlFetchBoxed<TlFetchVector<TlFetchObject<ForumTopic>>, 481674261>::parse(p); + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + res->pts_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_forumTopics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.forumTopics"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("count", count_); + { s.store_vector_begin("topics", topics_.size()); for (const auto &_value : topics_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("pts", pts_); + s.store_class_end(); + } +} + +object_ptr<messages_FoundStickerSets> messages_FoundStickerSets::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_foundStickerSetsNotModified::ID: + return messages_foundStickerSetsNotModified::fetch(p); + case messages_foundStickerSets::ID: + return messages_foundStickerSets::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_foundStickerSetsNotModified::ID; + +object_ptr<messages_FoundStickerSets> messages_foundStickerSetsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_foundStickerSetsNotModified>(); +} + +void messages_foundStickerSetsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.foundStickerSetsNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_foundStickerSets::ID; + +object_ptr<messages_FoundStickerSets> messages_foundStickerSets::fetch(TlBufferParser &p) { + return make_tl_object<messages_foundStickerSets>(p); +} + +messages_foundStickerSets::messages_foundStickerSets(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , sets_(TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_foundStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.foundStickerSets"); + s.store_field("hash", hash_); + { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_highScores::ID; + +object_ptr<messages_highScores> messages_highScores::fetch(TlBufferParser &p) { + return make_tl_object<messages_highScores>(p); +} + +messages_highScores::messages_highScores(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : scores_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<highScore>, 1940093419>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_highScores::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.highScores"); + { s.store_vector_begin("scores", scores_.size()); for (const auto &_value : scores_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_historyImport::ID; + +object_ptr<messages_historyImport> messages_historyImport::fetch(TlBufferParser &p) { + return make_tl_object<messages_historyImport>(p); +} + +messages_historyImport::messages_historyImport(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : id_(TlFetchLong::parse(p)) +#undef FAIL +{} + +void messages_historyImport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.historyImport"); + s.store_field("id", id_); + s.store_class_end(); + } +} + +messages_historyImportParsed::messages_historyImportParsed() + : flags_() + , pm_() + , group_() + , title_() +{} + +const std::int32_t messages_historyImportParsed::ID; + +object_ptr<messages_historyImportParsed> messages_historyImportParsed::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_historyImportParsed> res = make_tl_object<messages_historyImportParsed>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->pm_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->group_ = TlFetchTrue::parse(p); } + if (var0 & 4) { res->title_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_historyImportParsed::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.historyImportParsed"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 4) { s.store_field("title", title_); } + s.store_class_end(); + } +} + +const std::int32_t messages_inactiveChats::ID; + +object_ptr<messages_inactiveChats> messages_inactiveChats::fetch(TlBufferParser &p) { + return make_tl_object<messages_inactiveChats>(p); +} + +messages_inactiveChats::messages_inactiveChats(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dates_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_inactiveChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.inactiveChats"); + { s.store_vector_begin("dates", dates_.size()); for (const auto &_value : dates_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_messageEditData::messages_messageEditData() + : flags_() + , caption_() +{} + +const std::int32_t messages_messageEditData::ID; + +object_ptr<messages_messageEditData> messages_messageEditData::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_messageEditData> res = make_tl_object<messages_messageEditData>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->caption_ = TlFetchTrue::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_messageEditData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.messageEditData"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +messages_messageReactionsList::messages_messageReactionsList() + : flags_() + , count_() + , reactions_() + , chats_() + , users_() + , next_offset_() +{} + +const std::int32_t messages_messageReactionsList::ID; + +object_ptr<messages_messageReactionsList> messages_messageReactionsList::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_messageReactionsList> res = make_tl_object<messages_messageReactionsList>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->count_ = TlFetchInt::parse(p); + res->reactions_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messagePeerReaction>, -1319698788>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (var0 & 1) { res->next_offset_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_messageReactionsList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.messageReactionsList"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("count", count_); + { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 1) { s.store_field("next_offset", next_offset_); } + s.store_class_end(); + } +} + +const std::int32_t messages_messageViews::ID; + +object_ptr<messages_messageViews> messages_messageViews::fetch(TlBufferParser &p) { + return make_tl_object<messages_messageViews>(p); +} + +messages_messageViews::messages_messageViews(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : views_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messageViews>, 1163625789>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_messageViews::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.messageViews"); + { s.store_vector_begin("views", views_.size()); for (const auto &_value : views_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_Messages> messages_Messages::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_messages::ID: + return messages_messages::fetch(p); + case messages_messagesSlice::ID: + return messages_messagesSlice::fetch(p); + case messages_channelMessages::ID: + return messages_channelMessages::fetch(p); + case messages_messagesNotModified::ID: + return messages_messagesNotModified::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_messages::ID; + +object_ptr<messages_Messages> messages_messages::fetch(TlBufferParser &p) { + return make_tl_object<messages_messages>(p); +} + +messages_messages::messages_messages(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_messages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.messages"); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_messagesSlice::messages_messagesSlice() + : flags_() + , inexact_() + , count_() + , next_rate_() + , offset_id_offset_() + , messages_() + , chats_() + , users_() +{} + +const std::int32_t messages_messagesSlice::ID; + +object_ptr<messages_Messages> messages_messagesSlice::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_messagesSlice> res = make_tl_object<messages_messagesSlice>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->inexact_ = TlFetchTrue::parse(p); } + res->count_ = TlFetchInt::parse(p); + if (var0 & 1) { res->next_rate_ = TlFetchInt::parse(p); } + if (var0 & 4) { res->offset_id_offset_ = TlFetchInt::parse(p); } + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messages_messagesSlice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.messagesSlice"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("count", count_); + if (var0 & 1) { s.store_field("next_rate", next_rate_); } + if (var0 & 4) { s.store_field("offset_id_offset", offset_id_offset_); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_channelMessages::messages_channelMessages() + : flags_() + , inexact_() + , pts_() + , count_() + , offset_id_offset_() + , messages_() + , chats_() + , users_() +{} + +const std::int32_t messages_channelMessages::ID; + +object_ptr<messages_Messages> messages_channelMessages::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_channelMessages> res = make_tl_object<messages_channelMessages>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->inexact_ = TlFetchTrue::parse(p); } + res->pts_ = TlFetchInt::parse(p); + res->count_ = TlFetchInt::parse(p); + if (var0 & 4) { res->offset_id_offset_ = TlFetchInt::parse(p); } + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messages_channelMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.channelMessages"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("pts", pts_); + s.store_field("count", count_); + if (var0 & 4) { s.store_field("offset_id_offset", offset_id_offset_); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_messagesNotModified::ID; + +object_ptr<messages_Messages> messages_messagesNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_messagesNotModified>(p); +} + +messages_messagesNotModified::messages_messagesNotModified(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messages_messagesNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.messagesNotModified"); + s.store_field("count", count_); + s.store_class_end(); + } +} + +const std::int32_t messages_peerDialogs::ID; + +object_ptr<messages_peerDialogs> messages_peerDialogs::fetch(TlBufferParser &p) { + return make_tl_object<messages_peerDialogs>(p); +} + +messages_peerDialogs::messages_peerDialogs(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dialogs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Dialog>>, 481674261>::parse(p)) + , messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) + , state_(TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p)) +#undef FAIL +{} + +void messages_peerDialogs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.peerDialogs"); + { s.store_vector_begin("dialogs", dialogs_.size()); for (const auto &_value : dialogs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("state", static_cast<const BaseObject *>(state_.get())); + s.store_class_end(); + } +} + +const std::int32_t messages_peerSettings::ID; + +object_ptr<messages_peerSettings> messages_peerSettings::fetch(TlBufferParser &p) { + return make_tl_object<messages_peerSettings>(p); +} + +messages_peerSettings::messages_peerSettings(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : settings_(TlFetchBoxed<TlFetchObject<peerSettings>, -1525149427>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_peerSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.peerSettings"); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_Reactions> messages_Reactions::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_reactionsNotModified::ID: + return messages_reactionsNotModified::fetch(p); + case messages_reactions::ID: + return messages_reactions::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_reactionsNotModified::ID; + +object_ptr<messages_Reactions> messages_reactionsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_reactionsNotModified>(); +} + +void messages_reactionsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.reactionsNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_reactions::ID; + +object_ptr<messages_Reactions> messages_reactions::fetch(TlBufferParser &p) { + return make_tl_object<messages_reactions>(p); +} + +messages_reactions::messages_reactions(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , reactions_(TlFetchBoxed<TlFetchVector<TlFetchObject<Reaction>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_reactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.reactions"); + s.store_field("hash", hash_); + { s.store_vector_begin("reactions", reactions_.size()); for (const auto &_value : reactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_RecentStickers> messages_RecentStickers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_recentStickersNotModified::ID: + return messages_recentStickersNotModified::fetch(p); + case messages_recentStickers::ID: + return messages_recentStickers::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_recentStickersNotModified::ID; + +object_ptr<messages_RecentStickers> messages_recentStickersNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_recentStickersNotModified>(); +} + +void messages_recentStickersNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.recentStickersNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_recentStickers::ID; + +object_ptr<messages_RecentStickers> messages_recentStickers::fetch(TlBufferParser &p) { + return make_tl_object<messages_recentStickers>(p); +} + +messages_recentStickers::messages_recentStickers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p)) + , stickers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) + , dates_(TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_recentStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.recentStickers"); + s.store_field("hash", hash_); + { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("dates", dates_.size()); for (const auto &_value : dates_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_SavedGifs> messages_SavedGifs::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_savedGifsNotModified::ID: + return messages_savedGifsNotModified::fetch(p); + case messages_savedGifs::ID: + return messages_savedGifs::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_savedGifsNotModified::ID; + +object_ptr<messages_SavedGifs> messages_savedGifsNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_savedGifsNotModified>(); +} + +void messages_savedGifsNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.savedGifsNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_savedGifs::ID; + +object_ptr<messages_SavedGifs> messages_savedGifs::fetch(TlBufferParser &p) { + return make_tl_object<messages_savedGifs>(p); +} + +messages_savedGifs::messages_savedGifs(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , gifs_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_savedGifs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.savedGifs"); + s.store_field("hash", hash_); + { s.store_vector_begin("gifs", gifs_.size()); for (const auto &_value : gifs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_searchCounter::messages_searchCounter() + : flags_() + , inexact_() + , filter_() + , count_() +{} + +const std::int32_t messages_searchCounter::ID; + +object_ptr<messages_searchCounter> messages_searchCounter::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_searchCounter> res = make_tl_object<messages_searchCounter>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->inexact_ = TlFetchTrue::parse(p); } + res->filter_ = TlFetchObject<MessagesFilter>::parse(p); + res->count_ = TlFetchInt::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_searchCounter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.searchCounter"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("count", count_); + s.store_class_end(); + } +} + +messages_searchResultsCalendar::messages_searchResultsCalendar() + : flags_() + , inexact_() + , count_() + , min_date_() + , min_msg_id_() + , offset_id_offset_() + , periods_() + , messages_() + , chats_() + , users_() +{} + +const std::int32_t messages_searchResultsCalendar::ID; + +object_ptr<messages_searchResultsCalendar> messages_searchResultsCalendar::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_searchResultsCalendar> res = make_tl_object<messages_searchResultsCalendar>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->inexact_ = TlFetchTrue::parse(p); } + res->count_ = TlFetchInt::parse(p); + res->min_date_ = TlFetchInt::parse(p); + res->min_msg_id_ = TlFetchInt::parse(p); + if (var0 & 2) { res->offset_id_offset_ = TlFetchInt::parse(p); } + res->periods_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<searchResultsCalendarPeriod>, -911191137>>, 481674261>::parse(p); + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_searchResultsCalendar::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.searchResultsCalendar"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("count", count_); + s.store_field("min_date", min_date_); + s.store_field("min_msg_id", min_msg_id_); + if (var0 & 2) { s.store_field("offset_id_offset", offset_id_offset_); } + { s.store_vector_begin("periods", periods_.size()); for (const auto &_value : periods_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_searchResultsPositions::ID; + +object_ptr<messages_searchResultsPositions> messages_searchResultsPositions::fetch(TlBufferParser &p) { + return make_tl_object<messages_searchResultsPositions>(p); +} + +messages_searchResultsPositions::messages_searchResultsPositions(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , positions_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<searchResultPosition>, 2137295719>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_searchResultsPositions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.searchResultsPositions"); + s.store_field("count", count_); + { s.store_vector_begin("positions", positions_.size()); for (const auto &_value : positions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_SentEncryptedMessage> messages_SentEncryptedMessage::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_sentEncryptedMessage::ID: + return messages_sentEncryptedMessage::fetch(p); + case messages_sentEncryptedFile::ID: + return messages_sentEncryptedFile::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_sentEncryptedMessage::ID; + +object_ptr<messages_SentEncryptedMessage> messages_sentEncryptedMessage::fetch(TlBufferParser &p) { + return make_tl_object<messages_sentEncryptedMessage>(p); +} + +messages_sentEncryptedMessage::messages_sentEncryptedMessage(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : date_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void messages_sentEncryptedMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sentEncryptedMessage"); + s.store_field("date", date_); + s.store_class_end(); + } +} + +const std::int32_t messages_sentEncryptedFile::ID; + +object_ptr<messages_SentEncryptedMessage> messages_sentEncryptedFile::fetch(TlBufferParser &p) { + return make_tl_object<messages_sentEncryptedFile>(p); +} + +messages_sentEncryptedFile::messages_sentEncryptedFile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : date_(TlFetchInt::parse(p)) + , file_(TlFetchObject<EncryptedFile>::parse(p)) +#undef FAIL +{} + +void messages_sentEncryptedFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sentEncryptedFile"); + s.store_field("date", date_); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_class_end(); + } +} + +object_ptr<messages_SponsoredMessages> messages_SponsoredMessages::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_sponsoredMessages::ID: + return messages_sponsoredMessages::fetch(p); + case messages_sponsoredMessagesEmpty::ID: + return messages_sponsoredMessagesEmpty::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +messages_sponsoredMessages::messages_sponsoredMessages() + : flags_() + , posts_between_() + , messages_() + , chats_() + , users_() +{} + +const std::int32_t messages_sponsoredMessages::ID; + +object_ptr<messages_SponsoredMessages> messages_sponsoredMessages::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_sponsoredMessages> res = make_tl_object<messages_sponsoredMessages>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->posts_between_ = TlFetchInt::parse(p); } + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<sponsoredMessage>, 981691896>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void messages_sponsoredMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sponsoredMessages"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("posts_between", posts_between_); } + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_sponsoredMessagesEmpty::ID; + +object_ptr<messages_SponsoredMessages> messages_sponsoredMessagesEmpty::fetch(TlBufferParser &p) { + return make_tl_object<messages_sponsoredMessagesEmpty>(); +} + +void messages_sponsoredMessagesEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sponsoredMessagesEmpty"); + s.store_class_end(); + } +} + +object_ptr<messages_StickerSet> messages_StickerSet::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_stickerSet::ID: + return messages_stickerSet::fetch(p); + case messages_stickerSetNotModified::ID: + return messages_stickerSetNotModified::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +messages_stickerSet::messages_stickerSet(object_ptr<stickerSet> &&set_, array<object_ptr<stickerPack>> &&packs_, array<object_ptr<stickerKeyword>> &&keywords_, array<object_ptr<Document>> &&documents_) + : set_(std::move(set_)) + , packs_(std::move(packs_)) + , keywords_(std::move(keywords_)) + , documents_(std::move(documents_)) +{} + +const std::int32_t messages_stickerSet::ID; + +object_ptr<messages_StickerSet> messages_stickerSet::fetch(TlBufferParser &p) { + return make_tl_object<messages_stickerSet>(p); +} + +messages_stickerSet::messages_stickerSet(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : set_(TlFetchBoxed<TlFetchObject<stickerSet>, 768691932>::parse(p)) + , packs_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerPack>, 313694676>>, 481674261>::parse(p)) + , keywords_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<stickerKeyword>, -50416996>>, 481674261>::parse(p)) + , documents_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_stickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.stickerSet"); + s.store_object_field("set", static_cast<const BaseObject *>(set_.get())); + { s.store_vector_begin("packs", packs_.size()); for (const auto &_value : packs_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("keywords", keywords_.size()); for (const auto &_value : keywords_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("documents", documents_.size()); for (const auto &_value : documents_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t messages_stickerSetNotModified::ID; + +object_ptr<messages_StickerSet> messages_stickerSetNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_stickerSetNotModified>(); +} + +void messages_stickerSetNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.stickerSetNotModified"); + s.store_class_end(); + } +} + +object_ptr<messages_StickerSetInstallResult> messages_StickerSetInstallResult::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_stickerSetInstallResultSuccess::ID: + return messages_stickerSetInstallResultSuccess::fetch(p); + case messages_stickerSetInstallResultArchive::ID: + return messages_stickerSetInstallResultArchive::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_stickerSetInstallResultSuccess::ID; + +object_ptr<messages_StickerSetInstallResult> messages_stickerSetInstallResultSuccess::fetch(TlBufferParser &p) { + return make_tl_object<messages_stickerSetInstallResultSuccess>(); +} + +void messages_stickerSetInstallResultSuccess::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.stickerSetInstallResultSuccess"); + s.store_class_end(); + } +} + +const std::int32_t messages_stickerSetInstallResultArchive::ID; + +object_ptr<messages_StickerSetInstallResult> messages_stickerSetInstallResultArchive::fetch(TlBufferParser &p) { + return make_tl_object<messages_stickerSetInstallResultArchive>(p); +} + +messages_stickerSetInstallResultArchive::messages_stickerSetInstallResultArchive(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : sets_(TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_stickerSetInstallResultArchive::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.stickerSetInstallResultArchive"); + { s.store_vector_begin("sets", sets_.size()); for (const auto &_value : sets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<messages_Stickers> messages_Stickers::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_stickersNotModified::ID: + return messages_stickersNotModified::fetch(p); + case messages_stickers::ID: + return messages_stickers::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_stickersNotModified::ID; + +object_ptr<messages_Stickers> messages_stickersNotModified::fetch(TlBufferParser &p) { + return make_tl_object<messages_stickersNotModified>(); +} + +void messages_stickersNotModified::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.stickersNotModified"); + s.store_class_end(); + } +} + +const std::int32_t messages_stickers::ID; + +object_ptr<messages_Stickers> messages_stickers::fetch(TlBufferParser &p) { + return make_tl_object<messages_stickers>(p); +} + +messages_stickers::messages_stickers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : hash_(TlFetchLong::parse(p)) + , stickers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p)) +#undef FAIL +{} + +void messages_stickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.stickers"); + s.store_field("hash", hash_); + { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_transcribedAudio::messages_transcribedAudio() + : flags_() + , pending_() + , transcription_id_() + , text_() +{} + +const std::int32_t messages_transcribedAudio::ID; + +object_ptr<messages_transcribedAudio> messages_transcribedAudio::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_transcribedAudio> res = make_tl_object<messages_transcribedAudio>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->pending_ = TlFetchTrue::parse(p); } + res->transcription_id_ = TlFetchLong::parse(p); + res->text_ = TlFetchString<string>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_transcribedAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.transcribedAudio"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("transcription_id", transcription_id_); + s.store_field("text", text_); + s.store_class_end(); + } +} + +object_ptr<messages_TranslatedText> messages_TranslatedText::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case messages_translateNoResult::ID: + return messages_translateNoResult::fetch(p); + case messages_translateResultText::ID: + return messages_translateResultText::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t messages_translateNoResult::ID; + +object_ptr<messages_TranslatedText> messages_translateNoResult::fetch(TlBufferParser &p) { + return make_tl_object<messages_translateNoResult>(); +} + +void messages_translateNoResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.translateNoResult"); + s.store_class_end(); + } +} + +const std::int32_t messages_translateResultText::ID; + +object_ptr<messages_TranslatedText> messages_translateResultText::fetch(TlBufferParser &p) { + return make_tl_object<messages_translateResultText>(p); +} + +messages_translateResultText::messages_translateResultText(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : text_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void messages_translateResultText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.translateResultText"); + s.store_field("text", text_); + s.store_class_end(); + } +} + +messages_votesList::messages_votesList() + : flags_() + , count_() + , votes_() + , users_() + , next_offset_() +{} + +const std::int32_t messages_votesList::ID; + +object_ptr<messages_votesList> messages_votesList::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<messages_votesList> res = make_tl_object<messages_votesList>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->count_ = TlFetchInt::parse(p); + res->votes_ = TlFetchBoxed<TlFetchVector<TlFetchObject<MessageUserVote>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (var0 & 1) { res->next_offset_ = TlFetchString<string>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void messages_votesList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.votesList"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("count", count_); + { s.store_vector_begin("votes", votes_.size()); for (const auto &_value : votes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 1) { s.store_field("next_offset", next_offset_); } + s.store_class_end(); + } +} + +const std::int32_t payments_bankCardData::ID; + +object_ptr<payments_bankCardData> payments_bankCardData::fetch(TlBufferParser &p) { + return make_tl_object<payments_bankCardData>(p); +} + +payments_bankCardData::payments_bankCardData(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : title_(TlFetchString<string>::parse(p)) + , open_urls_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<bankCardOpenUrl>, -177732982>>, 481674261>::parse(p)) +#undef FAIL +{} + +void payments_bankCardData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.bankCardData"); + s.store_field("title", title_); + { s.store_vector_begin("open_urls", open_urls_.size()); for (const auto &_value : open_urls_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t payments_exportedInvoice::ID; + +object_ptr<payments_exportedInvoice> payments_exportedInvoice::fetch(TlBufferParser &p) { + return make_tl_object<payments_exportedInvoice>(p); +} + +payments_exportedInvoice::payments_exportedInvoice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void payments_exportedInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.exportedInvoice"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +payments_paymentForm::payments_paymentForm() + : flags_() + , can_save_credentials_() + , password_missing_() + , form_id_() + , bot_id_() + , title_() + , description_() + , photo_() + , invoice_() + , provider_id_() + , url_() + , native_provider_() + , native_params_() + , additional_methods_() + , saved_info_() + , saved_credentials_() + , users_() +{} + +const std::int32_t payments_paymentForm::ID; + +object_ptr<payments_paymentForm> payments_paymentForm::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<payments_paymentForm> res = make_tl_object<payments_paymentForm>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 4) { res->can_save_credentials_ = TlFetchTrue::parse(p); } + if (var0 & 8) { res->password_missing_ = TlFetchTrue::parse(p); } + res->form_id_ = TlFetchLong::parse(p); + res->bot_id_ = TlFetchLong::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->description_ = TlFetchString<string>::parse(p); + if (var0 & 32) { res->photo_ = TlFetchObject<WebDocument>::parse(p); } + res->invoice_ = TlFetchBoxed<TlFetchObject<invoice>, 1048946971>::parse(p); + res->provider_id_ = TlFetchLong::parse(p); + res->url_ = TlFetchString<string>::parse(p); + if (var0 & 16) { res->native_provider_ = TlFetchString<string>::parse(p); } + if (var0 & 16) { res->native_params_ = TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p); } + if (var0 & 64) { res->additional_methods_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<paymentFormMethod>, -1996951013>>, 481674261>::parse(p); } + if (var0 & 1) { res->saved_info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); } + if (var0 & 2) { res->saved_credentials_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<paymentSavedCredentialsCard>, -842892769>>, 481674261>::parse(p); } + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void payments_paymentForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.paymentForm"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("form_id", form_id_); + s.store_field("bot_id", bot_id_); + s.store_field("title", title_); + s.store_field("description", description_); + if (var0 & 32) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_field("provider_id", provider_id_); + s.store_field("url", url_); + if (var0 & 16) { s.store_field("native_provider", native_provider_); } + if (var0 & 16) { s.store_object_field("native_params", static_cast<const BaseObject *>(native_params_.get())); } + if (var0 & 64) { { s.store_vector_begin("additional_methods", additional_methods_.size()); for (const auto &_value : additional_methods_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 1) { s.store_object_field("saved_info", static_cast<const BaseObject *>(saved_info_.get())); } + if (var0 & 2) { { s.store_vector_begin("saved_credentials", saved_credentials_.size()); for (const auto &_value : saved_credentials_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +payments_paymentReceipt::payments_paymentReceipt() + : flags_() + , date_() + , bot_id_() + , provider_id_() + , title_() + , description_() + , photo_() + , invoice_() + , info_() + , shipping_() + , tip_amount_() + , currency_() + , total_amount_() + , credentials_title_() + , users_() +{} + +const std::int32_t payments_paymentReceipt::ID; + +object_ptr<payments_paymentReceipt> payments_paymentReceipt::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<payments_paymentReceipt> res = make_tl_object<payments_paymentReceipt>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + res->date_ = TlFetchInt::parse(p); + res->bot_id_ = TlFetchLong::parse(p); + res->provider_id_ = TlFetchLong::parse(p); + res->title_ = TlFetchString<string>::parse(p); + res->description_ = TlFetchString<string>::parse(p); + if (var0 & 4) { res->photo_ = TlFetchObject<WebDocument>::parse(p); } + res->invoice_ = TlFetchBoxed<TlFetchObject<invoice>, 1048946971>::parse(p); + if (var0 & 1) { res->info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); } + if (var0 & 2) { res->shipping_ = TlFetchBoxed<TlFetchObject<shippingOption>, -1239335713>::parse(p); } + if (var0 & 8) { res->tip_amount_ = TlFetchLong::parse(p); } + res->currency_ = TlFetchString<string>::parse(p); + res->total_amount_ = TlFetchLong::parse(p); + res->credentials_title_ = TlFetchString<string>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void payments_paymentReceipt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.paymentReceipt"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("date", date_); + s.store_field("bot_id", bot_id_); + s.store_field("provider_id", provider_id_); + s.store_field("title", title_); + s.store_field("description", description_); + if (var0 & 4) { s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); } + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + if (var0 & 1) { s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); } + if (var0 & 2) { s.store_object_field("shipping", static_cast<const BaseObject *>(shipping_.get())); } + if (var0 & 8) { s.store_field("tip_amount", tip_amount_); } + s.store_field("currency", currency_); + s.store_field("total_amount", total_amount_); + s.store_field("credentials_title", credentials_title_); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<payments_PaymentResult> payments_PaymentResult::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case payments_paymentResult::ID: + return payments_paymentResult::fetch(p); + case payments_paymentVerificationNeeded::ID: + return payments_paymentVerificationNeeded::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t payments_paymentResult::ID; + +object_ptr<payments_PaymentResult> payments_paymentResult::fetch(TlBufferParser &p) { + return make_tl_object<payments_paymentResult>(p); +} + +payments_paymentResult::payments_paymentResult(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : updates_(TlFetchObject<Updates>::parse(p)) +#undef FAIL +{} + +void payments_paymentResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.paymentResult"); + s.store_object_field("updates", static_cast<const BaseObject *>(updates_.get())); + s.store_class_end(); + } +} + +const std::int32_t payments_paymentVerificationNeeded::ID; + +object_ptr<payments_PaymentResult> payments_paymentVerificationNeeded::fetch(TlBufferParser &p) { + return make_tl_object<payments_paymentVerificationNeeded>(p); +} + +payments_paymentVerificationNeeded::payments_paymentVerificationNeeded(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void payments_paymentVerificationNeeded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.paymentVerificationNeeded"); + s.store_field("url", url_); + s.store_class_end(); + } +} + +payments_savedInfo::payments_savedInfo() + : flags_() + , has_saved_credentials_() + , saved_info_() +{} + +const std::int32_t payments_savedInfo::ID; + +object_ptr<payments_savedInfo> payments_savedInfo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<payments_savedInfo> res = make_tl_object<payments_savedInfo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 2) { res->has_saved_credentials_ = TlFetchTrue::parse(p); } + if (var0 & 1) { res->saved_info_ = TlFetchBoxed<TlFetchObject<paymentRequestedInfo>, -1868808300>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void payments_savedInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.savedInfo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("saved_info", static_cast<const BaseObject *>(saved_info_.get())); } + s.store_class_end(); + } +} + +payments_validatedRequestedInfo::payments_validatedRequestedInfo() + : flags_() + , id_() + , shipping_options_() +{} + +const std::int32_t payments_validatedRequestedInfo::ID; + +object_ptr<payments_validatedRequestedInfo> payments_validatedRequestedInfo::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<payments_validatedRequestedInfo> res = make_tl_object<payments_validatedRequestedInfo>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->id_ = TlFetchString<string>::parse(p); } + if (var0 & 2) { res->shipping_options_ = TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<shippingOption>, -1239335713>>, 481674261>::parse(p); } + if (p.get_error()) { FAIL(""); } + return res; +#undef FAIL +} + +void payments_validatedRequestedInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.validatedRequestedInfo"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("id", id_); } + if (var0 & 2) { { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +const std::int32_t phone_exportedGroupCallInvite::ID; + +object_ptr<phone_exportedGroupCallInvite> phone_exportedGroupCallInvite::fetch(TlBufferParser &p) { + return make_tl_object<phone_exportedGroupCallInvite>(p); +} + +phone_exportedGroupCallInvite::phone_exportedGroupCallInvite(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : link_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void phone_exportedGroupCallInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.exportedGroupCallInvite"); + s.store_field("link", link_); + s.store_class_end(); + } +} + +const std::int32_t phone_groupCall::ID; + +object_ptr<phone_groupCall> phone_groupCall::fetch(TlBufferParser &p) { + return make_tl_object<phone_groupCall>(p); +} + +phone_groupCall::phone_groupCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : call_(TlFetchObject<GroupCall>::parse(p)) + , participants_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>>, 481674261>::parse(p)) + , participants_next_offset_(TlFetchString<string>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void phone_groupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.groupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("participants_next_offset", participants_next_offset_); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t phone_groupCallStreamChannels::ID; + +object_ptr<phone_groupCallStreamChannels> phone_groupCallStreamChannels::fetch(TlBufferParser &p) { + return make_tl_object<phone_groupCallStreamChannels>(p); +} + +phone_groupCallStreamChannels::phone_groupCallStreamChannels(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : channels_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallStreamChannel>, -2132064081>>, 481674261>::parse(p)) +#undef FAIL +{} + +void phone_groupCallStreamChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.groupCallStreamChannels"); + { s.store_vector_begin("channels", channels_.size()); for (const auto &_value : channels_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t phone_groupCallStreamRtmpUrl::ID; + +object_ptr<phone_groupCallStreamRtmpUrl> phone_groupCallStreamRtmpUrl::fetch(TlBufferParser &p) { + return make_tl_object<phone_groupCallStreamRtmpUrl>(p); +} + +phone_groupCallStreamRtmpUrl::phone_groupCallStreamRtmpUrl(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : url_(TlFetchString<string>::parse(p)) + , key_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void phone_groupCallStreamRtmpUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.groupCallStreamRtmpUrl"); + s.store_field("url", url_); + s.store_field("key", key_); + s.store_class_end(); + } +} + +phone_groupParticipants::phone_groupParticipants(int32 count_, array<object_ptr<groupCallParticipant>> &&participants_, string const &next_offset_, array<object_ptr<Chat>> &&chats_, array<object_ptr<User>> &&users_, int32 version_) + : count_(count_) + , participants_(std::move(participants_)) + , next_offset_(next_offset_) + , chats_(std::move(chats_)) + , users_(std::move(users_)) + , version_(version_) +{} + +const std::int32_t phone_groupParticipants::ID; + +object_ptr<phone_groupParticipants> phone_groupParticipants::fetch(TlBufferParser &p) { + return make_tl_object<phone_groupParticipants>(p); +} + +phone_groupParticipants::phone_groupParticipants(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , participants_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<groupCallParticipant>, -341428482>>, 481674261>::parse(p)) + , next_offset_(TlFetchString<string>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) + , version_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void phone_groupParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.groupParticipants"); + s.store_field("count", count_); + { s.store_vector_begin("participants", participants_.size()); for (const auto &_value : participants_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("next_offset", next_offset_); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("version", version_); + s.store_class_end(); + } +} + +const std::int32_t phone_joinAsPeers::ID; + +object_ptr<phone_joinAsPeers> phone_joinAsPeers::fetch(TlBufferParser &p) { + return make_tl_object<phone_joinAsPeers>(p); +} + +phone_joinAsPeers::phone_joinAsPeers(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : peers_(TlFetchBoxed<TlFetchVector<TlFetchObject<Peer>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void phone_joinAsPeers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.joinAsPeers"); + { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t phone_phoneCall::ID; + +object_ptr<phone_phoneCall> phone_phoneCall::fetch(TlBufferParser &p) { + return make_tl_object<phone_phoneCall>(p); +} + +phone_phoneCall::phone_phoneCall(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : phone_call_(TlFetchObject<PhoneCall>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void phone_phoneCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.phoneCall"); + s.store_object_field("phone_call", static_cast<const BaseObject *>(phone_call_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t photos_photo::ID; + +object_ptr<photos_photo> photos_photo::fetch(TlBufferParser &p) { + return make_tl_object<photos_photo>(p); +} + +photos_photo::photos_photo(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : photo_(TlFetchObject<Photo>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void photos_photo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photos.photo"); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<photos_Photos> photos_Photos::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case photos_photos::ID: + return photos_photos::fetch(p); + case photos_photosSlice::ID: + return photos_photosSlice::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t photos_photos::ID; + +object_ptr<photos_Photos> photos_photos::fetch(TlBufferParser &p) { + return make_tl_object<photos_photos>(p); +} + +photos_photos::photos_photos(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : photos_(TlFetchBoxed<TlFetchVector<TlFetchObject<Photo>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void photos_photos::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photos.photos"); + { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t photos_photosSlice::ID; + +object_ptr<photos_Photos> photos_photosSlice::fetch(TlBufferParser &p) { + return make_tl_object<photos_photosSlice>(p); +} + +photos_photosSlice::photos_photosSlice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : count_(TlFetchInt::parse(p)) + , photos_(TlFetchBoxed<TlFetchVector<TlFetchObject<Photo>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void photos_photosSlice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photos.photosSlice"); + s.store_field("count", count_); + { s.store_vector_begin("photos", photos_.size()); for (const auto &_value : photos_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t stats_broadcastStats::ID; + +object_ptr<stats_broadcastStats> stats_broadcastStats::fetch(TlBufferParser &p) { + return make_tl_object<stats_broadcastStats>(p); +} + +stats_broadcastStats::stats_broadcastStats(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : period_(TlFetchBoxed<TlFetchObject<statsDateRangeDays>, -1237848657>::parse(p)) + , followers_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p)) + , views_per_post_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p)) + , shares_per_post_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p)) + , enabled_notifications_(TlFetchBoxed<TlFetchObject<statsPercentValue>, -875679776>::parse(p)) + , growth_graph_(TlFetchObject<StatsGraph>::parse(p)) + , followers_graph_(TlFetchObject<StatsGraph>::parse(p)) + , mute_graph_(TlFetchObject<StatsGraph>::parse(p)) + , top_hours_graph_(TlFetchObject<StatsGraph>::parse(p)) + , interactions_graph_(TlFetchObject<StatsGraph>::parse(p)) + , iv_interactions_graph_(TlFetchObject<StatsGraph>::parse(p)) + , views_by_source_graph_(TlFetchObject<StatsGraph>::parse(p)) + , new_followers_by_source_graph_(TlFetchObject<StatsGraph>::parse(p)) + , languages_graph_(TlFetchObject<StatsGraph>::parse(p)) + , recent_message_interactions_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messageInteractionCounters>, -1387279939>>, 481674261>::parse(p)) +#undef FAIL +{} + +void stats_broadcastStats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.broadcastStats"); + s.store_object_field("period", static_cast<const BaseObject *>(period_.get())); + s.store_object_field("followers", static_cast<const BaseObject *>(followers_.get())); + s.store_object_field("views_per_post", static_cast<const BaseObject *>(views_per_post_.get())); + s.store_object_field("shares_per_post", static_cast<const BaseObject *>(shares_per_post_.get())); + s.store_object_field("enabled_notifications", static_cast<const BaseObject *>(enabled_notifications_.get())); + s.store_object_field("growth_graph", static_cast<const BaseObject *>(growth_graph_.get())); + s.store_object_field("followers_graph", static_cast<const BaseObject *>(followers_graph_.get())); + s.store_object_field("mute_graph", static_cast<const BaseObject *>(mute_graph_.get())); + s.store_object_field("top_hours_graph", static_cast<const BaseObject *>(top_hours_graph_.get())); + s.store_object_field("interactions_graph", static_cast<const BaseObject *>(interactions_graph_.get())); + s.store_object_field("iv_interactions_graph", static_cast<const BaseObject *>(iv_interactions_graph_.get())); + s.store_object_field("views_by_source_graph", static_cast<const BaseObject *>(views_by_source_graph_.get())); + s.store_object_field("new_followers_by_source_graph", static_cast<const BaseObject *>(new_followers_by_source_graph_.get())); + s.store_object_field("languages_graph", static_cast<const BaseObject *>(languages_graph_.get())); + { s.store_vector_begin("recent_message_interactions", recent_message_interactions_.size()); for (const auto &_value : recent_message_interactions_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t stats_megagroupStats::ID; + +object_ptr<stats_megagroupStats> stats_megagroupStats::fetch(TlBufferParser &p) { + return make_tl_object<stats_megagroupStats>(p); +} + +stats_megagroupStats::stats_megagroupStats(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : period_(TlFetchBoxed<TlFetchObject<statsDateRangeDays>, -1237848657>::parse(p)) + , members_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p)) + , messages_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p)) + , viewers_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p)) + , posters_(TlFetchBoxed<TlFetchObject<statsAbsValueAndPrev>, -884757282>::parse(p)) + , growth_graph_(TlFetchObject<StatsGraph>::parse(p)) + , members_graph_(TlFetchObject<StatsGraph>::parse(p)) + , new_members_by_source_graph_(TlFetchObject<StatsGraph>::parse(p)) + , languages_graph_(TlFetchObject<StatsGraph>::parse(p)) + , messages_graph_(TlFetchObject<StatsGraph>::parse(p)) + , actions_graph_(TlFetchObject<StatsGraph>::parse(p)) + , top_hours_graph_(TlFetchObject<StatsGraph>::parse(p)) + , weekdays_graph_(TlFetchObject<StatsGraph>::parse(p)) + , top_posters_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<statsGroupTopPoster>, -1660637285>>, 481674261>::parse(p)) + , top_admins_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<statsGroupTopAdmin>, -682079097>>, 481674261>::parse(p)) + , top_inviters_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<statsGroupTopInviter>, 1398765469>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void stats_megagroupStats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.megagroupStats"); + s.store_object_field("period", static_cast<const BaseObject *>(period_.get())); + s.store_object_field("members", static_cast<const BaseObject *>(members_.get())); + s.store_object_field("messages", static_cast<const BaseObject *>(messages_.get())); + s.store_object_field("viewers", static_cast<const BaseObject *>(viewers_.get())); + s.store_object_field("posters", static_cast<const BaseObject *>(posters_.get())); + s.store_object_field("growth_graph", static_cast<const BaseObject *>(growth_graph_.get())); + s.store_object_field("members_graph", static_cast<const BaseObject *>(members_graph_.get())); + s.store_object_field("new_members_by_source_graph", static_cast<const BaseObject *>(new_members_by_source_graph_.get())); + s.store_object_field("languages_graph", static_cast<const BaseObject *>(languages_graph_.get())); + s.store_object_field("messages_graph", static_cast<const BaseObject *>(messages_graph_.get())); + s.store_object_field("actions_graph", static_cast<const BaseObject *>(actions_graph_.get())); + s.store_object_field("top_hours_graph", static_cast<const BaseObject *>(top_hours_graph_.get())); + s.store_object_field("weekdays_graph", static_cast<const BaseObject *>(weekdays_graph_.get())); + { s.store_vector_begin("top_posters", top_posters_.size()); for (const auto &_value : top_posters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("top_admins", top_admins_.size()); for (const auto &_value : top_admins_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("top_inviters", top_inviters_.size()); for (const auto &_value : top_inviters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t stats_messageStats::ID; + +object_ptr<stats_messageStats> stats_messageStats::fetch(TlBufferParser &p) { + return make_tl_object<stats_messageStats>(p); +} + +stats_messageStats::stats_messageStats(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : views_graph_(TlFetchObject<StatsGraph>::parse(p)) +#undef FAIL +{} + +void stats_messageStats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.messageStats"); + s.store_object_field("views_graph", static_cast<const BaseObject *>(views_graph_.get())); + s.store_class_end(); + } +} + +const std::int32_t stickers_suggestedShortName::ID; + +object_ptr<stickers_suggestedShortName> stickers_suggestedShortName::fetch(TlBufferParser &p) { + return make_tl_object<stickers_suggestedShortName>(p); +} + +stickers_suggestedShortName::stickers_suggestedShortName(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : short_name_(TlFetchString<string>::parse(p)) +#undef FAIL +{} + +void stickers_suggestedShortName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.suggestedShortName"); + s.store_field("short_name", short_name_); + s.store_class_end(); + } +} + +object_ptr<storage_FileType> storage_FileType::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case storage_fileUnknown::ID: + return storage_fileUnknown::fetch(p); + case storage_filePartial::ID: + return storage_filePartial::fetch(p); + case storage_fileJpeg::ID: + return storage_fileJpeg::fetch(p); + case storage_fileGif::ID: + return storage_fileGif::fetch(p); + case storage_filePng::ID: + return storage_filePng::fetch(p); + case storage_filePdf::ID: + return storage_filePdf::fetch(p); + case storage_fileMp3::ID: + return storage_fileMp3::fetch(p); + case storage_fileMov::ID: + return storage_fileMov::fetch(p); + case storage_fileMp4::ID: + return storage_fileMp4::fetch(p); + case storage_fileWebp::ID: + return storage_fileWebp::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t storage_fileUnknown::ID; + +object_ptr<storage_FileType> storage_fileUnknown::fetch(TlBufferParser &p) { + return make_tl_object<storage_fileUnknown>(); +} + +void storage_fileUnknown::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.fileUnknown"); + s.store_class_end(); + } +} + +const std::int32_t storage_filePartial::ID; + +object_ptr<storage_FileType> storage_filePartial::fetch(TlBufferParser &p) { + return make_tl_object<storage_filePartial>(); +} + +void storage_filePartial::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.filePartial"); + s.store_class_end(); + } +} + +const std::int32_t storage_fileJpeg::ID; + +object_ptr<storage_FileType> storage_fileJpeg::fetch(TlBufferParser &p) { + return make_tl_object<storage_fileJpeg>(); +} + +void storage_fileJpeg::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.fileJpeg"); + s.store_class_end(); + } +} + +const std::int32_t storage_fileGif::ID; + +object_ptr<storage_FileType> storage_fileGif::fetch(TlBufferParser &p) { + return make_tl_object<storage_fileGif>(); +} + +void storage_fileGif::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.fileGif"); + s.store_class_end(); + } +} + +const std::int32_t storage_filePng::ID; + +object_ptr<storage_FileType> storage_filePng::fetch(TlBufferParser &p) { + return make_tl_object<storage_filePng>(); +} + +void storage_filePng::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.filePng"); + s.store_class_end(); + } +} + +const std::int32_t storage_filePdf::ID; + +object_ptr<storage_FileType> storage_filePdf::fetch(TlBufferParser &p) { + return make_tl_object<storage_filePdf>(); +} + +void storage_filePdf::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.filePdf"); + s.store_class_end(); + } +} + +const std::int32_t storage_fileMp3::ID; + +object_ptr<storage_FileType> storage_fileMp3::fetch(TlBufferParser &p) { + return make_tl_object<storage_fileMp3>(); +} + +void storage_fileMp3::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.fileMp3"); + s.store_class_end(); + } +} + +const std::int32_t storage_fileMov::ID; + +object_ptr<storage_FileType> storage_fileMov::fetch(TlBufferParser &p) { + return make_tl_object<storage_fileMov>(); +} + +void storage_fileMov::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.fileMov"); + s.store_class_end(); + } +} + +const std::int32_t storage_fileMp4::ID; + +object_ptr<storage_FileType> storage_fileMp4::fetch(TlBufferParser &p) { + return make_tl_object<storage_fileMp4>(); +} + +void storage_fileMp4::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.fileMp4"); + s.store_class_end(); + } +} + +const std::int32_t storage_fileWebp::ID; + +object_ptr<storage_FileType> storage_fileWebp::fetch(TlBufferParser &p) { + return make_tl_object<storage_fileWebp>(); +} + +void storage_fileWebp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "storage.fileWebp"); + s.store_class_end(); + } +} + +object_ptr<updates_ChannelDifference> updates_ChannelDifference::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case updates_channelDifferenceEmpty::ID: + return updates_channelDifferenceEmpty::fetch(p); + case updates_channelDifferenceTooLong::ID: + return updates_channelDifferenceTooLong::fetch(p); + case updates_channelDifference::ID: + return updates_channelDifference::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +updates_channelDifferenceEmpty::updates_channelDifferenceEmpty() + : flags_() + , final_() + , pts_() + , timeout_() +{} + +const std::int32_t updates_channelDifferenceEmpty::ID; + +object_ptr<updates_ChannelDifference> updates_channelDifferenceEmpty::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updates_channelDifferenceEmpty> res = make_tl_object<updates_channelDifferenceEmpty>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->final_ = TlFetchTrue::parse(p); } + res->pts_ = TlFetchInt::parse(p); + if (var0 & 2) { res->timeout_ = TlFetchInt::parse(p); } + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updates_channelDifferenceEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.channelDifferenceEmpty"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("pts", pts_); + if (var0 & 2) { s.store_field("timeout", timeout_); } + s.store_class_end(); + } +} + +updates_channelDifferenceTooLong::updates_channelDifferenceTooLong() + : flags_() + , final_() + , timeout_() + , dialog_() + , messages_() + , chats_() + , users_() +{} + +const std::int32_t updates_channelDifferenceTooLong::ID; + +object_ptr<updates_ChannelDifference> updates_channelDifferenceTooLong::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updates_channelDifferenceTooLong> res = make_tl_object<updates_channelDifferenceTooLong>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->final_ = TlFetchTrue::parse(p); } + if (var0 & 2) { res->timeout_ = TlFetchInt::parse(p); } + res->dialog_ = TlFetchObject<Dialog>::parse(p); + res->messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updates_channelDifferenceTooLong::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.channelDifferenceTooLong"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_field("timeout", timeout_); } + s.store_object_field("dialog", static_cast<const BaseObject *>(dialog_.get())); + { s.store_vector_begin("messages", messages_.size()); for (const auto &_value : messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +updates_channelDifference::updates_channelDifference() + : flags_() + , final_() + , pts_() + , timeout_() + , new_messages_() + , other_updates_() + , chats_() + , users_() +{} + +const std::int32_t updates_channelDifference::ID; + +object_ptr<updates_ChannelDifference> updates_channelDifference::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + object_ptr<updates_channelDifference> res = make_tl_object<updates_channelDifference>(); + int32 var0; + if ((var0 = res->flags_ = TlFetchInt::parse(p)) < 0) { FAIL("Variable of type # can't be negative"); } + if (var0 & 1) { res->final_ = TlFetchTrue::parse(p); } + res->pts_ = TlFetchInt::parse(p); + if (var0 & 2) { res->timeout_ = TlFetchInt::parse(p); } + res->new_messages_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p); + res->other_updates_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p); + res->chats_ = TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p); + res->users_ = TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); + if (p.get_error()) { FAIL(""); } + return std::move(res); +#undef FAIL +} + +void updates_channelDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.channelDifference"); + int32 var0; + s.store_field("flags", (var0 = flags_)); + s.store_field("pts", pts_); + if (var0 & 2) { s.store_field("timeout", timeout_); } + { s.store_vector_begin("new_messages", new_messages_.size()); for (const auto &_value : new_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("other_updates", other_updates_.size()); for (const auto &_value : other_updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +object_ptr<updates_Difference> updates_Difference::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case updates_differenceEmpty::ID: + return updates_differenceEmpty::fetch(p); + case updates_difference::ID: + return updates_difference::fetch(p); + case updates_differenceSlice::ID: + return updates_differenceSlice::fetch(p); + case updates_differenceTooLong::ID: + return updates_differenceTooLong::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t updates_differenceEmpty::ID; + +object_ptr<updates_Difference> updates_differenceEmpty::fetch(TlBufferParser &p) { + return make_tl_object<updates_differenceEmpty>(p); +} + +updates_differenceEmpty::updates_differenceEmpty(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : date_(TlFetchInt::parse(p)) + , seq_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updates_differenceEmpty::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.differenceEmpty"); + s.store_field("date", date_); + s.store_field("seq", seq_); + s.store_class_end(); + } +} + +const std::int32_t updates_difference::ID; + +object_ptr<updates_Difference> updates_difference::fetch(TlBufferParser &p) { + return make_tl_object<updates_difference>(p); +} + +updates_difference::updates_difference(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : new_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p)) + , new_encrypted_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<EncryptedMessage>>, 481674261>::parse(p)) + , other_updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) + , state_(TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p)) +#undef FAIL +{} + +void updates_difference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.difference"); + { s.store_vector_begin("new_messages", new_messages_.size()); for (const auto &_value : new_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("new_encrypted_messages", new_encrypted_messages_.size()); for (const auto &_value : new_encrypted_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("other_updates", other_updates_.size()); for (const auto &_value : other_updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("state", static_cast<const BaseObject *>(state_.get())); + s.store_class_end(); + } +} + +const std::int32_t updates_differenceSlice::ID; + +object_ptr<updates_Difference> updates_differenceSlice::fetch(TlBufferParser &p) { + return make_tl_object<updates_differenceSlice>(p); +} + +updates_differenceSlice::updates_differenceSlice(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : new_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<Message>>, 481674261>::parse(p)) + , new_encrypted_messages_(TlFetchBoxed<TlFetchVector<TlFetchObject<EncryptedMessage>>, 481674261>::parse(p)) + , other_updates_(TlFetchBoxed<TlFetchVector<TlFetchObject<Update>>, 481674261>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) + , intermediate_state_(TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p)) +#undef FAIL +{} + +void updates_differenceSlice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.differenceSlice"); + { s.store_vector_begin("new_messages", new_messages_.size()); for (const auto &_value : new_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("new_encrypted_messages", new_encrypted_messages_.size()); for (const auto &_value : new_encrypted_messages_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("other_updates", other_updates_.size()); for (const auto &_value : other_updates_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("intermediate_state", static_cast<const BaseObject *>(intermediate_state_.get())); + s.store_class_end(); + } +} + +const std::int32_t updates_differenceTooLong::ID; + +object_ptr<updates_Difference> updates_differenceTooLong::fetch(TlBufferParser &p) { + return make_tl_object<updates_differenceTooLong>(p); +} + +updates_differenceTooLong::updates_differenceTooLong(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : pts_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updates_differenceTooLong::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.differenceTooLong"); + s.store_field("pts", pts_); + s.store_class_end(); + } +} + +const std::int32_t updates_state::ID; + +object_ptr<updates_state> updates_state::fetch(TlBufferParser &p) { + return make_tl_object<updates_state>(p); +} + +updates_state::updates_state(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : pts_(TlFetchInt::parse(p)) + , qts_(TlFetchInt::parse(p)) + , date_(TlFetchInt::parse(p)) + , seq_(TlFetchInt::parse(p)) + , unread_count_(TlFetchInt::parse(p)) +#undef FAIL +{} + +void updates_state::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.state"); + s.store_field("pts", pts_); + s.store_field("qts", qts_); + s.store_field("date", date_); + s.store_field("seq", seq_); + s.store_field("unread_count", unread_count_); + s.store_class_end(); + } +} + +object_ptr<upload_CdnFile> upload_CdnFile::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case upload_cdnFileReuploadNeeded::ID: + return upload_cdnFileReuploadNeeded::fetch(p); + case upload_cdnFile::ID: + return upload_cdnFile::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t upload_cdnFileReuploadNeeded::ID; + +object_ptr<upload_CdnFile> upload_cdnFileReuploadNeeded::fetch(TlBufferParser &p) { + return make_tl_object<upload_cdnFileReuploadNeeded>(p); +} + +upload_cdnFileReuploadNeeded::upload_cdnFileReuploadNeeded(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : request_token_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void upload_cdnFileReuploadNeeded::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.cdnFileReuploadNeeded"); + s.store_bytes_field("request_token", request_token_); + s.store_class_end(); + } +} + +const std::int32_t upload_cdnFile::ID; + +object_ptr<upload_CdnFile> upload_cdnFile::fetch(TlBufferParser &p) { + return make_tl_object<upload_cdnFile>(p); +} + +upload_cdnFile::upload_cdnFile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void upload_cdnFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.cdnFile"); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +object_ptr<upload_File> upload_File::fetch(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return nullptr; + int constructor = p.fetch_int(); + switch (constructor) { + case upload_file::ID: + return upload_file::fetch(p); + case upload_fileCdnRedirect::ID: + return upload_fileCdnRedirect::fetch(p); + default: + FAIL(PSTRING() << "Unknown constructor found " << format::as_hex(constructor)); + } +#undef FAIL +} + +const std::int32_t upload_file::ID; + +object_ptr<upload_File> upload_file::fetch(TlBufferParser &p) { + return make_tl_object<upload_file>(p); +} + +upload_file::upload_file(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : type_(TlFetchObject<storage_FileType>::parse(p)) + , mtime_(TlFetchInt::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void upload_file::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.file"); + s.store_object_field("type", static_cast<const BaseObject *>(type_.get())); + s.store_field("mtime", mtime_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +const std::int32_t upload_fileCdnRedirect::ID; + +object_ptr<upload_File> upload_fileCdnRedirect::fetch(TlBufferParser &p) { + return make_tl_object<upload_fileCdnRedirect>(p); +} + +upload_fileCdnRedirect::upload_fileCdnRedirect(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : dc_id_(TlFetchInt::parse(p)) + , file_token_(TlFetchBytes<bytes>::parse(p)) + , encryption_key_(TlFetchBytes<bytes>::parse(p)) + , encryption_iv_(TlFetchBytes<bytes>::parse(p)) + , file_hashes_(TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p)) +#undef FAIL +{} + +void upload_fileCdnRedirect::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.fileCdnRedirect"); + s.store_field("dc_id", dc_id_); + s.store_bytes_field("file_token", file_token_); + s.store_bytes_field("encryption_key", encryption_key_); + s.store_bytes_field("encryption_iv", encryption_iv_); + { s.store_vector_begin("file_hashes", file_hashes_.size()); for (const auto &_value : file_hashes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +const std::int32_t upload_webFile::ID; + +object_ptr<upload_webFile> upload_webFile::fetch(TlBufferParser &p) { + return make_tl_object<upload_webFile>(p); +} + +upload_webFile::upload_webFile(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : size_(TlFetchInt::parse(p)) + , mime_type_(TlFetchString<string>::parse(p)) + , file_type_(TlFetchObject<storage_FileType>::parse(p)) + , mtime_(TlFetchInt::parse(p)) + , bytes_(TlFetchBytes<bytes>::parse(p)) +#undef FAIL +{} + +void upload_webFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.webFile"); + s.store_field("size", size_); + s.store_field("mime_type", mime_type_); + s.store_object_field("file_type", static_cast<const BaseObject *>(file_type_.get())); + s.store_field("mtime", mtime_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +const std::int32_t users_userFull::ID; + +object_ptr<users_userFull> users_userFull::fetch(TlBufferParser &p) { + return make_tl_object<users_userFull>(p); +} + +users_userFull::users_userFull(TlBufferParser &p) +#define FAIL(error) p.set_error(error) + : full_user_(TlFetchBoxed<TlFetchObject<userFull>, -994968513>::parse(p)) + , chats_(TlFetchBoxed<TlFetchVector<TlFetchObject<Chat>>, 481674261>::parse(p)) + , users_(TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p)) +#undef FAIL +{} + +void users_userFull::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "users.userFull"); + s.store_object_field("full_user", static_cast<const BaseObject *>(full_user_.get())); + { s.store_vector_begin("chats", chats_.size()); for (const auto &_value : chats_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_acceptAuthorization::account_acceptAuthorization(int64 bot_id_, string const &scope_, string const &public_key_, array<object_ptr<secureValueHash>> &&value_hashes_, object_ptr<secureCredentialsEncrypted> &&credentials_) + : bot_id_(bot_id_) + , scope_(scope_) + , public_key_(public_key_) + , value_hashes_(std::move(value_hashes_)) + , credentials_(std::move(credentials_)) +{} + +const std::int32_t account_acceptAuthorization::ID; + +void account_acceptAuthorization::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-202552205); + TlStoreBinary::store(bot_id_, s); + TlStoreString::store(scope_, s); + TlStoreString::store(public_key_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -316748368>>, 481674261>::store(value_hashes_, s); + TlStoreBoxed<TlStoreObject, 871426631>::store(credentials_, s); +} + +void account_acceptAuthorization::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-202552205); + TlStoreBinary::store(bot_id_, s); + TlStoreString::store(scope_, s); + TlStoreString::store(public_key_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -316748368>>, 481674261>::store(value_hashes_, s); + TlStoreBoxed<TlStoreObject, 871426631>::store(credentials_, s); +} + +void account_acceptAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.acceptAuthorization"); + s.store_field("bot_id", bot_id_); + s.store_field("scope", scope_); + s.store_field("public_key", public_key_); + { s.store_vector_begin("value_hashes", value_hashes_.size()); for (const auto &_value : value_hashes_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get())); + s.store_class_end(); + } +} + +account_acceptAuthorization::ReturnType account_acceptAuthorization::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_cancelPasswordEmail::ID; + +void account_cancelPasswordEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1043606090); +} + +void account_cancelPasswordEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1043606090); +} + +void account_cancelPasswordEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.cancelPasswordEmail"); + s.store_class_end(); + } +} + +account_cancelPasswordEmail::ReturnType account_cancelPasswordEmail::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_changeAuthorizationSettings::account_changeAuthorizationSettings(int32 flags_, int64 hash_, bool encrypted_requests_disabled_, bool call_requests_disabled_) + : flags_(flags_) + , hash_(hash_) + , encrypted_requests_disabled_(encrypted_requests_disabled_) + , call_requests_disabled_(call_requests_disabled_) +{} + +const std::int32_t account_changeAuthorizationSettings::ID; + +void account_changeAuthorizationSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1089766498); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(hash_, s); + if (var0 & 1) { TlStoreBool::store(encrypted_requests_disabled_, s); } + if (var0 & 2) { TlStoreBool::store(call_requests_disabled_, s); } +} + +void account_changeAuthorizationSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1089766498); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(hash_, s); + if (var0 & 1) { TlStoreBool::store(encrypted_requests_disabled_, s); } + if (var0 & 2) { TlStoreBool::store(call_requests_disabled_, s); } +} + +void account_changeAuthorizationSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.changeAuthorizationSettings"); + s.store_field("flags", (var0 = flags_)); + s.store_field("hash", hash_); + if (var0 & 1) { s.store_field("encrypted_requests_disabled", encrypted_requests_disabled_); } + if (var0 & 2) { s.store_field("call_requests_disabled", call_requests_disabled_); } + s.store_class_end(); + } +} + +account_changeAuthorizationSettings::ReturnType account_changeAuthorizationSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_changePhone::account_changePhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_) + : phone_number_(phone_number_) + , phone_code_hash_(phone_code_hash_) + , phone_code_(phone_code_) +{} + +const std::int32_t account_changePhone::ID; + +void account_changePhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1891839707); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(phone_code_, s); +} + +void account_changePhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1891839707); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(phone_code_, s); +} + +void account_changePhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.changePhone"); + s.store_field("phone_number", phone_number_); + s.store_field("phone_code_hash", phone_code_hash_); + s.store_field("phone_code", phone_code_); + s.store_class_end(); + } +} + +account_changePhone::ReturnType account_changePhone::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<User>::parse(p); +#undef FAIL +} + +account_checkUsername::account_checkUsername(string const &username_) + : username_(username_) +{} + +const std::int32_t account_checkUsername::ID; + +void account_checkUsername::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(655677548); + TlStoreString::store(username_, s); +} + +void account_checkUsername::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(655677548); + TlStoreString::store(username_, s); +} + +void account_checkUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.checkUsername"); + s.store_field("username", username_); + s.store_class_end(); + } +} + +account_checkUsername::ReturnType account_checkUsername::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_clearRecentEmojiStatuses::ID; + +void account_clearRecentEmojiStatuses::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(404757166); +} + +void account_clearRecentEmojiStatuses::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(404757166); +} + +void account_clearRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.clearRecentEmojiStatuses"); + s.store_class_end(); + } +} + +account_clearRecentEmojiStatuses::ReturnType account_clearRecentEmojiStatuses::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_confirmPasswordEmail::account_confirmPasswordEmail(string const &code_) + : code_(code_) +{} + +const std::int32_t account_confirmPasswordEmail::ID; + +void account_confirmPasswordEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1881204448); + TlStoreString::store(code_, s); +} + +void account_confirmPasswordEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1881204448); + TlStoreString::store(code_, s); +} + +void account_confirmPasswordEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.confirmPasswordEmail"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +account_confirmPasswordEmail::ReturnType account_confirmPasswordEmail::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_confirmPhone::account_confirmPhone(string const &phone_code_hash_, string const &phone_code_) + : phone_code_hash_(phone_code_hash_) + , phone_code_(phone_code_) +{} + +const std::int32_t account_confirmPhone::ID; + +void account_confirmPhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1596029123); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(phone_code_, s); +} + +void account_confirmPhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1596029123); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(phone_code_, s); +} + +void account_confirmPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.confirmPhone"); + s.store_field("phone_code_hash", phone_code_hash_); + s.store_field("phone_code", phone_code_); + s.store_class_end(); + } +} + +account_confirmPhone::ReturnType account_confirmPhone::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_createTheme::account_createTheme(int32 flags_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_) + : flags_(flags_) + , slug_(slug_) + , title_(title_) + , document_(std::move(document_)) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_createTheme::ID; + +void account_createTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1697530880); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(slug_, s); + TlStoreString::store(title_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); } +} + +void account_createTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1697530880); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(slug_, s); + TlStoreString::store(title_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); } +} + +void account_createTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.createTheme"); + s.store_field("flags", (var0 = flags_)); + s.store_field("slug", slug_); + s.store_field("title", title_); + if (var0 & 4) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 8) { { s.store_vector_begin("settings", settings_.size()); for (const auto &_value : settings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +account_createTheme::ReturnType account_createTheme::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p); +#undef FAIL +} + +const std::int32_t account_declinePasswordReset::ID; + +void account_declinePasswordReset::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1284770294); +} + +void account_declinePasswordReset::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1284770294); +} + +void account_declinePasswordReset::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.declinePasswordReset"); + s.store_class_end(); + } +} + +account_declinePasswordReset::ReturnType account_declinePasswordReset::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_deleteAccount::account_deleteAccount(int32 flags_, string const &reason_, object_ptr<InputCheckPasswordSRP> &&password_) + : flags_(flags_) + , reason_(reason_) + , password_(std::move(password_)) +{} + +const std::int32_t account_deleteAccount::ID; + +void account_deleteAccount::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1564422284); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(reason_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); } +} + +void account_deleteAccount::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1564422284); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(reason_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); } +} + +void account_deleteAccount::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.deleteAccount"); + s.store_field("flags", (var0 = flags_)); + s.store_field("reason", reason_); + if (var0 & 1) { s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); } + s.store_class_end(); + } +} + +account_deleteAccount::ReturnType account_deleteAccount::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_deleteSecureValue::account_deleteSecureValue(array<object_ptr<SecureValueType>> &&types_) + : types_(std::move(types_)) +{} + +const std::int32_t account_deleteSecureValue::ID; + +void account_deleteSecureValue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1199522741); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s); +} + +void account_deleteSecureValue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1199522741); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s); +} + +void account_deleteSecureValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.deleteSecureValue"); + { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_deleteSecureValue::ReturnType account_deleteSecureValue::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_finishTakeoutSession::account_finishTakeoutSession(int32 flags_, bool success_) + : flags_(flags_) + , success_(success_) +{} + +const std::int32_t account_finishTakeoutSession::ID; + +void account_finishTakeoutSession::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(489050862); + TlStoreBinary::store((var0 = flags_), s); +} + +void account_finishTakeoutSession::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(489050862); + TlStoreBinary::store((var0 = flags_), s); +} + +void account_finishTakeoutSession::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.finishTakeoutSession"); + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +account_finishTakeoutSession::ReturnType account_finishTakeoutSession::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_getAccountTTL::ID; + +void account_getAccountTTL::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(150761757); +} + +void account_getAccountTTL::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(150761757); +} + +void account_getAccountTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getAccountTTL"); + s.store_class_end(); + } +} + +account_getAccountTTL::ReturnType account_getAccountTTL::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<accountDaysTTL>, -1194283041>::parse(p); +#undef FAIL +} + +const std::int32_t account_getAllSecureValues::ID; + +void account_getAllSecureValues::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1299661699); +} + +void account_getAllSecureValues::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1299661699); +} + +void account_getAllSecureValues::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getAllSecureValues"); + s.store_class_end(); + } +} + +account_getAllSecureValues::ReturnType account_getAllSecureValues::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p); +#undef FAIL +} + +account_getAuthorizationForm::account_getAuthorizationForm(int64 bot_id_, string const &scope_, string const &public_key_) + : bot_id_(bot_id_) + , scope_(scope_) + , public_key_(public_key_) +{} + +const std::int32_t account_getAuthorizationForm::ID; + +void account_getAuthorizationForm::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1456907910); + TlStoreBinary::store(bot_id_, s); + TlStoreString::store(scope_, s); + TlStoreString::store(public_key_, s); +} + +void account_getAuthorizationForm::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1456907910); + TlStoreBinary::store(bot_id_, s); + TlStoreString::store(scope_, s); + TlStoreString::store(public_key_, s); +} + +void account_getAuthorizationForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getAuthorizationForm"); + s.store_field("bot_id", bot_id_); + s.store_field("scope", scope_); + s.store_field("public_key", public_key_); + s.store_class_end(); + } +} + +account_getAuthorizationForm::ReturnType account_getAuthorizationForm::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_authorizationForm>, -1389486888>::parse(p); +#undef FAIL +} + +const std::int32_t account_getAuthorizations::ID; + +void account_getAuthorizations::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-484392616); +} + +void account_getAuthorizations::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-484392616); +} + +void account_getAuthorizations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getAuthorizations"); + s.store_class_end(); + } +} + +account_getAuthorizations::ReturnType account_getAuthorizations::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_authorizations>, 1275039392>::parse(p); +#undef FAIL +} + +const std::int32_t account_getAutoDownloadSettings::ID; + +void account_getAutoDownloadSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1457130303); +} + +void account_getAutoDownloadSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1457130303); +} + +void account_getAutoDownloadSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getAutoDownloadSettings"); + s.store_class_end(); + } +} + +account_getAutoDownloadSettings::ReturnType account_getAutoDownloadSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_autoDownloadSettings>, 1674235686>::parse(p); +#undef FAIL +} + +account_getChatThemes::account_getChatThemes(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t account_getChatThemes::ID; + +void account_getChatThemes::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-700916087); + TlStoreBinary::store(hash_, s); +} + +void account_getChatThemes::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-700916087); + TlStoreBinary::store(hash_, s); +} + +void account_getChatThemes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getChatThemes"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_getChatThemes::ReturnType account_getChatThemes::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_Themes>::parse(p); +#undef FAIL +} + +const std::int32_t account_getContactSignUpNotification::ID; + +void account_getContactSignUpNotification::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1626880216); +} + +void account_getContactSignUpNotification::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1626880216); +} + +void account_getContactSignUpNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getContactSignUpNotification"); + s.store_class_end(); + } +} + +account_getContactSignUpNotification::ReturnType account_getContactSignUpNotification::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_getContentSettings::ID; + +void account_getContentSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1952756306); +} + +void account_getContentSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1952756306); +} + +void account_getContentSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getContentSettings"); + s.store_class_end(); + } +} + +account_getContentSettings::ReturnType account_getContentSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_contentSettings>, 1474462241>::parse(p); +#undef FAIL +} + +account_getDefaultEmojiStatuses::account_getDefaultEmojiStatuses(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t account_getDefaultEmojiStatuses::ID; + +void account_getDefaultEmojiStatuses::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-696962170); + TlStoreBinary::store(hash_, s); +} + +void account_getDefaultEmojiStatuses::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-696962170); + TlStoreBinary::store(hash_, s); +} + +void account_getDefaultEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getDefaultEmojiStatuses"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_getDefaultEmojiStatuses::ReturnType account_getDefaultEmojiStatuses::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_EmojiStatuses>::parse(p); +#undef FAIL +} + +const std::int32_t account_getGlobalPrivacySettings::ID; + +void account_getGlobalPrivacySettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-349483786); +} + +void account_getGlobalPrivacySettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-349483786); +} + +void account_getGlobalPrivacySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getGlobalPrivacySettings"); + s.store_class_end(); + } +} + +account_getGlobalPrivacySettings::ReturnType account_getGlobalPrivacySettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<globalPrivacySettings>, -1096616924>::parse(p); +#undef FAIL +} + +account_getMultiWallPapers::account_getMultiWallPapers(array<object_ptr<InputWallPaper>> &&wallpapers_) + : wallpapers_(std::move(wallpapers_)) +{} + +const std::int32_t account_getMultiWallPapers::ID; + +void account_getMultiWallPapers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1705865692); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(wallpapers_, s); +} + +void account_getMultiWallPapers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1705865692); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(wallpapers_, s); +} + +void account_getMultiWallPapers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getMultiWallPapers"); + { s.store_vector_begin("wallpapers", wallpapers_.size()); for (const auto &_value : wallpapers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_getMultiWallPapers::ReturnType account_getMultiWallPapers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchObject<WallPaper>>, 481674261>::parse(p); +#undef FAIL +} + +account_getNotifyExceptions::account_getNotifyExceptions(int32 flags_, bool compare_sound_, object_ptr<InputNotifyPeer> &&peer_) + : flags_(flags_) + , compare_sound_(compare_sound_) + , peer_(std::move(peer_)) +{} + +const std::int32_t account_getNotifyExceptions::ID; + +void account_getNotifyExceptions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1398240377); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } +} + +void account_getNotifyExceptions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1398240377); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } +} + +void account_getNotifyExceptions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getNotifyExceptions"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); } + s.store_class_end(); + } +} + +account_getNotifyExceptions::ReturnType account_getNotifyExceptions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +account_getNotifySettings::account_getNotifySettings(object_ptr<InputNotifyPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t account_getNotifySettings::ID; + +void account_getNotifySettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(313765169); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void account_getNotifySettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(313765169); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void account_getNotifySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getNotifySettings"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +account_getNotifySettings::ReturnType account_getNotifySettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<peerNotifySettings>, -1472527322>::parse(p); +#undef FAIL +} + +const std::int32_t account_getPassword::ID; + +void account_getPassword::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1418342645); +} + +void account_getPassword::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1418342645); +} + +void account_getPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getPassword"); + s.store_class_end(); + } +} + +account_getPassword::ReturnType account_getPassword::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_password>, -1787080453>::parse(p); +#undef FAIL +} + +account_getPasswordSettings::account_getPasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_) + : password_(std::move(password_)) +{} + +const std::int32_t account_getPasswordSettings::ID; + +void account_getPasswordSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1663767815); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); +} + +void account_getPasswordSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1663767815); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); +} + +void account_getPasswordSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getPasswordSettings"); + s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); + s.store_class_end(); + } +} + +account_getPasswordSettings::ReturnType account_getPasswordSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_passwordSettings>, -1705233435>::parse(p); +#undef FAIL +} + +account_getPrivacy::account_getPrivacy(object_ptr<InputPrivacyKey> &&key_) + : key_(std::move(key_)) +{} + +const std::int32_t account_getPrivacy::ID; + +void account_getPrivacy::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-623130288); + TlStoreBoxedUnknown<TlStoreObject>::store(key_, s); +} + +void account_getPrivacy::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-623130288); + TlStoreBoxedUnknown<TlStoreObject>::store(key_, s); +} + +void account_getPrivacy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getPrivacy"); + s.store_object_field("key", static_cast<const BaseObject *>(key_.get())); + s.store_class_end(); + } +} + +account_getPrivacy::ReturnType account_getPrivacy::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_privacyRules>, 1352683077>::parse(p); +#undef FAIL +} + +account_getRecentEmojiStatuses::account_getRecentEmojiStatuses(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t account_getRecentEmojiStatuses::ID; + +void account_getRecentEmojiStatuses::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(257392901); + TlStoreBinary::store(hash_, s); +} + +void account_getRecentEmojiStatuses::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(257392901); + TlStoreBinary::store(hash_, s); +} + +void account_getRecentEmojiStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getRecentEmojiStatuses"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_getRecentEmojiStatuses::ReturnType account_getRecentEmojiStatuses::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_EmojiStatuses>::parse(p); +#undef FAIL +} + +account_getSavedRingtones::account_getSavedRingtones(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t account_getSavedRingtones::ID; + +void account_getSavedRingtones::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-510647672); + TlStoreBinary::store(hash_, s); +} + +void account_getSavedRingtones::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-510647672); + TlStoreBinary::store(hash_, s); +} + +void account_getSavedRingtones::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getSavedRingtones"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_getSavedRingtones::ReturnType account_getSavedRingtones::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_SavedRingtones>::parse(p); +#undef FAIL +} + +account_getSecureValue::account_getSecureValue(array<object_ptr<SecureValueType>> &&types_) + : types_(std::move(types_)) +{} + +const std::int32_t account_getSecureValue::ID; + +void account_getSecureValue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1936088002); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s); +} + +void account_getSecureValue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1936088002); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(types_, s); +} + +void account_getSecureValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getSecureValue"); + { s.store_vector_begin("types", types_.size()); for (const auto &_value : types_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_getSecureValue::ReturnType account_getSecureValue::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<secureValue>, 411017418>>, 481674261>::parse(p); +#undef FAIL +} + +account_getTheme::account_getTheme(string const &format_, object_ptr<InputTheme> &&theme_) + : format_(format_) + , theme_(std::move(theme_)) +{} + +const std::int32_t account_getTheme::ID; + +void account_getTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(978872812); + TlStoreString::store(format_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); +} + +void account_getTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(978872812); + TlStoreString::store(format_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); +} + +void account_getTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getTheme"); + s.store_field("format", format_); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + s.store_class_end(); + } +} + +account_getTheme::ReturnType account_getTheme::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p); +#undef FAIL +} + +account_getThemes::account_getThemes(string const &format_, int64 hash_) + : format_(format_) + , hash_(hash_) +{} + +const std::int32_t account_getThemes::ID; + +void account_getThemes::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1913054296); + TlStoreString::store(format_, s); + TlStoreBinary::store(hash_, s); +} + +void account_getThemes::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1913054296); + TlStoreString::store(format_, s); + TlStoreBinary::store(hash_, s); +} + +void account_getThemes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getThemes"); + s.store_field("format", format_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_getThemes::ReturnType account_getThemes::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_Themes>::parse(p); +#undef FAIL +} + +account_getTmpPassword::account_getTmpPassword(object_ptr<InputCheckPasswordSRP> &&password_, int32 period_) + : password_(std::move(password_)) + , period_(period_) +{} + +const std::int32_t account_getTmpPassword::ID; + +void account_getTmpPassword::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1151208273); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); + TlStoreBinary::store(period_, s); +} + +void account_getTmpPassword::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1151208273); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); + TlStoreBinary::store(period_, s); +} + +void account_getTmpPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getTmpPassword"); + s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); + s.store_field("period", period_); + s.store_class_end(); + } +} + +account_getTmpPassword::ReturnType account_getTmpPassword::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_tmpPassword>, -614138572>::parse(p); +#undef FAIL +} + +account_getWallPaper::account_getWallPaper(object_ptr<InputWallPaper> &&wallpaper_) + : wallpaper_(std::move(wallpaper_)) +{} + +const std::int32_t account_getWallPaper::ID; + +void account_getWallPaper::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-57811990); + TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); +} + +void account_getWallPaper::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-57811990); + TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); +} + +void account_getWallPaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getWallPaper"); + s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get())); + s.store_class_end(); + } +} + +account_getWallPaper::ReturnType account_getWallPaper::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<WallPaper>::parse(p); +#undef FAIL +} + +account_getWallPapers::account_getWallPapers(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t account_getWallPapers::ID; + +void account_getWallPapers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(127302966); + TlStoreBinary::store(hash_, s); +} + +void account_getWallPapers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(127302966); + TlStoreBinary::store(hash_, s); +} + +void account_getWallPapers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getWallPapers"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_getWallPapers::ReturnType account_getWallPapers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_WallPapers>::parse(p); +#undef FAIL +} + +const std::int32_t account_getWebAuthorizations::ID; + +void account_getWebAuthorizations::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(405695855); +} + +void account_getWebAuthorizations::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(405695855); +} + +void account_getWebAuthorizations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.getWebAuthorizations"); + s.store_class_end(); + } +} + +account_getWebAuthorizations::ReturnType account_getWebAuthorizations::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_webAuthorizations>, -313079300>::parse(p); +#undef FAIL +} + +account_initTakeoutSession::account_initTakeoutSession(int32 flags_, bool contacts_, bool message_users_, bool message_chats_, bool message_megagroups_, bool message_channels_, bool files_, int64 file_max_size_) + : flags_(flags_) + , contacts_(contacts_) + , message_users_(message_users_) + , message_chats_(message_chats_) + , message_megagroups_(message_megagroups_) + , message_channels_(message_channels_) + , files_(files_) + , file_max_size_(file_max_size_) +{} + +const std::int32_t account_initTakeoutSession::ID; + +void account_initTakeoutSession::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1896617296); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 32) { TlStoreBinary::store(file_max_size_, s); } +} + +void account_initTakeoutSession::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1896617296); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 32) { TlStoreBinary::store(file_max_size_, s); } +} + +void account_initTakeoutSession::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.initTakeoutSession"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 32) { s.store_field("file_max_size", file_max_size_); } + s.store_class_end(); + } +} + +account_initTakeoutSession::ReturnType account_initTakeoutSession::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_takeout>, 1304052993>::parse(p); +#undef FAIL +} + +account_installTheme::account_installTheme(int32 flags_, bool dark_, object_ptr<InputTheme> &&theme_, string const &format_, object_ptr<BaseTheme> &&base_theme_) + : flags_(flags_) + , dark_(dark_) + , theme_(std::move(theme_)) + , format_(format_) + , base_theme_(std::move(base_theme_)) +{} + +const std::int32_t account_installTheme::ID; + +void account_installTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-953697477); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); } + if (var0 & 4) { TlStoreString::store(format_, s); } + if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s); } +} + +void account_installTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-953697477); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); } + if (var0 & 4) { TlStoreString::store(format_, s); } + if (var0 & 8) { TlStoreBoxedUnknown<TlStoreObject>::store(base_theme_, s); } +} + +void account_installTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.installTheme"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); } + if (var0 & 4) { s.store_field("format", format_); } + if (var0 & 8) { s.store_object_field("base_theme", static_cast<const BaseObject *>(base_theme_.get())); } + s.store_class_end(); + } +} + +account_installTheme::ReturnType account_installTheme::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_installWallPaper::account_installWallPaper(object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&settings_) + : wallpaper_(std::move(wallpaper_)) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_installWallPaper::ID; + +void account_installWallPaper::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-18000023); + TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); + TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s); +} + +void account_installWallPaper::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-18000023); + TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); + TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s); +} + +void account_installWallPaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.installWallPaper"); + s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get())); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_installWallPaper::ReturnType account_installWallPaper::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_registerDevice::account_registerDevice(int32 flags_, bool no_muted_, int32 token_type_, string const &token_, bool app_sandbox_, bytes &&secret_, array<int64> &&other_uids_) + : flags_(flags_) + , no_muted_(no_muted_) + , token_type_(token_type_) + , token_(token_) + , app_sandbox_(app_sandbox_) + , secret_(std::move(secret_)) + , other_uids_(std::move(other_uids_)) +{} + +const std::int32_t account_registerDevice::ID; + +void account_registerDevice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-326762118); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(token_type_, s); + TlStoreString::store(token_, s); + TlStoreBool::store(app_sandbox_, s); + TlStoreString::store(secret_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s); +} + +void account_registerDevice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-326762118); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(token_type_, s); + TlStoreString::store(token_, s); + TlStoreBool::store(app_sandbox_, s); + TlStoreString::store(secret_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s); +} + +void account_registerDevice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.registerDevice"); + s.store_field("flags", (var0 = flags_)); + s.store_field("token_type", token_type_); + s.store_field("token", token_); + s.store_field("app_sandbox", app_sandbox_); + s.store_bytes_field("secret", secret_); + { s.store_vector_begin("other_uids", other_uids_.size()); for (const auto &_value : other_uids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_registerDevice::ReturnType account_registerDevice::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_reorderUsernames::account_reorderUsernames(array<string> &&order_) + : order_(std::move(order_)) +{} + +const std::int32_t account_reorderUsernames::ID; + +void account_reorderUsernames::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-279966037); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s); +} + +void account_reorderUsernames::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-279966037); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s); +} + +void account_reorderUsernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.reorderUsernames"); + { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_reorderUsernames::ReturnType account_reorderUsernames::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_reportPeer::account_reportPeer(object_ptr<InputPeer> &&peer_, object_ptr<ReportReason> &&reason_, string const &message_) + : peer_(std::move(peer_)) + , reason_(std::move(reason_)) + , message_(message_) +{} + +const std::int32_t account_reportPeer::ID; + +void account_reportPeer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-977650298); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreString::store(message_, s); +} + +void account_reportPeer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-977650298); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreString::store(message_, s); +} + +void account_reportPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.reportPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); + s.store_field("message", message_); + s.store_class_end(); + } +} + +account_reportPeer::ReturnType account_reportPeer::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_reportProfilePhoto::account_reportProfilePhoto(object_ptr<InputPeer> &&peer_, object_ptr<InputPhoto> &&photo_id_, object_ptr<ReportReason> &&reason_, string const &message_) + : peer_(std::move(peer_)) + , photo_id_(std::move(photo_id_)) + , reason_(std::move(reason_)) + , message_(message_) +{} + +const std::int32_t account_reportProfilePhoto::ID; + +void account_reportProfilePhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-91437323); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreString::store(message_, s); +} + +void account_reportProfilePhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-91437323); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreString::store(message_, s); +} + +void account_reportProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.reportProfilePhoto"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("photo_id", static_cast<const BaseObject *>(photo_id_.get())); + s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); + s.store_field("message", message_); + s.store_class_end(); + } +} + +account_reportProfilePhoto::ReturnType account_reportProfilePhoto::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_resendPasswordEmail::ID; + +void account_resendPasswordEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2055154197); +} + +void account_resendPasswordEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2055154197); +} + +void account_resendPasswordEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resendPasswordEmail"); + s.store_class_end(); + } +} + +account_resendPasswordEmail::ReturnType account_resendPasswordEmail::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_resetAuthorization::account_resetAuthorization(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t account_resetAuthorization::ID; + +void account_resetAuthorization::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-545786948); + TlStoreBinary::store(hash_, s); +} + +void account_resetAuthorization::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-545786948); + TlStoreBinary::store(hash_, s); +} + +void account_resetAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetAuthorization"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_resetAuthorization::ReturnType account_resetAuthorization::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_resetNotifySettings::ID; + +void account_resetNotifySettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-612493497); +} + +void account_resetNotifySettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-612493497); +} + +void account_resetNotifySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetNotifySettings"); + s.store_class_end(); + } +} + +account_resetNotifySettings::ReturnType account_resetNotifySettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_resetPassword::ID; + +void account_resetPassword::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1828139493); +} + +void account_resetPassword::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1828139493); +} + +void account_resetPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetPassword"); + s.store_class_end(); + } +} + +account_resetPassword::ReturnType account_resetPassword::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_ResetPasswordResult>::parse(p); +#undef FAIL +} + +const std::int32_t account_resetWallPapers::ID; + +void account_resetWallPapers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1153722364); +} + +void account_resetWallPapers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1153722364); +} + +void account_resetWallPapers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetWallPapers"); + s.store_class_end(); + } +} + +account_resetWallPapers::ReturnType account_resetWallPapers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_resetWebAuthorization::account_resetWebAuthorization(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t account_resetWebAuthorization::ID; + +void account_resetWebAuthorization::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(755087855); + TlStoreBinary::store(hash_, s); +} + +void account_resetWebAuthorization::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(755087855); + TlStoreBinary::store(hash_, s); +} + +void account_resetWebAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetWebAuthorization"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +account_resetWebAuthorization::ReturnType account_resetWebAuthorization::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t account_resetWebAuthorizations::ID; + +void account_resetWebAuthorizations::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1747789204); +} + +void account_resetWebAuthorizations::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1747789204); +} + +void account_resetWebAuthorizations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.resetWebAuthorizations"); + s.store_class_end(); + } +} + +account_resetWebAuthorizations::ReturnType account_resetWebAuthorizations::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_saveAutoDownloadSettings::account_saveAutoDownloadSettings(int32 flags_, bool low_, bool high_, object_ptr<autoDownloadSettings> &&settings_) + : flags_(flags_) + , low_(low_) + , high_(high_) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_saveAutoDownloadSettings::ID; + +void account_saveAutoDownloadSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1995661875); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -1896171181>::store(settings_, s); +} + +void account_saveAutoDownloadSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1995661875); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -1896171181>::store(settings_, s); +} + +void account_saveAutoDownloadSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.saveAutoDownloadSettings"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_saveAutoDownloadSettings::ReturnType account_saveAutoDownloadSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_saveRingtone::account_saveRingtone(object_ptr<InputDocument> &&id_, bool unsave_) + : id_(std::move(id_)) + , unsave_(unsave_) +{} + +const std::int32_t account_saveRingtone::ID; + +void account_saveRingtone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1038768899); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unsave_, s); +} + +void account_saveRingtone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1038768899); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unsave_, s); +} + +void account_saveRingtone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.saveRingtone"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_field("unsave", unsave_); + s.store_class_end(); + } +} + +account_saveRingtone::ReturnType account_saveRingtone::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_SavedRingtone>::parse(p); +#undef FAIL +} + +account_saveSecureValue::account_saveSecureValue(object_ptr<inputSecureValue> &&value_, int64 secure_secret_id_) + : value_(std::move(value_)) + , secure_secret_id_(secure_secret_id_) +{} + +const std::int32_t account_saveSecureValue::ID; + +void account_saveSecureValue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1986010339); + TlStoreBoxed<TlStoreObject, -618540889>::store(value_, s); + TlStoreBinary::store(secure_secret_id_, s); +} + +void account_saveSecureValue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1986010339); + TlStoreBoxed<TlStoreObject, -618540889>::store(value_, s); + TlStoreBinary::store(secure_secret_id_, s); +} + +void account_saveSecureValue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.saveSecureValue"); + s.store_object_field("value", static_cast<const BaseObject *>(value_.get())); + s.store_field("secure_secret_id", secure_secret_id_); + s.store_class_end(); + } +} + +account_saveSecureValue::ReturnType account_saveSecureValue::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<secureValue>, 411017418>::parse(p); +#undef FAIL +} + +account_saveTheme::account_saveTheme(object_ptr<InputTheme> &&theme_, bool unsave_) + : theme_(std::move(theme_)) + , unsave_(unsave_) +{} + +const std::int32_t account_saveTheme::ID; + +void account_saveTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-229175188); + TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); + TlStoreBool::store(unsave_, s); +} + +void account_saveTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-229175188); + TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); + TlStoreBool::store(unsave_, s); +} + +void account_saveTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.saveTheme"); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + s.store_field("unsave", unsave_); + s.store_class_end(); + } +} + +account_saveTheme::ReturnType account_saveTheme::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_saveWallPaper::account_saveWallPaper(object_ptr<InputWallPaper> &&wallpaper_, bool unsave_, object_ptr<wallPaperSettings> &&settings_) + : wallpaper_(std::move(wallpaper_)) + , unsave_(unsave_) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_saveWallPaper::ID; + +void account_saveWallPaper::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1817860919); + TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); + TlStoreBool::store(unsave_, s); + TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s); +} + +void account_saveWallPaper::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1817860919); + TlStoreBoxedUnknown<TlStoreObject>::store(wallpaper_, s); + TlStoreBool::store(unsave_, s); + TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s); +} + +void account_saveWallPaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.saveWallPaper"); + s.store_object_field("wallpaper", static_cast<const BaseObject *>(wallpaper_.get())); + s.store_field("unsave", unsave_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_saveWallPaper::ReturnType account_saveWallPaper::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_sendChangePhoneCode::account_sendChangePhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_) + : phone_number_(phone_number_) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_sendChangePhoneCode::ID; + +void account_sendChangePhoneCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2108208411); + TlStoreString::store(phone_number_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void account_sendChangePhoneCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2108208411); + TlStoreString::store(phone_number_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void account_sendChangePhoneCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.sendChangePhoneCode"); + s.store_field("phone_number", phone_number_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_sendChangePhoneCode::ReturnType account_sendChangePhoneCode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p); +#undef FAIL +} + +account_sendConfirmPhoneCode::account_sendConfirmPhoneCode(string const &hash_, object_ptr<codeSettings> &&settings_) + : hash_(hash_) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_sendConfirmPhoneCode::ID; + +void account_sendConfirmPhoneCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(457157256); + TlStoreString::store(hash_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void account_sendConfirmPhoneCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(457157256); + TlStoreString::store(hash_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void account_sendConfirmPhoneCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.sendConfirmPhoneCode"); + s.store_field("hash", hash_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_sendConfirmPhoneCode::ReturnType account_sendConfirmPhoneCode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p); +#undef FAIL +} + +account_sendVerifyEmailCode::account_sendVerifyEmailCode(object_ptr<EmailVerifyPurpose> &&purpose_, string const &email_) + : purpose_(std::move(purpose_)) + , email_(email_) +{} + +const std::int32_t account_sendVerifyEmailCode::ID; + +void account_sendVerifyEmailCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1730136133); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); + TlStoreString::store(email_, s); +} + +void account_sendVerifyEmailCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1730136133); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); + TlStoreString::store(email_, s); +} + +void account_sendVerifyEmailCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.sendVerifyEmailCode"); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_field("email", email_); + s.store_class_end(); + } +} + +account_sendVerifyEmailCode::ReturnType account_sendVerifyEmailCode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_sentEmailCode>, -2128640689>::parse(p); +#undef FAIL +} + +account_sendVerifyPhoneCode::account_sendVerifyPhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_) + : phone_number_(phone_number_) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_sendVerifyPhoneCode::ID; + +void account_sendVerifyPhoneCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1516022023); + TlStoreString::store(phone_number_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void account_sendVerifyPhoneCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1516022023); + TlStoreString::store(phone_number_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void account_sendVerifyPhoneCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.sendVerifyPhoneCode"); + s.store_field("phone_number", phone_number_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_sendVerifyPhoneCode::ReturnType account_sendVerifyPhoneCode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p); +#undef FAIL +} + +account_setAccountTTL::account_setAccountTTL(object_ptr<accountDaysTTL> &&ttl_) + : ttl_(std::move(ttl_)) +{} + +const std::int32_t account_setAccountTTL::ID; + +void account_setAccountTTL::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(608323678); + TlStoreBoxed<TlStoreObject, -1194283041>::store(ttl_, s); +} + +void account_setAccountTTL::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(608323678); + TlStoreBoxed<TlStoreObject, -1194283041>::store(ttl_, s); +} + +void account_setAccountTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.setAccountTTL"); + s.store_object_field("ttl", static_cast<const BaseObject *>(ttl_.get())); + s.store_class_end(); + } +} + +account_setAccountTTL::ReturnType account_setAccountTTL::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_setAuthorizationTTL::account_setAuthorizationTTL(int32 authorization_ttl_days_) + : authorization_ttl_days_(authorization_ttl_days_) +{} + +const std::int32_t account_setAuthorizationTTL::ID; + +void account_setAuthorizationTTL::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1081501024); + TlStoreBinary::store(authorization_ttl_days_, s); +} + +void account_setAuthorizationTTL::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1081501024); + TlStoreBinary::store(authorization_ttl_days_, s); +} + +void account_setAuthorizationTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.setAuthorizationTTL"); + s.store_field("authorization_ttl_days", authorization_ttl_days_); + s.store_class_end(); + } +} + +account_setAuthorizationTTL::ReturnType account_setAuthorizationTTL::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_setContactSignUpNotification::account_setContactSignUpNotification(bool silent_) + : silent_(silent_) +{} + +const std::int32_t account_setContactSignUpNotification::ID; + +void account_setContactSignUpNotification::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-806076575); + TlStoreBool::store(silent_, s); +} + +void account_setContactSignUpNotification::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-806076575); + TlStoreBool::store(silent_, s); +} + +void account_setContactSignUpNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.setContactSignUpNotification"); + s.store_field("silent", silent_); + s.store_class_end(); + } +} + +account_setContactSignUpNotification::ReturnType account_setContactSignUpNotification::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_setContentSettings::account_setContentSettings(int32 flags_, bool sensitive_enabled_) + : flags_(flags_) + , sensitive_enabled_(sensitive_enabled_) +{} + +const std::int32_t account_setContentSettings::ID; + +void account_setContentSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1250643605); + TlStoreBinary::store((var0 = flags_), s); +} + +void account_setContentSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1250643605); + TlStoreBinary::store((var0 = flags_), s); +} + +void account_setContentSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.setContentSettings"); + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +account_setContentSettings::ReturnType account_setContentSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_setGlobalPrivacySettings::account_setGlobalPrivacySettings(object_ptr<globalPrivacySettings> &&settings_) + : settings_(std::move(settings_)) +{} + +const std::int32_t account_setGlobalPrivacySettings::ID; + +void account_setGlobalPrivacySettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(517647042); + TlStoreBoxed<TlStoreObject, -1096616924>::store(settings_, s); +} + +void account_setGlobalPrivacySettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(517647042); + TlStoreBoxed<TlStoreObject, -1096616924>::store(settings_, s); +} + +void account_setGlobalPrivacySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.setGlobalPrivacySettings"); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_setGlobalPrivacySettings::ReturnType account_setGlobalPrivacySettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<globalPrivacySettings>, -1096616924>::parse(p); +#undef FAIL +} + +account_setPrivacy::account_setPrivacy(object_ptr<InputPrivacyKey> &&key_, array<object_ptr<InputPrivacyRule>> &&rules_) + : key_(std::move(key_)) + , rules_(std::move(rules_)) +{} + +const std::int32_t account_setPrivacy::ID; + +void account_setPrivacy::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-906486552); + TlStoreBoxedUnknown<TlStoreObject>::store(key_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(rules_, s); +} + +void account_setPrivacy::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-906486552); + TlStoreBoxedUnknown<TlStoreObject>::store(key_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(rules_, s); +} + +void account_setPrivacy::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.setPrivacy"); + s.store_object_field("key", static_cast<const BaseObject *>(key_.get())); + { s.store_vector_begin("rules", rules_.size()); for (const auto &_value : rules_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_setPrivacy::ReturnType account_setPrivacy::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<account_privacyRules>, 1352683077>::parse(p); +#undef FAIL +} + +account_toggleUsername::account_toggleUsername(string const &username_, bool active_) + : username_(username_) + , active_(active_) +{} + +const std::int32_t account_toggleUsername::ID; + +void account_toggleUsername::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1490465654); + TlStoreString::store(username_, s); + TlStoreBool::store(active_, s); +} + +void account_toggleUsername::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1490465654); + TlStoreString::store(username_, s); + TlStoreBool::store(active_, s); +} + +void account_toggleUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.toggleUsername"); + s.store_field("username", username_); + s.store_field("active", active_); + s.store_class_end(); + } +} + +account_toggleUsername::ReturnType account_toggleUsername::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_unregisterDevice::account_unregisterDevice(int32 token_type_, string const &token_, array<int64> &&other_uids_) + : token_type_(token_type_) + , token_(token_) + , other_uids_(std::move(other_uids_)) +{} + +const std::int32_t account_unregisterDevice::ID; + +void account_unregisterDevice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1779249670); + TlStoreBinary::store(token_type_, s); + TlStoreString::store(token_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s); +} + +void account_unregisterDevice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1779249670); + TlStoreBinary::store(token_type_, s); + TlStoreString::store(token_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(other_uids_, s); +} + +void account_unregisterDevice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.unregisterDevice"); + s.store_field("token_type", token_type_); + s.store_field("token", token_); + { s.store_vector_begin("other_uids", other_uids_.size()); for (const auto &_value : other_uids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +account_unregisterDevice::ReturnType account_unregisterDevice::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_updateDeviceLocked::account_updateDeviceLocked(int32 period_) + : period_(period_) +{} + +const std::int32_t account_updateDeviceLocked::ID; + +void account_updateDeviceLocked::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(954152242); + TlStoreBinary::store(period_, s); +} + +void account_updateDeviceLocked::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(954152242); + TlStoreBinary::store(period_, s); +} + +void account_updateDeviceLocked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updateDeviceLocked"); + s.store_field("period", period_); + s.store_class_end(); + } +} + +account_updateDeviceLocked::ReturnType account_updateDeviceLocked::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_updateEmojiStatus::account_updateEmojiStatus(object_ptr<EmojiStatus> &&emoji_status_) + : emoji_status_(std::move(emoji_status_)) +{} + +const std::int32_t account_updateEmojiStatus::ID; + +void account_updateEmojiStatus::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-70001045); + TlStoreBoxedUnknown<TlStoreObject>::store(emoji_status_, s); +} + +void account_updateEmojiStatus::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-70001045); + TlStoreBoxedUnknown<TlStoreObject>::store(emoji_status_, s); +} + +void account_updateEmojiStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updateEmojiStatus"); + s.store_object_field("emoji_status", static_cast<const BaseObject *>(emoji_status_.get())); + s.store_class_end(); + } +} + +account_updateEmojiStatus::ReturnType account_updateEmojiStatus::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_updateNotifySettings::account_updateNotifySettings(object_ptr<InputNotifyPeer> &&peer_, object_ptr<inputPeerNotifySettings> &&settings_) + : peer_(std::move(peer_)) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_updateNotifySettings::ID; + +void account_updateNotifySettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2067899501); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreObject, -551616469>::store(settings_, s); +} + +void account_updateNotifySettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2067899501); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreObject, -551616469>::store(settings_, s); +} + +void account_updateNotifySettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updateNotifySettings"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_updateNotifySettings::ReturnType account_updateNotifySettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_updatePasswordSettings::account_updatePasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_, object_ptr<account_passwordInputSettings> &&new_settings_) + : password_(std::move(password_)) + , new_settings_(std::move(new_settings_)) +{} + +const std::int32_t account_updatePasswordSettings::ID; + +void account_updatePasswordSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1516564433); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); + TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s); +} + +void account_updatePasswordSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1516564433); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); + TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s); +} + +void account_updatePasswordSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updatePasswordSettings"); + s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); + s.store_object_field("new_settings", static_cast<const BaseObject *>(new_settings_.get())); + s.store_class_end(); + } +} + +account_updatePasswordSettings::ReturnType account_updatePasswordSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_updateProfile::account_updateProfile(int32 flags_, string const &first_name_, string const &last_name_, string const &about_) + : flags_(flags_) + , first_name_(first_name_) + , last_name_(last_name_) + , about_(about_) +{} + +const std::int32_t account_updateProfile::ID; + +void account_updateProfile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2018596725); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreString::store(first_name_, s); } + if (var0 & 2) { TlStoreString::store(last_name_, s); } + if (var0 & 4) { TlStoreString::store(about_, s); } +} + +void account_updateProfile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2018596725); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreString::store(first_name_, s); } + if (var0 & 2) { TlStoreString::store(last_name_, s); } + if (var0 & 4) { TlStoreString::store(about_, s); } +} + +void account_updateProfile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updateProfile"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("first_name", first_name_); } + if (var0 & 2) { s.store_field("last_name", last_name_); } + if (var0 & 4) { s.store_field("about", about_); } + s.store_class_end(); + } +} + +account_updateProfile::ReturnType account_updateProfile::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<User>::parse(p); +#undef FAIL +} + +account_updateStatus::account_updateStatus(bool offline_) + : offline_(offline_) +{} + +const std::int32_t account_updateStatus::ID; + +void account_updateStatus::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1713919532); + TlStoreBool::store(offline_, s); +} + +void account_updateStatus::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1713919532); + TlStoreBool::store(offline_, s); +} + +void account_updateStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updateStatus"); + s.store_field("offline", offline_); + s.store_class_end(); + } +} + +account_updateStatus::ReturnType account_updateStatus::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +account_updateTheme::account_updateTheme(int32 flags_, string const &format_, object_ptr<InputTheme> &&theme_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_) + : flags_(flags_) + , format_(format_) + , theme_(std::move(theme_)) + , slug_(slug_) + , title_(title_) + , document_(std::move(document_)) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_updateTheme::ID; + +void account_updateTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(737414348); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(format_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); + if (var0 & 1) { TlStoreString::store(slug_, s); } + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); } +} + +void account_updateTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(737414348); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(format_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(theme_, s); + if (var0 & 1) { TlStoreString::store(slug_, s); } + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(document_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1881255857>>, 481674261>::store(settings_, s); } +} + +void account_updateTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updateTheme"); + s.store_field("flags", (var0 = flags_)); + s.store_field("format", format_); + s.store_object_field("theme", static_cast<const BaseObject *>(theme_.get())); + if (var0 & 1) { s.store_field("slug", slug_); } + if (var0 & 2) { s.store_field("title", title_); } + if (var0 & 4) { s.store_object_field("document", static_cast<const BaseObject *>(document_.get())); } + if (var0 & 8) { { s.store_vector_begin("settings", settings_.size()); for (const auto &_value : settings_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +account_updateTheme::ReturnType account_updateTheme::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<theme>, -1609668650>::parse(p); +#undef FAIL +} + +account_updateUsername::account_updateUsername(string const &username_) + : username_(username_) +{} + +const std::int32_t account_updateUsername::ID; + +void account_updateUsername::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1040964988); + TlStoreString::store(username_, s); +} + +void account_updateUsername::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1040964988); + TlStoreString::store(username_, s); +} + +void account_updateUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.updateUsername"); + s.store_field("username", username_); + s.store_class_end(); + } +} + +account_updateUsername::ReturnType account_updateUsername::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<User>::parse(p); +#undef FAIL +} + +account_uploadRingtone::account_uploadRingtone(object_ptr<InputFile> &&file_, string const &file_name_, string const &mime_type_) + : file_(std::move(file_)) + , file_name_(file_name_) + , mime_type_(mime_type_) +{} + +const std::int32_t account_uploadRingtone::ID; + +void account_uploadRingtone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2095414366); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + TlStoreString::store(file_name_, s); + TlStoreString::store(mime_type_, s); +} + +void account_uploadRingtone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2095414366); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + TlStoreString::store(file_name_, s); + TlStoreString::store(mime_type_, s); +} + +void account_uploadRingtone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.uploadRingtone"); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_field("file_name", file_name_); + s.store_field("mime_type", mime_type_); + s.store_class_end(); + } +} + +account_uploadRingtone::ReturnType account_uploadRingtone::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Document>::parse(p); +#undef FAIL +} + +account_uploadTheme::account_uploadTheme(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &file_name_, string const &mime_type_) + : flags_(flags_) + , file_(std::move(file_)) + , thumb_(std::move(thumb_)) + , file_name_(file_name_) + , mime_type_(mime_type_) +{} + +const std::int32_t account_uploadTheme::ID; + +void account_uploadTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(473805619); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); } + TlStoreString::store(file_name_, s); + TlStoreString::store(mime_type_, s); +} + +void account_uploadTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(473805619); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); } + TlStoreString::store(file_name_, s); + TlStoreString::store(mime_type_, s); +} + +void account_uploadTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.uploadTheme"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + if (var0 & 1) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); } + s.store_field("file_name", file_name_); + s.store_field("mime_type", mime_type_); + s.store_class_end(); + } +} + +account_uploadTheme::ReturnType account_uploadTheme::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Document>::parse(p); +#undef FAIL +} + +account_uploadWallPaper::account_uploadWallPaper(object_ptr<InputFile> &&file_, string const &mime_type_, object_ptr<wallPaperSettings> &&settings_) + : file_(std::move(file_)) + , mime_type_(mime_type_) + , settings_(std::move(settings_)) +{} + +const std::int32_t account_uploadWallPaper::ID; + +void account_uploadWallPaper::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-578472351); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + TlStoreString::store(mime_type_, s); + TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s); +} + +void account_uploadWallPaper::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-578472351); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + TlStoreString::store(mime_type_, s); + TlStoreBoxed<TlStoreObject, 499236004>::store(settings_, s); +} + +void account_uploadWallPaper::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.uploadWallPaper"); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_field("mime_type", mime_type_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +account_uploadWallPaper::ReturnType account_uploadWallPaper::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<WallPaper>::parse(p); +#undef FAIL +} + +account_verifyEmail::account_verifyEmail(object_ptr<EmailVerifyPurpose> &&purpose_, object_ptr<EmailVerification> &&verification_) + : purpose_(std::move(purpose_)) + , verification_(std::move(verification_)) +{} + +const std::int32_t account_verifyEmail::ID; + +void account_verifyEmail::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(53322959); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(verification_, s); +} + +void account_verifyEmail::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(53322959); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(verification_, s); +} + +void account_verifyEmail::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.verifyEmail"); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_object_field("verification", static_cast<const BaseObject *>(verification_.get())); + s.store_class_end(); + } +} + +account_verifyEmail::ReturnType account_verifyEmail::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<account_EmailVerified>::parse(p); +#undef FAIL +} + +account_verifyPhone::account_verifyPhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_) + : phone_number_(phone_number_) + , phone_code_hash_(phone_code_hash_) + , phone_code_(phone_code_) +{} + +const std::int32_t account_verifyPhone::ID; + +void account_verifyPhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1305716726); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(phone_code_, s); +} + +void account_verifyPhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1305716726); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(phone_code_, s); +} + +void account_verifyPhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "account.verifyPhone"); + s.store_field("phone_number", phone_number_); + s.store_field("phone_code_hash", phone_code_hash_); + s.store_field("phone_code", phone_code_); + s.store_class_end(); + } +} + +account_verifyPhone::ReturnType account_verifyPhone::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +auth_acceptLoginToken::auth_acceptLoginToken(bytes &&token_) + : token_(std::move(token_)) +{} + +const std::int32_t auth_acceptLoginToken::ID; + +void auth_acceptLoginToken::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-392909491); + TlStoreString::store(token_, s); +} + +void auth_acceptLoginToken::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-392909491); + TlStoreString::store(token_, s); +} + +void auth_acceptLoginToken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.acceptLoginToken"); + s.store_bytes_field("token", token_); + s.store_class_end(); + } +} + +auth_acceptLoginToken::ReturnType auth_acceptLoginToken::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<authorization>, -1392388579>::parse(p); +#undef FAIL +} + +auth_bindTempAuthKey::auth_bindTempAuthKey(int64 perm_auth_key_id_, int64 nonce_, int32 expires_at_, bytes &&encrypted_message_) + : perm_auth_key_id_(perm_auth_key_id_) + , nonce_(nonce_) + , expires_at_(expires_at_) + , encrypted_message_(std::move(encrypted_message_)) +{} + +const std::int32_t auth_bindTempAuthKey::ID; + +void auth_bindTempAuthKey::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-841733627); + TlStoreBinary::store(perm_auth_key_id_, s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(expires_at_, s); + TlStoreString::store(encrypted_message_, s); +} + +void auth_bindTempAuthKey::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-841733627); + TlStoreBinary::store(perm_auth_key_id_, s); + TlStoreBinary::store(nonce_, s); + TlStoreBinary::store(expires_at_, s); + TlStoreString::store(encrypted_message_, s); +} + +void auth_bindTempAuthKey::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.bindTempAuthKey"); + s.store_field("perm_auth_key_id", perm_auth_key_id_); + s.store_field("nonce", nonce_); + s.store_field("expires_at", expires_at_); + s.store_bytes_field("encrypted_message", encrypted_message_); + s.store_class_end(); + } +} + +auth_bindTempAuthKey::ReturnType auth_bindTempAuthKey::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +auth_cancelCode::auth_cancelCode(string const &phone_number_, string const &phone_code_hash_) + : phone_number_(phone_number_) + , phone_code_hash_(phone_code_hash_) +{} + +const std::int32_t auth_cancelCode::ID; + +void auth_cancelCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(520357240); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); +} + +void auth_cancelCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(520357240); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); +} + +void auth_cancelCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.cancelCode"); + s.store_field("phone_number", phone_number_); + s.store_field("phone_code_hash", phone_code_hash_); + s.store_class_end(); + } +} + +auth_cancelCode::ReturnType auth_cancelCode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +auth_checkPassword::auth_checkPassword(object_ptr<InputCheckPasswordSRP> &&password_) + : password_(std::move(password_)) +{} + +const std::int32_t auth_checkPassword::ID; + +void auth_checkPassword::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-779399914); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); +} + +void auth_checkPassword::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-779399914); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); +} + +void auth_checkPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.checkPassword"); + s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); + s.store_class_end(); + } +} + +auth_checkPassword::ReturnType auth_checkPassword::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_Authorization>::parse(p); +#undef FAIL +} + +auth_checkRecoveryPassword::auth_checkRecoveryPassword(string const &code_) + : code_(code_) +{} + +const std::int32_t auth_checkRecoveryPassword::ID; + +void auth_checkRecoveryPassword::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(221691769); + TlStoreString::store(code_, s); +} + +void auth_checkRecoveryPassword::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(221691769); + TlStoreString::store(code_, s); +} + +void auth_checkRecoveryPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.checkRecoveryPassword"); + s.store_field("code", code_); + s.store_class_end(); + } +} + +auth_checkRecoveryPassword::ReturnType auth_checkRecoveryPassword::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +auth_dropTempAuthKeys::auth_dropTempAuthKeys(array<int64> &&except_auth_keys_) + : except_auth_keys_(std::move(except_auth_keys_)) +{} + +const std::int32_t auth_dropTempAuthKeys::ID; + +void auth_dropTempAuthKeys::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1907842680); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_auth_keys_, s); +} + +void auth_dropTempAuthKeys::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1907842680); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_auth_keys_, s); +} + +void auth_dropTempAuthKeys::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.dropTempAuthKeys"); + { s.store_vector_begin("except_auth_keys", except_auth_keys_.size()); for (const auto &_value : except_auth_keys_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +auth_dropTempAuthKeys::ReturnType auth_dropTempAuthKeys::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +auth_exportAuthorization::auth_exportAuthorization(int32 dc_id_) + : dc_id_(dc_id_) +{} + +const std::int32_t auth_exportAuthorization::ID; + +void auth_exportAuthorization::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-440401971); + TlStoreBinary::store(dc_id_, s); +} + +void auth_exportAuthorization::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-440401971); + TlStoreBinary::store(dc_id_, s); +} + +void auth_exportAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.exportAuthorization"); + s.store_field("dc_id", dc_id_); + s.store_class_end(); + } +} + +auth_exportAuthorization::ReturnType auth_exportAuthorization::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_exportedAuthorization>, -1271602504>::parse(p); +#undef FAIL +} + +auth_exportLoginToken::auth_exportLoginToken(int32 api_id_, string const &api_hash_, array<int64> &&except_ids_) + : api_id_(api_id_) + , api_hash_(api_hash_) + , except_ids_(std::move(except_ids_)) +{} + +const std::int32_t auth_exportLoginToken::ID; + +void auth_exportLoginToken::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1210022402); + TlStoreBinary::store(api_id_, s); + TlStoreString::store(api_hash_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s); +} + +void auth_exportLoginToken::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1210022402); + TlStoreBinary::store(api_id_, s); + TlStoreString::store(api_hash_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s); +} + +void auth_exportLoginToken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.exportLoginToken"); + s.store_field("api_id", api_id_); + s.store_field("api_hash", api_hash_); + { s.store_vector_begin("except_ids", except_ids_.size()); for (const auto &_value : except_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +auth_exportLoginToken::ReturnType auth_exportLoginToken::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_LoginToken>::parse(p); +#undef FAIL +} + +auth_importAuthorization::auth_importAuthorization(int64 id_, bytes &&bytes_) + : id_(id_) + , bytes_(std::move(bytes_)) +{} + +const std::int32_t auth_importAuthorization::ID; + +void auth_importAuthorization::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1518699091); + TlStoreBinary::store(id_, s); + TlStoreString::store(bytes_, s); +} + +void auth_importAuthorization::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1518699091); + TlStoreBinary::store(id_, s); + TlStoreString::store(bytes_, s); +} + +void auth_importAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.importAuthorization"); + s.store_field("id", id_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +auth_importAuthorization::ReturnType auth_importAuthorization::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_Authorization>::parse(p); +#undef FAIL +} + +auth_importBotAuthorization::auth_importBotAuthorization(int32 flags_, int32 api_id_, string const &api_hash_, string const &bot_auth_token_) + : flags_(flags_) + , api_id_(api_id_) + , api_hash_(api_hash_) + , bot_auth_token_(bot_auth_token_) +{} + +const std::int32_t auth_importBotAuthorization::ID; + +void auth_importBotAuthorization::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1738800940); + TlStoreBinary::store(flags_, s); + TlStoreBinary::store(api_id_, s); + TlStoreString::store(api_hash_, s); + TlStoreString::store(bot_auth_token_, s); +} + +void auth_importBotAuthorization::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1738800940); + TlStoreBinary::store(flags_, s); + TlStoreBinary::store(api_id_, s); + TlStoreString::store(api_hash_, s); + TlStoreString::store(bot_auth_token_, s); +} + +void auth_importBotAuthorization::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.importBotAuthorization"); + s.store_field("flags", flags_); + s.store_field("api_id", api_id_); + s.store_field("api_hash", api_hash_); + s.store_field("bot_auth_token", bot_auth_token_); + s.store_class_end(); + } +} + +auth_importBotAuthorization::ReturnType auth_importBotAuthorization::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_Authorization>::parse(p); +#undef FAIL +} + +auth_importLoginToken::auth_importLoginToken(bytes &&token_) + : token_(std::move(token_)) +{} + +const std::int32_t auth_importLoginToken::ID; + +void auth_importLoginToken::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1783866140); + TlStoreString::store(token_, s); +} + +void auth_importLoginToken::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1783866140); + TlStoreString::store(token_, s); +} + +void auth_importLoginToken::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.importLoginToken"); + s.store_bytes_field("token", token_); + s.store_class_end(); + } +} + +auth_importLoginToken::ReturnType auth_importLoginToken::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_LoginToken>::parse(p); +#undef FAIL +} + +const std::int32_t auth_logOut::ID; + +void auth_logOut::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1047706137); +} + +void auth_logOut::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1047706137); +} + +void auth_logOut::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.logOut"); + s.store_class_end(); + } +} + +auth_logOut::ReturnType auth_logOut::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_loggedOut>, -1012759713>::parse(p); +#undef FAIL +} + +auth_recoverPassword::auth_recoverPassword(int32 flags_, string const &code_, object_ptr<account_passwordInputSettings> &&new_settings_) + : flags_(flags_) + , code_(code_) + , new_settings_(std::move(new_settings_)) +{} + +const std::int32_t auth_recoverPassword::ID; + +void auth_recoverPassword::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(923364464); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(code_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s); } +} + +void auth_recoverPassword::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(923364464); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(code_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -1036572727>::store(new_settings_, s); } +} + +void auth_recoverPassword::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.recoverPassword"); + s.store_field("flags", (var0 = flags_)); + s.store_field("code", code_); + if (var0 & 1) { s.store_object_field("new_settings", static_cast<const BaseObject *>(new_settings_.get())); } + s.store_class_end(); + } +} + +auth_recoverPassword::ReturnType auth_recoverPassword::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_Authorization>::parse(p); +#undef FAIL +} + +const std::int32_t auth_requestPasswordRecovery::ID; + +void auth_requestPasswordRecovery::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-661144474); +} + +void auth_requestPasswordRecovery::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-661144474); +} + +void auth_requestPasswordRecovery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.requestPasswordRecovery"); + s.store_class_end(); + } +} + +auth_requestPasswordRecovery::ReturnType auth_requestPasswordRecovery::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_passwordRecovery>, 326715557>::parse(p); +#undef FAIL +} + +auth_resendCode::auth_resendCode(string const &phone_number_, string const &phone_code_hash_) + : phone_number_(phone_number_) + , phone_code_hash_(phone_code_hash_) +{} + +const std::int32_t auth_resendCode::ID; + +void auth_resendCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1056025023); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); +} + +void auth_resendCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1056025023); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); +} + +void auth_resendCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.resendCode"); + s.store_field("phone_number", phone_number_); + s.store_field("phone_code_hash", phone_code_hash_); + s.store_class_end(); + } +} + +auth_resendCode::ReturnType auth_resendCode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p); +#undef FAIL +} + +const std::int32_t auth_resetAuthorizations::ID; + +void auth_resetAuthorizations::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1616179942); +} + +void auth_resetAuthorizations::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1616179942); +} + +void auth_resetAuthorizations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.resetAuthorizations"); + s.store_class_end(); + } +} + +auth_resetAuthorizations::ReturnType auth_resetAuthorizations::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +auth_sendCode::auth_sendCode(string const &phone_number_, int32 api_id_, string const &api_hash_, object_ptr<codeSettings> &&settings_) + : phone_number_(phone_number_) + , api_id_(api_id_) + , api_hash_(api_hash_) + , settings_(std::move(settings_)) +{} + +const std::int32_t auth_sendCode::ID; + +void auth_sendCode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1502141361); + TlStoreString::store(phone_number_, s); + TlStoreBinary::store(api_id_, s); + TlStoreString::store(api_hash_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void auth_sendCode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1502141361); + TlStoreString::store(phone_number_, s); + TlStoreBinary::store(api_id_, s); + TlStoreString::store(api_hash_, s); + TlStoreBoxed<TlStoreObject, -1973130814>::store(settings_, s); +} + +void auth_sendCode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.sendCode"); + s.store_field("phone_number", phone_number_); + s.store_field("api_id", api_id_); + s.store_field("api_hash", api_hash_); + s.store_object_field("settings", static_cast<const BaseObject *>(settings_.get())); + s.store_class_end(); + } +} + +auth_sendCode::ReturnType auth_sendCode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<auth_sentCode>, 1577067778>::parse(p); +#undef FAIL +} + +auth_signIn::auth_signIn(int32 flags_, string const &phone_number_, string const &phone_code_hash_, string const &phone_code_, object_ptr<EmailVerification> &&email_verification_) + : flags_(flags_) + , phone_number_(phone_number_) + , phone_code_hash_(phone_code_hash_) + , phone_code_(phone_code_) + , email_verification_(std::move(email_verification_)) +{} + +const std::int32_t auth_signIn::ID; + +void auth_signIn::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1923962543); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + if (var0 & 1) { TlStoreString::store(phone_code_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(email_verification_, s); } +} + +void auth_signIn::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1923962543); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + if (var0 & 1) { TlStoreString::store(phone_code_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(email_verification_, s); } +} + +void auth_signIn::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.signIn"); + s.store_field("flags", (var0 = flags_)); + s.store_field("phone_number", phone_number_); + s.store_field("phone_code_hash", phone_code_hash_); + if (var0 & 1) { s.store_field("phone_code", phone_code_); } + if (var0 & 2) { s.store_object_field("email_verification", static_cast<const BaseObject *>(email_verification_.get())); } + s.store_class_end(); + } +} + +auth_signIn::ReturnType auth_signIn::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_Authorization>::parse(p); +#undef FAIL +} + +auth_signUp::auth_signUp(string const &phone_number_, string const &phone_code_hash_, string const &first_name_, string const &last_name_) + : phone_number_(phone_number_) + , phone_code_hash_(phone_code_hash_) + , first_name_(first_name_) + , last_name_(last_name_) +{} + +const std::int32_t auth_signUp::ID; + +void auth_signUp::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2131827673); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); +} + +void auth_signUp::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2131827673); + TlStoreString::store(phone_number_, s); + TlStoreString::store(phone_code_hash_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); +} + +void auth_signUp::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "auth.signUp"); + s.store_field("phone_number", phone_number_); + s.store_field("phone_code_hash", phone_code_hash_); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_class_end(); + } +} + +auth_signUp::ReturnType auth_signUp::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<auth_Authorization>::parse(p); +#undef FAIL +} + +bots_answerWebhookJSONQuery::bots_answerWebhookJSONQuery(int64 query_id_, object_ptr<dataJSON> &&data_) + : query_id_(query_id_) + , data_(std::move(data_)) +{} + +const std::int32_t bots_answerWebhookJSONQuery::ID; + +void bots_answerWebhookJSONQuery::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-434028723); + TlStoreBinary::store(query_id_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s); +} + +void bots_answerWebhookJSONQuery::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-434028723); + TlStoreBinary::store(query_id_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(data_, s); +} + +void bots_answerWebhookJSONQuery::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.answerWebhookJSONQuery"); + s.store_field("query_id", query_id_); + s.store_object_field("data", static_cast<const BaseObject *>(data_.get())); + s.store_class_end(); + } +} + +bots_answerWebhookJSONQuery::ReturnType bots_answerWebhookJSONQuery::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +bots_getBotCommands::bots_getBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_) + : scope_(std::move(scope_)) + , lang_code_(lang_code_) +{} + +const std::int32_t bots_getBotCommands::ID; + +void bots_getBotCommands::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-481554986); + TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s); + TlStoreString::store(lang_code_, s); +} + +void bots_getBotCommands::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-481554986); + TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s); + TlStoreString::store(lang_code_, s); +} + +void bots_getBotCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.getBotCommands"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +bots_getBotCommands::ReturnType bots_getBotCommands::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<botCommand>, -1032140601>>, 481674261>::parse(p); +#undef FAIL +} + +bots_getBotMenuButton::bots_getBotMenuButton(object_ptr<InputUser> &&user_id_) + : user_id_(std::move(user_id_)) +{} + +const std::int32_t bots_getBotMenuButton::ID; + +void bots_getBotMenuButton::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1671369944); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void bots_getBotMenuButton::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1671369944); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void bots_getBotMenuButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.getBotMenuButton"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +bots_getBotMenuButton::ReturnType bots_getBotMenuButton::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<BotMenuButton>::parse(p); +#undef FAIL +} + +bots_resetBotCommands::bots_resetBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_) + : scope_(std::move(scope_)) + , lang_code_(lang_code_) +{} + +const std::int32_t bots_resetBotCommands::ID; + +void bots_resetBotCommands::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1032708345); + TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s); + TlStoreString::store(lang_code_, s); +} + +void bots_resetBotCommands::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1032708345); + TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s); + TlStoreString::store(lang_code_, s); +} + +void bots_resetBotCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.resetBotCommands"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +bots_resetBotCommands::ReturnType bots_resetBotCommands::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +bots_sendCustomRequest::bots_sendCustomRequest(string const &custom_method_, object_ptr<dataJSON> &¶ms_) + : custom_method_(custom_method_) + , params_(std::move(params_)) +{} + +const std::int32_t bots_sendCustomRequest::ID; + +void bots_sendCustomRequest::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1440257555); + TlStoreString::store(custom_method_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s); +} + +void bots_sendCustomRequest::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1440257555); + TlStoreString::store(custom_method_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s); +} + +void bots_sendCustomRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.sendCustomRequest"); + s.store_field("custom_method", custom_method_); + s.store_object_field("params", static_cast<const BaseObject *>(params_.get())); + s.store_class_end(); + } +} + +bots_sendCustomRequest::ReturnType bots_sendCustomRequest::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p); +#undef FAIL +} + +bots_setBotBroadcastDefaultAdminRights::bots_setBotBroadcastDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_) + : admin_rights_(std::move(admin_rights_)) +{} + +const std::int32_t bots_setBotBroadcastDefaultAdminRights::ID; + +void bots_setBotBroadcastDefaultAdminRights::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2021942497); + TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s); +} + +void bots_setBotBroadcastDefaultAdminRights::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2021942497); + TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s); +} + +void bots_setBotBroadcastDefaultAdminRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.setBotBroadcastDefaultAdminRights"); + s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); + s.store_class_end(); + } +} + +bots_setBotBroadcastDefaultAdminRights::ReturnType bots_setBotBroadcastDefaultAdminRights::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +bots_setBotCommands::bots_setBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_, array<object_ptr<botCommand>> &&commands_) + : scope_(std::move(scope_)) + , lang_code_(lang_code_) + , commands_(std::move(commands_)) +{} + +const std::int32_t bots_setBotCommands::ID; + +void bots_setBotCommands::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(85399130); + TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s); + TlStoreString::store(lang_code_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1032140601>>, 481674261>::store(commands_, s); +} + +void bots_setBotCommands::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(85399130); + TlStoreBoxedUnknown<TlStoreObject>::store(scope_, s); + TlStoreString::store(lang_code_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1032140601>>, 481674261>::store(commands_, s); +} + +void bots_setBotCommands::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.setBotCommands"); + s.store_object_field("scope", static_cast<const BaseObject *>(scope_.get())); + s.store_field("lang_code", lang_code_); + { s.store_vector_begin("commands", commands_.size()); for (const auto &_value : commands_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +bots_setBotCommands::ReturnType bots_setBotCommands::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +bots_setBotGroupDefaultAdminRights::bots_setBotGroupDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_) + : admin_rights_(std::move(admin_rights_)) +{} + +const std::int32_t bots_setBotGroupDefaultAdminRights::ID; + +void bots_setBotGroupDefaultAdminRights::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1839281686); + TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s); +} + +void bots_setBotGroupDefaultAdminRights::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1839281686); + TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s); +} + +void bots_setBotGroupDefaultAdminRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.setBotGroupDefaultAdminRights"); + s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); + s.store_class_end(); + } +} + +bots_setBotGroupDefaultAdminRights::ReturnType bots_setBotGroupDefaultAdminRights::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +bots_setBotMenuButton::bots_setBotMenuButton(object_ptr<InputUser> &&user_id_, object_ptr<BotMenuButton> &&button_) + : user_id_(std::move(user_id_)) + , button_(std::move(button_)) +{} + +const std::int32_t bots_setBotMenuButton::ID; + +void bots_setBotMenuButton::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1157944655); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(button_, s); +} + +void bots_setBotMenuButton::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1157944655); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(button_, s); +} + +void bots_setBotMenuButton::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "bots.setBotMenuButton"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_object_field("button", static_cast<const BaseObject *>(button_.get())); + s.store_class_end(); + } +} + +bots_setBotMenuButton::ReturnType bots_setBotMenuButton::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_checkUsername::channels_checkUsername(object_ptr<InputChannel> &&channel_, string const &username_) + : channel_(std::move(channel_)) + , username_(username_) +{} + +const std::int32_t channels_checkUsername::ID; + +void channels_checkUsername::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(283557164); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(username_, s); +} + +void channels_checkUsername::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(283557164); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(username_, s); +} + +void channels_checkUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.checkUsername"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("username", username_); + s.store_class_end(); + } +} + +channels_checkUsername::ReturnType channels_checkUsername::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_convertToGigagroup::channels_convertToGigagroup(object_ptr<InputChannel> &&channel_) + : channel_(std::move(channel_)) +{} + +const std::int32_t channels_convertToGigagroup::ID; + +void channels_convertToGigagroup::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(187239529); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_convertToGigagroup::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(187239529); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_convertToGigagroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.convertToGigagroup"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +channels_convertToGigagroup::ReturnType channels_convertToGigagroup::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_createChannel::channels_createChannel(int32 flags_, bool broadcast_, bool megagroup_, bool for_import_, string const &title_, string const &about_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_) + : flags_(flags_) + , broadcast_(broadcast_) + , megagroup_(megagroup_) + , for_import_(for_import_) + , title_(title_) + , about_(about_) + , geo_point_(std::move(geo_point_)) + , address_(address_) +{} + +const std::int32_t channels_createChannel::ID; + +void channels_createChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1029681423); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(title_, s); + TlStoreString::store(about_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); } + if (var0 & 4) { TlStoreString::store(address_, s); } +} + +void channels_createChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1029681423); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(title_, s); + TlStoreString::store(about_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); } + if (var0 & 4) { TlStoreString::store(address_, s); } +} + +void channels_createChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.createChannel"); + s.store_field("flags", (var0 = flags_)); + s.store_field("title", title_); + s.store_field("about", about_); + if (var0 & 4) { s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); } + if (var0 & 4) { s.store_field("address", address_); } + s.store_class_end(); + } +} + +channels_createChannel::ReturnType channels_createChannel::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_createForumTopic::channels_createForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, string const &title_, int32 icon_color_, int64 icon_emoji_id_, int64 random_id_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , channel_(std::move(channel_)) + , title_(title_) + , icon_color_(icon_color_) + , icon_emoji_id_(icon_emoji_id_) + , random_id_(random_id_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t channels_createForumTopic::ID; + +void channels_createForumTopic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-200539612); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(title_, s); + if (var0 & 1) { TlStoreBinary::store(icon_color_, s); } + if (var0 & 8) { TlStoreBinary::store(icon_emoji_id_, s); } + TlStoreBinary::store(random_id_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void channels_createForumTopic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-200539612); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(title_, s); + if (var0 & 1) { TlStoreBinary::store(icon_color_, s); } + if (var0 & 8) { TlStoreBinary::store(icon_emoji_id_, s); } + TlStoreBinary::store(random_id_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void channels_createForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.createForumTopic"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("title", title_); + if (var0 & 1) { s.store_field("icon_color", icon_color_); } + if (var0 & 8) { s.store_field("icon_emoji_id", icon_emoji_id_); } + s.store_field("random_id", random_id_); + if (var0 & 4) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +channels_createForumTopic::ReturnType channels_createForumTopic::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_deactivateAllUsernames::channels_deactivateAllUsernames(object_ptr<InputChannel> &&channel_) + : channel_(std::move(channel_)) +{} + +const std::int32_t channels_deactivateAllUsernames::ID; + +void channels_deactivateAllUsernames::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(170155475); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_deactivateAllUsernames::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(170155475); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_deactivateAllUsernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.deactivateAllUsernames"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +channels_deactivateAllUsernames::ReturnType channels_deactivateAllUsernames::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_deleteChannel::channels_deleteChannel(object_ptr<InputChannel> &&channel_) + : channel_(std::move(channel_)) +{} + +const std::int32_t channels_deleteChannel::ID; + +void channels_deleteChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1072619549); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_deleteChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1072619549); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_deleteChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.deleteChannel"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +channels_deleteChannel::ReturnType channels_deleteChannel::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_deleteHistory::channels_deleteHistory(int32 flags_, bool for_everyone_, object_ptr<InputChannel> &&channel_, int32 max_id_) + : flags_(flags_) + , for_everyone_(for_everyone_) + , channel_(std::move(channel_)) + , max_id_(max_id_) +{} + +const std::int32_t channels_deleteHistory::ID; + +void channels_deleteHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1683319225); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(max_id_, s); +} + +void channels_deleteHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1683319225); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(max_id_, s); +} + +void channels_deleteHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.deleteHistory"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("max_id", max_id_); + s.store_class_end(); + } +} + +channels_deleteHistory::ReturnType channels_deleteHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_deleteMessages::channels_deleteMessages(object_ptr<InputChannel> &&channel_, array<int32> &&id_) + : channel_(std::move(channel_)) + , id_(std::move(id_)) +{} + +const std::int32_t channels_deleteMessages::ID; + +void channels_deleteMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2067661490); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void channels_deleteMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2067661490); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void channels_deleteMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.deleteMessages"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_deleteMessages::ReturnType channels_deleteMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p); +#undef FAIL +} + +channels_deleteParticipantHistory::channels_deleteParticipantHistory(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_) + : channel_(std::move(channel_)) + , participant_(std::move(participant_)) +{} + +const std::int32_t channels_deleteParticipantHistory::ID; + +void channels_deleteParticipantHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(913655003); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); +} + +void channels_deleteParticipantHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(913655003); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); +} + +void channels_deleteParticipantHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.deleteParticipantHistory"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_class_end(); + } +} + +channels_deleteParticipantHistory::ReturnType channels_deleteParticipantHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p); +#undef FAIL +} + +channels_deleteTopicHistory::channels_deleteTopicHistory(object_ptr<InputChannel> &&channel_, int32 top_msg_id_) + : channel_(std::move(channel_)) + , top_msg_id_(top_msg_id_) +{} + +const std::int32_t channels_deleteTopicHistory::ID; + +void channels_deleteTopicHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(876830509); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(top_msg_id_, s); +} + +void channels_deleteTopicHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(876830509); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(top_msg_id_, s); +} + +void channels_deleteTopicHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.deleteTopicHistory"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("top_msg_id", top_msg_id_); + s.store_class_end(); + } +} + +channels_deleteTopicHistory::ReturnType channels_deleteTopicHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p); +#undef FAIL +} + +channels_editAdmin::channels_editAdmin(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<chatAdminRights> &&admin_rights_, string const &rank_) + : channel_(std::move(channel_)) + , user_id_(std::move(user_id_)) + , admin_rights_(std::move(admin_rights_)) + , rank_(rank_) +{} + +const std::int32_t channels_editAdmin::ID; + +void channels_editAdmin::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-751007486); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s); + TlStoreString::store(rank_, s); +} + +void channels_editAdmin::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-751007486); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBoxed<TlStoreObject, 1605510357>::store(admin_rights_, s); + TlStoreString::store(rank_, s); +} + +void channels_editAdmin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.editAdmin"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_object_field("admin_rights", static_cast<const BaseObject *>(admin_rights_.get())); + s.store_field("rank", rank_); + s.store_class_end(); + } +} + +channels_editAdmin::ReturnType channels_editAdmin::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_editBanned::channels_editBanned(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, object_ptr<chatBannedRights> &&banned_rights_) + : channel_(std::move(channel_)) + , participant_(std::move(participant_)) + , banned_rights_(std::move(banned_rights_)) +{} + +const std::int32_t channels_editBanned::ID; + +void channels_editBanned::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1763259007); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); + TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s); +} + +void channels_editBanned::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1763259007); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); + TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s); +} + +void channels_editBanned::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.editBanned"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get())); + s.store_class_end(); + } +} + +channels_editBanned::ReturnType channels_editBanned::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_editCreator::channels_editCreator(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<InputCheckPasswordSRP> &&password_) + : channel_(std::move(channel_)) + , user_id_(std::move(user_id_)) + , password_(std::move(password_)) +{} + +const std::int32_t channels_editCreator::ID; + +void channels_editCreator::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1892102881); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); +} + +void channels_editCreator::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1892102881); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); +} + +void channels_editCreator::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.editCreator"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); + s.store_class_end(); + } +} + +channels_editCreator::ReturnType channels_editCreator::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_editForumTopic::channels_editForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, int32 topic_id_, string const &title_, int64 icon_emoji_id_, bool closed_) + : flags_(flags_) + , channel_(std::move(channel_)) + , topic_id_(topic_id_) + , title_(title_) + , icon_emoji_id_(icon_emoji_id_) + , closed_(closed_) +{} + +const std::int32_t channels_editForumTopic::ID; + +void channels_editForumTopic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1820868141); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(topic_id_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreBinary::store(icon_emoji_id_, s); } + if (var0 & 4) { TlStoreBool::store(closed_, s); } +} + +void channels_editForumTopic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1820868141); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(topic_id_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreBinary::store(icon_emoji_id_, s); } + if (var0 & 4) { TlStoreBool::store(closed_, s); } +} + +void channels_editForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.editForumTopic"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("topic_id", topic_id_); + if (var0 & 1) { s.store_field("title", title_); } + if (var0 & 2) { s.store_field("icon_emoji_id", icon_emoji_id_); } + if (var0 & 4) { s.store_field("closed", closed_); } + s.store_class_end(); + } +} + +channels_editForumTopic::ReturnType channels_editForumTopic::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_editLocation::channels_editLocation(object_ptr<InputChannel> &&channel_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_) + : channel_(std::move(channel_)) + , geo_point_(std::move(geo_point_)) + , address_(address_) +{} + +const std::int32_t channels_editLocation::ID; + +void channels_editLocation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1491484525); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreString::store(address_, s); +} + +void channels_editLocation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1491484525); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + TlStoreString::store(address_, s); +} + +void channels_editLocation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.editLocation"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + s.store_field("address", address_); + s.store_class_end(); + } +} + +channels_editLocation::ReturnType channels_editLocation::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_editPhoto::channels_editPhoto(object_ptr<InputChannel> &&channel_, object_ptr<InputChatPhoto> &&photo_) + : channel_(std::move(channel_)) + , photo_(std::move(photo_)) +{} + +const std::int32_t channels_editPhoto::ID; + +void channels_editPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-248621111); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s); +} + +void channels_editPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-248621111); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s); +} + +void channels_editPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.editPhoto"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +channels_editPhoto::ReturnType channels_editPhoto::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_editTitle::channels_editTitle(object_ptr<InputChannel> &&channel_, string const &title_) + : channel_(std::move(channel_)) + , title_(title_) +{} + +const std::int32_t channels_editTitle::ID; + +void channels_editTitle::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1450044624); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(title_, s); +} + +void channels_editTitle::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1450044624); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(title_, s); +} + +void channels_editTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.editTitle"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("title", title_); + s.store_class_end(); + } +} + +channels_editTitle::ReturnType channels_editTitle::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_exportMessageLink::channels_exportMessageLink(int32 flags_, bool grouped_, bool thread_, object_ptr<InputChannel> &&channel_, int32 id_) + : flags_(flags_) + , grouped_(grouped_) + , thread_(thread_) + , channel_(std::move(channel_)) + , id_(id_) +{} + +const std::int32_t channels_exportMessageLink::ID; + +void channels_exportMessageLink::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-432034325); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(id_, s); +} + +void channels_exportMessageLink::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-432034325); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(id_, s); +} + +void channels_exportMessageLink::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.exportMessageLink"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("id", id_); + s.store_class_end(); + } +} + +channels_exportMessageLink::ReturnType channels_exportMessageLink::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<exportedMessageLink>, 1571494644>::parse(p); +#undef FAIL +} + +channels_getAdminLog::channels_getAdminLog(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, object_ptr<channelAdminLogEventsFilter> &&events_filter_, array<object_ptr<InputUser>> &&admins_, int64 max_id_, int64 min_id_, int32 limit_) + : flags_(flags_) + , channel_(std::move(channel_)) + , q_(q_) + , events_filter_(std::move(events_filter_)) + , admins_(std::move(admins_)) + , max_id_(max_id_) + , min_id_(min_id_) + , limit_(limit_) +{} + +const std::int32_t channels_getAdminLog::ID; + +void channels_getAdminLog::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(870184064); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(q_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -368018716>::store(events_filter_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(admins_, s); } + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(limit_, s); +} + +void channels_getAdminLog::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(870184064); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(q_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, -368018716>::store(events_filter_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(admins_, s); } + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(limit_, s); +} + +void channels_getAdminLog::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getAdminLog"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("q", q_); + if (var0 & 1) { s.store_object_field("events_filter", static_cast<const BaseObject *>(events_filter_.get())); } + if (var0 & 2) { { s.store_vector_begin("admins", admins_.size()); for (const auto &_value : admins_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_field("max_id", max_id_); + s.store_field("min_id", min_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +channels_getAdminLog::ReturnType channels_getAdminLog::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<channels_adminLogResults>, -309659827>::parse(p); +#undef FAIL +} + +channels_getAdminedPublicChannels::channels_getAdminedPublicChannels(int32 flags_, bool by_location_, bool check_limit_) + : flags_(flags_) + , by_location_(by_location_) + , check_limit_(check_limit_) +{} + +const std::int32_t channels_getAdminedPublicChannels::ID; + +void channels_getAdminedPublicChannels::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-122669393); + TlStoreBinary::store((var0 = flags_), s); +} + +void channels_getAdminedPublicChannels::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-122669393); + TlStoreBinary::store((var0 = flags_), s); +} + +void channels_getAdminedPublicChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getAdminedPublicChannels"); + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +channels_getAdminedPublicChannels::ReturnType channels_getAdminedPublicChannels::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Chats>::parse(p); +#undef FAIL +} + +channels_getChannels::channels_getChannels(array<object_ptr<InputChannel>> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t channels_getChannels::ID; + +void channels_getChannels::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(176122811); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void channels_getChannels::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(176122811); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void channels_getChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getChannels"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_getChannels::ReturnType channels_getChannels::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Chats>::parse(p); +#undef FAIL +} + +channels_getForumTopics::channels_getForumTopics(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, int32 offset_date_, int32 offset_id_, int32 offset_topic_, int32 limit_) + : flags_(flags_) + , channel_(std::move(channel_)) + , q_(q_) + , offset_date_(offset_date_) + , offset_id_(offset_id_) + , offset_topic_(offset_topic_) + , limit_(limit_) +{} + +const std::int32_t channels_getForumTopics::ID; + +void channels_getForumTopics::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(233136337); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + if (var0 & 1) { TlStoreString::store(q_, s); } + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_topic_, s); + TlStoreBinary::store(limit_, s); +} + +void channels_getForumTopics::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(233136337); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + if (var0 & 1) { TlStoreString::store(q_, s); } + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_topic_, s); + TlStoreBinary::store(limit_, s); +} + +void channels_getForumTopics::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getForumTopics"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + if (var0 & 1) { s.store_field("q", q_); } + s.store_field("offset_date", offset_date_); + s.store_field("offset_id", offset_id_); + s.store_field("offset_topic", offset_topic_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +channels_getForumTopics::ReturnType channels_getForumTopics::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_forumTopics>, 913709011>::parse(p); +#undef FAIL +} + +channels_getForumTopicsByID::channels_getForumTopicsByID(object_ptr<InputChannel> &&channel_, array<int32> &&topics_) + : channel_(std::move(channel_)) + , topics_(std::move(topics_)) +{} + +const std::int32_t channels_getForumTopicsByID::ID; + +void channels_getForumTopicsByID::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1333584199); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(topics_, s); +} + +void channels_getForumTopicsByID::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1333584199); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(topics_, s); +} + +void channels_getForumTopicsByID::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getForumTopicsByID"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + { s.store_vector_begin("topics", topics_.size()); for (const auto &_value : topics_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_getForumTopicsByID::ReturnType channels_getForumTopicsByID::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_forumTopics>, 913709011>::parse(p); +#undef FAIL +} + +channels_getFullChannel::channels_getFullChannel(object_ptr<InputChannel> &&channel_) + : channel_(std::move(channel_)) +{} + +const std::int32_t channels_getFullChannel::ID; + +void channels_getFullChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(141781513); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_getFullChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(141781513); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_getFullChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getFullChannel"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +channels_getFullChannel::ReturnType channels_getFullChannel::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_chatFull>, -438840932>::parse(p); +#undef FAIL +} + +const std::int32_t channels_getGroupsForDiscussion::ID; + +void channels_getGroupsForDiscussion::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-170208392); +} + +void channels_getGroupsForDiscussion::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-170208392); +} + +void channels_getGroupsForDiscussion::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getGroupsForDiscussion"); + s.store_class_end(); + } +} + +channels_getGroupsForDiscussion::ReturnType channels_getGroupsForDiscussion::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Chats>::parse(p); +#undef FAIL +} + +const std::int32_t channels_getInactiveChannels::ID; + +void channels_getInactiveChannels::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(300429806); +} + +void channels_getInactiveChannels::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(300429806); +} + +void channels_getInactiveChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getInactiveChannels"); + s.store_class_end(); + } +} + +channels_getInactiveChannels::ReturnType channels_getInactiveChannels::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_inactiveChats>, -1456996667>::parse(p); +#undef FAIL +} + +channels_getLeftChannels::channels_getLeftChannels(int32 offset_) + : offset_(offset_) +{} + +const std::int32_t channels_getLeftChannels::ID; + +void channels_getLeftChannels::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2092831552); + TlStoreBinary::store(offset_, s); +} + +void channels_getLeftChannels::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2092831552); + TlStoreBinary::store(offset_, s); +} + +void channels_getLeftChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getLeftChannels"); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +channels_getLeftChannels::ReturnType channels_getLeftChannels::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Chats>::parse(p); +#undef FAIL +} + +channels_getMessages::channels_getMessages(object_ptr<InputChannel> &&channel_, array<object_ptr<InputMessage>> &&id_) + : channel_(std::move(channel_)) + , id_(std::move(id_)) +{} + +const std::int32_t channels_getMessages::ID; + +void channels_getMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1383294429); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void channels_getMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1383294429); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void channels_getMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getMessages"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_getMessages::ReturnType channels_getMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +channels_getParticipant::channels_getParticipant(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_) + : channel_(std::move(channel_)) + , participant_(std::move(participant_)) +{} + +const std::int32_t channels_getParticipant::ID; + +void channels_getParticipant::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1599378234); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); +} + +void channels_getParticipant::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1599378234); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); +} + +void channels_getParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getParticipant"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + s.store_class_end(); + } +} + +channels_getParticipant::ReturnType channels_getParticipant::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<channels_channelParticipant>, -541588713>::parse(p); +#undef FAIL +} + +channels_getParticipants::channels_getParticipants(object_ptr<InputChannel> &&channel_, object_ptr<ChannelParticipantsFilter> &&filter_, int32 offset_, int32 limit_, int64 hash_) + : channel_(std::move(channel_)) + , filter_(std::move(filter_)) + , offset_(offset_) + , limit_(limit_) + , hash_(hash_) +{} + +const std::int32_t channels_getParticipants::ID; + +void channels_getParticipants::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2010044880); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void channels_getParticipants::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2010044880); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void channels_getParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getParticipants"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +channels_getParticipants::ReturnType channels_getParticipants::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<channels_ChannelParticipants>::parse(p); +#undef FAIL +} + +channels_getSendAs::channels_getSendAs(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t channels_getSendAs::ID; + +void channels_getSendAs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(231174382); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void channels_getSendAs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(231174382); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void channels_getSendAs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getSendAs"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +channels_getSendAs::ReturnType channels_getSendAs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<channels_sendAsPeers>, -191450938>::parse(p); +#undef FAIL +} + +channels_getSponsoredMessages::channels_getSponsoredMessages(object_ptr<InputChannel> &&channel_) + : channel_(std::move(channel_)) +{} + +const std::int32_t channels_getSponsoredMessages::ID; + +void channels_getSponsoredMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-333377601); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_getSponsoredMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-333377601); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_getSponsoredMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.getSponsoredMessages"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +channels_getSponsoredMessages::ReturnType channels_getSponsoredMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_SponsoredMessages>::parse(p); +#undef FAIL +} + +channels_inviteToChannel::channels_inviteToChannel(object_ptr<InputChannel> &&channel_, array<object_ptr<InputUser>> &&users_) + : channel_(std::move(channel_)) + , users_(std::move(users_)) +{} + +const std::int32_t channels_inviteToChannel::ID; + +void channels_inviteToChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(429865580); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void channels_inviteToChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(429865580); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void channels_inviteToChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.inviteToChannel"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_inviteToChannel::ReturnType channels_inviteToChannel::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_joinChannel::channels_joinChannel(object_ptr<InputChannel> &&channel_) + : channel_(std::move(channel_)) +{} + +const std::int32_t channels_joinChannel::ID; + +void channels_joinChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(615851205); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_joinChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(615851205); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_joinChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.joinChannel"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +channels_joinChannel::ReturnType channels_joinChannel::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_leaveChannel::channels_leaveChannel(object_ptr<InputChannel> &&channel_) + : channel_(std::move(channel_)) +{} + +const std::int32_t channels_leaveChannel::ID; + +void channels_leaveChannel::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-130635115); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_leaveChannel::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-130635115); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void channels_leaveChannel::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.leaveChannel"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +channels_leaveChannel::ReturnType channels_leaveChannel::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_readHistory::channels_readHistory(object_ptr<InputChannel> &&channel_, int32 max_id_) + : channel_(std::move(channel_)) + , max_id_(max_id_) +{} + +const std::int32_t channels_readHistory::ID; + +void channels_readHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-871347913); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(max_id_, s); +} + +void channels_readHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-871347913); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(max_id_, s); +} + +void channels_readHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.readHistory"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("max_id", max_id_); + s.store_class_end(); + } +} + +channels_readHistory::ReturnType channels_readHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_readMessageContents::channels_readMessageContents(object_ptr<InputChannel> &&channel_, array<int32> &&id_) + : channel_(std::move(channel_)) + , id_(std::move(id_)) +{} + +const std::int32_t channels_readMessageContents::ID; + +void channels_readMessageContents::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-357180360); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void channels_readMessageContents::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-357180360); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void channels_readMessageContents::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.readMessageContents"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_readMessageContents::ReturnType channels_readMessageContents::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_reorderUsernames::channels_reorderUsernames(object_ptr<InputChannel> &&channel_, array<string> &&order_) + : channel_(std::move(channel_)) + , order_(std::move(order_)) +{} + +const std::int32_t channels_reorderUsernames::ID; + +void channels_reorderUsernames::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1268978403); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s); +} + +void channels_reorderUsernames::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1268978403); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(order_, s); +} + +void channels_reorderUsernames::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.reorderUsernames"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_reorderUsernames::ReturnType channels_reorderUsernames::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_reportSpam::channels_reportSpam(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, array<int32> &&id_) + : channel_(std::move(channel_)) + , participant_(std::move(participant_)) + , id_(std::move(id_)) +{} + +const std::int32_t channels_reportSpam::ID; + +void channels_reportSpam::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-196443371); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void channels_reportSpam::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-196443371); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void channels_reportSpam::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.reportSpam"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +channels_reportSpam::ReturnType channels_reportSpam::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_setDiscussionGroup::channels_setDiscussionGroup(object_ptr<InputChannel> &&broadcast_, object_ptr<InputChannel> &&group_) + : broadcast_(std::move(broadcast_)) + , group_(std::move(group_)) +{} + +const std::int32_t channels_setDiscussionGroup::ID; + +void channels_setDiscussionGroup::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1079520178); + TlStoreBoxedUnknown<TlStoreObject>::store(broadcast_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(group_, s); +} + +void channels_setDiscussionGroup::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1079520178); + TlStoreBoxedUnknown<TlStoreObject>::store(broadcast_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(group_, s); +} + +void channels_setDiscussionGroup::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.setDiscussionGroup"); + s.store_object_field("broadcast", static_cast<const BaseObject *>(broadcast_.get())); + s.store_object_field("group", static_cast<const BaseObject *>(group_.get())); + s.store_class_end(); + } +} + +channels_setDiscussionGroup::ReturnType channels_setDiscussionGroup::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_setStickers::channels_setStickers(object_ptr<InputChannel> &&channel_, object_ptr<InputStickerSet> &&stickerset_) + : channel_(std::move(channel_)) + , stickerset_(std::move(stickerset_)) +{} + +const std::int32_t channels_setStickers::ID; + +void channels_setStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-359881479); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void channels_setStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-359881479); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void channels_setStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.setStickers"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_class_end(); + } +} + +channels_setStickers::ReturnType channels_setStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_toggleForum::channels_toggleForum(object_ptr<InputChannel> &&channel_, bool enabled_) + : channel_(std::move(channel_)) + , enabled_(enabled_) +{} + +const std::int32_t channels_toggleForum::ID; + +void channels_toggleForum::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1540781271); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleForum::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1540781271); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleForum::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.toggleForum"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +channels_toggleForum::ReturnType channels_toggleForum::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_toggleJoinRequest::channels_toggleJoinRequest(object_ptr<InputChannel> &&channel_, bool enabled_) + : channel_(std::move(channel_)) + , enabled_(enabled_) +{} + +const std::int32_t channels_toggleJoinRequest::ID; + +void channels_toggleJoinRequest::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1277789622); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleJoinRequest::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1277789622); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleJoinRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.toggleJoinRequest"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +channels_toggleJoinRequest::ReturnType channels_toggleJoinRequest::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_toggleJoinToSend::channels_toggleJoinToSend(object_ptr<InputChannel> &&channel_, bool enabled_) + : channel_(std::move(channel_)) + , enabled_(enabled_) +{} + +const std::int32_t channels_toggleJoinToSend::ID; + +void channels_toggleJoinToSend::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-456419968); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleJoinToSend::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-456419968); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleJoinToSend::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.toggleJoinToSend"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +channels_toggleJoinToSend::ReturnType channels_toggleJoinToSend::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_togglePreHistoryHidden::channels_togglePreHistoryHidden(object_ptr<InputChannel> &&channel_, bool enabled_) + : channel_(std::move(channel_)) + , enabled_(enabled_) +{} + +const std::int32_t channels_togglePreHistoryHidden::ID; + +void channels_togglePreHistoryHidden::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-356796084); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_togglePreHistoryHidden::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-356796084); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_togglePreHistoryHidden::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.togglePreHistoryHidden"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +channels_togglePreHistoryHidden::ReturnType channels_togglePreHistoryHidden::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_toggleSignatures::channels_toggleSignatures(object_ptr<InputChannel> &&channel_, bool enabled_) + : channel_(std::move(channel_)) + , enabled_(enabled_) +{} + +const std::int32_t channels_toggleSignatures::ID; + +void channels_toggleSignatures::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(527021574); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleSignatures::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(527021574); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBool::store(enabled_, s); +} + +void channels_toggleSignatures::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.toggleSignatures"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +channels_toggleSignatures::ReturnType channels_toggleSignatures::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_toggleSlowMode::channels_toggleSlowMode(object_ptr<InputChannel> &&channel_, int32 seconds_) + : channel_(std::move(channel_)) + , seconds_(seconds_) +{} + +const std::int32_t channels_toggleSlowMode::ID; + +void channels_toggleSlowMode::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-304832784); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(seconds_, s); +} + +void channels_toggleSlowMode::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-304832784); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(seconds_, s); +} + +void channels_toggleSlowMode::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.toggleSlowMode"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("seconds", seconds_); + s.store_class_end(); + } +} + +channels_toggleSlowMode::ReturnType channels_toggleSlowMode::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_toggleUsername::channels_toggleUsername(object_ptr<InputChannel> &&channel_, string const &username_, bool active_) + : channel_(std::move(channel_)) + , username_(username_) + , active_(active_) +{} + +const std::int32_t channels_toggleUsername::ID; + +void channels_toggleUsername::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1358053637); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(username_, s); + TlStoreBool::store(active_, s); +} + +void channels_toggleUsername::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1358053637); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(username_, s); + TlStoreBool::store(active_, s); +} + +void channels_toggleUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.toggleUsername"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("username", username_); + s.store_field("active", active_); + s.store_class_end(); + } +} + +channels_toggleUsername::ReturnType channels_toggleUsername::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_updatePinnedForumTopic::channels_updatePinnedForumTopic(object_ptr<InputChannel> &&channel_, int32 topic_id_, bool pinned_) + : channel_(std::move(channel_)) + , topic_id_(topic_id_) + , pinned_(pinned_) +{} + +const std::int32_t channels_updatePinnedForumTopic::ID; + +void channels_updatePinnedForumTopic::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1814925350); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(topic_id_, s); + TlStoreBool::store(pinned_, s); +} + +void channels_updatePinnedForumTopic::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1814925350); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(topic_id_, s); + TlStoreBool::store(pinned_, s); +} + +void channels_updatePinnedForumTopic::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.updatePinnedForumTopic"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("topic_id", topic_id_); + s.store_field("pinned", pinned_); + s.store_class_end(); + } +} + +channels_updatePinnedForumTopic::ReturnType channels_updatePinnedForumTopic::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +channels_updateUsername::channels_updateUsername(object_ptr<InputChannel> &&channel_, string const &username_) + : channel_(std::move(channel_)) + , username_(username_) +{} + +const std::int32_t channels_updateUsername::ID; + +void channels_updateUsername::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(890549214); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(username_, s); +} + +void channels_updateUsername::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(890549214); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(username_, s); +} + +void channels_updateUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.updateUsername"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("username", username_); + s.store_class_end(); + } +} + +channels_updateUsername::ReturnType channels_updateUsername::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +channels_viewSponsoredMessage::channels_viewSponsoredMessage(object_ptr<InputChannel> &&channel_, bytes &&random_id_) + : channel_(std::move(channel_)) + , random_id_(std::move(random_id_)) +{} + +const std::int32_t channels_viewSponsoredMessage::ID; + +void channels_viewSponsoredMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1095836780); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(random_id_, s); +} + +void channels_viewSponsoredMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1095836780); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreString::store(random_id_, s); +} + +void channels_viewSponsoredMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "channels.viewSponsoredMessage"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_bytes_field("random_id", random_id_); + s.store_class_end(); + } +} + +channels_viewSponsoredMessage::ReturnType channels_viewSponsoredMessage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +contacts_acceptContact::contacts_acceptContact(object_ptr<InputUser> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t contacts_acceptContact::ID; + +void contacts_acceptContact::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-130964977); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void contacts_acceptContact::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-130964977); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void contacts_acceptContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.acceptContact"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +contacts_acceptContact::ReturnType contacts_acceptContact::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +contacts_addContact::contacts_addContact(int32 flags_, bool add_phone_privacy_exception_, object_ptr<InputUser> &&id_, string const &first_name_, string const &last_name_, string const &phone_) + : flags_(flags_) + , add_phone_privacy_exception_(add_phone_privacy_exception_) + , id_(std::move(id_)) + , first_name_(first_name_) + , last_name_(last_name_) + , phone_(phone_) +{} + +const std::int32_t contacts_addContact::ID; + +void contacts_addContact::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-386636848); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreString::store(phone_, s); +} + +void contacts_addContact::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-386636848); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreString::store(first_name_, s); + TlStoreString::store(last_name_, s); + TlStoreString::store(phone_, s); +} + +void contacts_addContact::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.addContact"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_field("first_name", first_name_); + s.store_field("last_name", last_name_); + s.store_field("phone", phone_); + s.store_class_end(); + } +} + +contacts_addContact::ReturnType contacts_addContact::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +contacts_block::contacts_block(object_ptr<InputPeer> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t contacts_block::ID; + +void contacts_block::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1758204945); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void contacts_block::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1758204945); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void contacts_block::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.block"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +contacts_block::ReturnType contacts_block::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +contacts_blockFromReplies::contacts_blockFromReplies(int32 flags_, bool delete_message_, bool delete_history_, bool report_spam_, int32 msg_id_) + : flags_(flags_) + , delete_message_(delete_message_) + , delete_history_(delete_history_) + , report_spam_(report_spam_) + , msg_id_(msg_id_) +{} + +const std::int32_t contacts_blockFromReplies::ID; + +void contacts_blockFromReplies::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(698914348); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(msg_id_, s); +} + +void contacts_blockFromReplies::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(698914348); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(msg_id_, s); +} + +void contacts_blockFromReplies::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.blockFromReplies"); + s.store_field("flags", (var0 = flags_)); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +contacts_blockFromReplies::ReturnType contacts_blockFromReplies::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +contacts_deleteByPhones::contacts_deleteByPhones(array<string> &&phones_) + : phones_(std::move(phones_)) +{} + +const std::int32_t contacts_deleteByPhones::ID; + +void contacts_deleteByPhones::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(269745566); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(phones_, s); +} + +void contacts_deleteByPhones::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(269745566); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(phones_, s); +} + +void contacts_deleteByPhones::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.deleteByPhones"); + { s.store_vector_begin("phones", phones_.size()); for (const auto &_value : phones_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +contacts_deleteByPhones::ReturnType contacts_deleteByPhones::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +contacts_deleteContacts::contacts_deleteContacts(array<object_ptr<InputUser>> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t contacts_deleteContacts::ID; + +void contacts_deleteContacts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(157945344); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void contacts_deleteContacts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(157945344); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void contacts_deleteContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.deleteContacts"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +contacts_deleteContacts::ReturnType contacts_deleteContacts::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +contacts_getBlocked::contacts_getBlocked(int32 offset_, int32 limit_) + : offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t contacts_getBlocked::ID; + +void contacts_getBlocked::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-176409329); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void contacts_getBlocked::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-176409329); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void contacts_getBlocked::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.getBlocked"); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +contacts_getBlocked::ReturnType contacts_getBlocked::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<contacts_Blocked>::parse(p); +#undef FAIL +} + +contacts_getContactIDs::contacts_getContactIDs(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t contacts_getContactIDs::ID; + +void contacts_getContactIDs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2061264541); + TlStoreBinary::store(hash_, s); +} + +void contacts_getContactIDs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2061264541); + TlStoreBinary::store(hash_, s); +} + +void contacts_getContactIDs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.getContactIDs"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +contacts_getContactIDs::ReturnType contacts_getContactIDs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p); +#undef FAIL +} + +contacts_getContacts::contacts_getContacts(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t contacts_getContacts::ID; + +void contacts_getContacts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1574346258); + TlStoreBinary::store(hash_, s); +} + +void contacts_getContacts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1574346258); + TlStoreBinary::store(hash_, s); +} + +void contacts_getContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.getContacts"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +contacts_getContacts::ReturnType contacts_getContacts::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<contacts_Contacts>::parse(p); +#undef FAIL +} + +contacts_getLocated::contacts_getLocated(int32 flags_, bool background_, object_ptr<InputGeoPoint> &&geo_point_, int32 self_expires_) + : flags_(flags_) + , background_(background_) + , geo_point_(std::move(geo_point_)) + , self_expires_(self_expires_) +{} + +const std::int32_t contacts_getLocated::ID; + +void contacts_getLocated::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-750207932); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + if (var0 & 1) { TlStoreBinary::store(self_expires_, s); } +} + +void contacts_getLocated::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-750207932); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); + if (var0 & 1) { TlStoreBinary::store(self_expires_, s); } +} + +void contacts_getLocated::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.getLocated"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); + if (var0 & 1) { s.store_field("self_expires", self_expires_); } + s.store_class_end(); + } +} + +contacts_getLocated::ReturnType contacts_getLocated::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +const std::int32_t contacts_getSaved::ID; + +void contacts_getSaved::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2098076769); +} + +void contacts_getSaved::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2098076769); +} + +void contacts_getSaved::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.getSaved"); + s.store_class_end(); + } +} + +contacts_getSaved::ReturnType contacts_getSaved::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<savedPhoneContact>, 289586518>>, 481674261>::parse(p); +#undef FAIL +} + +const std::int32_t contacts_getStatuses::ID; + +void contacts_getStatuses::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-995929106); +} + +void contacts_getStatuses::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-995929106); +} + +void contacts_getStatuses::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.getStatuses"); + s.store_class_end(); + } +} + +contacts_getStatuses::ReturnType contacts_getStatuses::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<contactStatus>, 383348795>>, 481674261>::parse(p); +#undef FAIL +} + +contacts_getTopPeers::contacts_getTopPeers(int32 flags_, bool correspondents_, bool bots_pm_, bool bots_inline_, bool phone_calls_, bool forward_users_, bool forward_chats_, bool groups_, bool channels_, int32 offset_, int32 limit_, int64 hash_) + : flags_(flags_) + , correspondents_(correspondents_) + , bots_pm_(bots_pm_) + , bots_inline_(bots_inline_) + , phone_calls_(phone_calls_) + , forward_users_(forward_users_) + , forward_chats_(forward_chats_) + , groups_(groups_) + , channels_(channels_) + , offset_(offset_) + , limit_(limit_) + , hash_(hash_) +{} + +const std::int32_t contacts_getTopPeers::ID; + +void contacts_getTopPeers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1758168906); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void contacts_getTopPeers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1758168906); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void contacts_getTopPeers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.getTopPeers"); + s.store_field("flags", (var0 = flags_)); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +contacts_getTopPeers::ReturnType contacts_getTopPeers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<contacts_TopPeers>::parse(p); +#undef FAIL +} + +contacts_importContacts::contacts_importContacts(array<object_ptr<inputPhoneContact>> &&contacts_) + : contacts_(std::move(contacts_)) +{} + +const std::int32_t contacts_importContacts::ID; + +void contacts_importContacts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(746589157); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -208488460>>, 481674261>::store(contacts_, s); +} + +void contacts_importContacts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(746589157); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -208488460>>, 481674261>::store(contacts_, s); +} + +void contacts_importContacts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.importContacts"); + { s.store_vector_begin("contacts", contacts_.size()); for (const auto &_value : contacts_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +contacts_importContacts::ReturnType contacts_importContacts::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<contacts_importedContacts>, 2010127419>::parse(p); +#undef FAIL +} + +const std::int32_t contacts_resetSaved::ID; + +void contacts_resetSaved::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2020263951); +} + +void contacts_resetSaved::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2020263951); +} + +void contacts_resetSaved::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.resetSaved"); + s.store_class_end(); + } +} + +contacts_resetSaved::ReturnType contacts_resetSaved::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +contacts_resetTopPeerRating::contacts_resetTopPeerRating(object_ptr<TopPeerCategory> &&category_, object_ptr<InputPeer> &&peer_) + : category_(std::move(category_)) + , peer_(std::move(peer_)) +{} + +const std::int32_t contacts_resetTopPeerRating::ID; + +void contacts_resetTopPeerRating::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(451113900); + TlStoreBoxedUnknown<TlStoreObject>::store(category_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void contacts_resetTopPeerRating::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(451113900); + TlStoreBoxedUnknown<TlStoreObject>::store(category_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void contacts_resetTopPeerRating::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.resetTopPeerRating"); + s.store_object_field("category", static_cast<const BaseObject *>(category_.get())); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +contacts_resetTopPeerRating::ReturnType contacts_resetTopPeerRating::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +contacts_resolvePhone::contacts_resolvePhone(string const &phone_) + : phone_(phone_) +{} + +const std::int32_t contacts_resolvePhone::ID; + +void contacts_resolvePhone::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1963375804); + TlStoreString::store(phone_, s); +} + +void contacts_resolvePhone::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1963375804); + TlStoreString::store(phone_, s); +} + +void contacts_resolvePhone::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.resolvePhone"); + s.store_field("phone", phone_); + s.store_class_end(); + } +} + +contacts_resolvePhone::ReturnType contacts_resolvePhone::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<contacts_resolvedPeer>, 2131196633>::parse(p); +#undef FAIL +} + +contacts_resolveUsername::contacts_resolveUsername(string const &username_) + : username_(username_) +{} + +const std::int32_t contacts_resolveUsername::ID; + +void contacts_resolveUsername::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-113456221); + TlStoreString::store(username_, s); +} + +void contacts_resolveUsername::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-113456221); + TlStoreString::store(username_, s); +} + +void contacts_resolveUsername::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.resolveUsername"); + s.store_field("username", username_); + s.store_class_end(); + } +} + +contacts_resolveUsername::ReturnType contacts_resolveUsername::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<contacts_resolvedPeer>, 2131196633>::parse(p); +#undef FAIL +} + +contacts_search::contacts_search(string const &q_, int32 limit_) + : q_(q_) + , limit_(limit_) +{} + +const std::int32_t contacts_search::ID; + +void contacts_search::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(301470424); + TlStoreString::store(q_, s); + TlStoreBinary::store(limit_, s); +} + +void contacts_search::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(301470424); + TlStoreString::store(q_, s); + TlStoreBinary::store(limit_, s); +} + +void contacts_search::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.search"); + s.store_field("q", q_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +contacts_search::ReturnType contacts_search::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<contacts_found>, -1290580579>::parse(p); +#undef FAIL +} + +contacts_toggleTopPeers::contacts_toggleTopPeers(bool enabled_) + : enabled_(enabled_) +{} + +const std::int32_t contacts_toggleTopPeers::ID; + +void contacts_toggleTopPeers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2062238246); + TlStoreBool::store(enabled_, s); +} + +void contacts_toggleTopPeers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2062238246); + TlStoreBool::store(enabled_, s); +} + +void contacts_toggleTopPeers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.toggleTopPeers"); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +contacts_toggleTopPeers::ReturnType contacts_toggleTopPeers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +contacts_unblock::contacts_unblock(object_ptr<InputPeer> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t contacts_unblock::ID; + +void contacts_unblock::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1096393392); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void contacts_unblock::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1096393392); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void contacts_unblock::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "contacts.unblock"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +contacts_unblock::ReturnType contacts_unblock::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +folders_deleteFolder::folders_deleteFolder(int32 folder_id_) + : folder_id_(folder_id_) +{} + +const std::int32_t folders_deleteFolder::ID; + +void folders_deleteFolder::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(472471681); + TlStoreBinary::store(folder_id_, s); +} + +void folders_deleteFolder::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(472471681); + TlStoreBinary::store(folder_id_, s); +} + +void folders_deleteFolder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "folders.deleteFolder"); + s.store_field("folder_id", folder_id_); + s.store_class_end(); + } +} + +folders_deleteFolder::ReturnType folders_deleteFolder::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +folders_editPeerFolders::folders_editPeerFolders(array<object_ptr<inputFolderPeer>> &&folder_peers_) + : folder_peers_(std::move(folder_peers_)) +{} + +const std::int32_t folders_editPeerFolders::ID; + +void folders_editPeerFolders::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1749536939); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -70073706>>, 481674261>::store(folder_peers_, s); +} + +void folders_editPeerFolders::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1749536939); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -70073706>>, 481674261>::store(folder_peers_, s); +} + +void folders_editPeerFolders::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "folders.editPeerFolders"); + { s.store_vector_begin("folder_peers", folder_peers_.size()); for (const auto &_value : folder_peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +folders_editPeerFolders::ReturnType folders_editPeerFolders::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +help_acceptTermsOfService::help_acceptTermsOfService(object_ptr<dataJSON> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t help_acceptTermsOfService::ID; + +void help_acceptTermsOfService::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-294455398); + TlStoreBoxed<TlStoreObject, 2104790276>::store(id_, s); +} + +void help_acceptTermsOfService::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-294455398); + TlStoreBoxed<TlStoreObject, 2104790276>::store(id_, s); +} + +void help_acceptTermsOfService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.acceptTermsOfService"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +help_acceptTermsOfService::ReturnType help_acceptTermsOfService::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +help_dismissSuggestion::help_dismissSuggestion(object_ptr<InputPeer> &&peer_, string const &suggestion_) + : peer_(std::move(peer_)) + , suggestion_(suggestion_) +{} + +const std::int32_t help_dismissSuggestion::ID; + +void help_dismissSuggestion::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-183649631); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(suggestion_, s); +} + +void help_dismissSuggestion::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-183649631); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(suggestion_, s); +} + +void help_dismissSuggestion::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.dismissSuggestion"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("suggestion", suggestion_); + s.store_class_end(); + } +} + +help_dismissSuggestion::ReturnType help_dismissSuggestion::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +help_editUserInfo::help_editUserInfo(object_ptr<InputUser> &&user_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_) + : user_id_(std::move(user_id_)) + , message_(message_) + , entities_(std::move(entities_)) +{} + +const std::int32_t help_editUserInfo::ID; + +void help_editUserInfo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1723407216); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreString::store(message_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); +} + +void help_editUserInfo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1723407216); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreString::store(message_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); +} + +void help_editUserInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.editUserInfo"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("message", message_); + { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +help_editUserInfo::ReturnType help_editUserInfo::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_UserInfo>::parse(p); +#undef FAIL +} + +help_getAppChangelog::help_getAppChangelog(string const &prev_app_version_) + : prev_app_version_(prev_app_version_) +{} + +const std::int32_t help_getAppChangelog::ID; + +void help_getAppChangelog::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1877938321); + TlStoreString::store(prev_app_version_, s); +} + +void help_getAppChangelog::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1877938321); + TlStoreString::store(prev_app_version_, s); +} + +void help_getAppChangelog::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getAppChangelog"); + s.store_field("prev_app_version", prev_app_version_); + s.store_class_end(); + } +} + +help_getAppChangelog::ReturnType help_getAppChangelog::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +const std::int32_t help_getAppConfig::ID; + +void help_getAppConfig::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1735311088); +} + +void help_getAppConfig::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1735311088); +} + +void help_getAppConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getAppConfig"); + s.store_class_end(); + } +} + +help_getAppConfig::ReturnType help_getAppConfig::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<JSONValue>::parse(p); +#undef FAIL +} + +help_getAppUpdate::help_getAppUpdate(string const &source_) + : source_(source_) +{} + +const std::int32_t help_getAppUpdate::ID; + +void help_getAppUpdate::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1378703997); + TlStoreString::store(source_, s); +} + +void help_getAppUpdate::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1378703997); + TlStoreString::store(source_, s); +} + +void help_getAppUpdate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getAppUpdate"); + s.store_field("source", source_); + s.store_class_end(); + } +} + +help_getAppUpdate::ReturnType help_getAppUpdate::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_AppUpdate>::parse(p); +#undef FAIL +} + +const std::int32_t help_getCdnConfig::ID; + +void help_getCdnConfig::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1375900482); +} + +void help_getCdnConfig::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1375900482); +} + +void help_getCdnConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getCdnConfig"); + s.store_class_end(); + } +} + +help_getCdnConfig::ReturnType help_getCdnConfig::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<cdnConfig>, 1462101002>::parse(p); +#undef FAIL +} + +const std::int32_t help_getConfig::ID; + +void help_getConfig::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-990308245); +} + +void help_getConfig::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-990308245); +} + +void help_getConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getConfig"); + s.store_class_end(); + } +} + +help_getConfig::ReturnType help_getConfig::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<config>, 589653676>::parse(p); +#undef FAIL +} + +help_getCountriesList::help_getCountriesList(string const &lang_code_, int32 hash_) + : lang_code_(lang_code_) + , hash_(hash_) +{} + +const std::int32_t help_getCountriesList::ID; + +void help_getCountriesList::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1935116200); + TlStoreString::store(lang_code_, s); + TlStoreBinary::store(hash_, s); +} + +void help_getCountriesList::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1935116200); + TlStoreString::store(lang_code_, s); + TlStoreBinary::store(hash_, s); +} + +void help_getCountriesList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getCountriesList"); + s.store_field("lang_code", lang_code_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +help_getCountriesList::ReturnType help_getCountriesList::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_CountriesList>::parse(p); +#undef FAIL +} + +help_getDeepLinkInfo::help_getDeepLinkInfo(string const &path_) + : path_(path_) +{} + +const std::int32_t help_getDeepLinkInfo::ID; + +void help_getDeepLinkInfo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1072547679); + TlStoreString::store(path_, s); +} + +void help_getDeepLinkInfo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1072547679); + TlStoreString::store(path_, s); +} + +void help_getDeepLinkInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getDeepLinkInfo"); + s.store_field("path", path_); + s.store_class_end(); + } +} + +help_getDeepLinkInfo::ReturnType help_getDeepLinkInfo::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_DeepLinkInfo>::parse(p); +#undef FAIL +} + +const std::int32_t help_getInviteText::ID; + +void help_getInviteText::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1295590211); +} + +void help_getInviteText::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1295590211); +} + +void help_getInviteText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getInviteText"); + s.store_class_end(); + } +} + +help_getInviteText::ReturnType help_getInviteText::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<help_inviteText>, 415997816>::parse(p); +#undef FAIL +} + +const std::int32_t help_getNearestDc::ID; + +void help_getNearestDc::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(531836966); +} + +void help_getNearestDc::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(531836966); +} + +void help_getNearestDc::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getNearestDc"); + s.store_class_end(); + } +} + +help_getNearestDc::ReturnType help_getNearestDc::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<nearestDc>, -1910892683>::parse(p); +#undef FAIL +} + +help_getPassportConfig::help_getPassportConfig(int32 hash_) + : hash_(hash_) +{} + +const std::int32_t help_getPassportConfig::ID; + +void help_getPassportConfig::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-966677240); + TlStoreBinary::store(hash_, s); +} + +void help_getPassportConfig::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-966677240); + TlStoreBinary::store(hash_, s); +} + +void help_getPassportConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getPassportConfig"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +help_getPassportConfig::ReturnType help_getPassportConfig::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_PassportConfig>::parse(p); +#undef FAIL +} + +const std::int32_t help_getPremiumPromo::ID; + +void help_getPremiumPromo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1206152236); +} + +void help_getPremiumPromo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1206152236); +} + +void help_getPremiumPromo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getPremiumPromo"); + s.store_class_end(); + } +} + +help_getPremiumPromo::ReturnType help_getPremiumPromo::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<help_premiumPromo>, 1395946908>::parse(p); +#undef FAIL +} + +const std::int32_t help_getPromoData::ID; + +void help_getPromoData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1063816159); +} + +void help_getPromoData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1063816159); +} + +void help_getPromoData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getPromoData"); + s.store_class_end(); + } +} + +help_getPromoData::ReturnType help_getPromoData::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_PromoData>::parse(p); +#undef FAIL +} + +help_getRecentMeUrls::help_getRecentMeUrls(string const &referer_) + : referer_(referer_) +{} + +const std::int32_t help_getRecentMeUrls::ID; + +void help_getRecentMeUrls::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1036054804); + TlStoreString::store(referer_, s); +} + +void help_getRecentMeUrls::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1036054804); + TlStoreString::store(referer_, s); +} + +void help_getRecentMeUrls::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getRecentMeUrls"); + s.store_field("referer", referer_); + s.store_class_end(); + } +} + +help_getRecentMeUrls::ReturnType help_getRecentMeUrls::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<help_recentMeUrls>, 235081943>::parse(p); +#undef FAIL +} + +const std::int32_t help_getSupport::ID; + +void help_getSupport::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1663104819); +} + +void help_getSupport::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1663104819); +} + +void help_getSupport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getSupport"); + s.store_class_end(); + } +} + +help_getSupport::ReturnType help_getSupport::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<help_support>, 398898678>::parse(p); +#undef FAIL +} + +const std::int32_t help_getSupportName::ID; + +void help_getSupportName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-748624084); +} + +void help_getSupportName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-748624084); +} + +void help_getSupportName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getSupportName"); + s.store_class_end(); + } +} + +help_getSupportName::ReturnType help_getSupportName::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<help_supportName>, -1945767479>::parse(p); +#undef FAIL +} + +const std::int32_t help_getTermsOfServiceUpdate::ID; + +void help_getTermsOfServiceUpdate::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(749019089); +} + +void help_getTermsOfServiceUpdate::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(749019089); +} + +void help_getTermsOfServiceUpdate::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getTermsOfServiceUpdate"); + s.store_class_end(); + } +} + +help_getTermsOfServiceUpdate::ReturnType help_getTermsOfServiceUpdate::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_TermsOfServiceUpdate>::parse(p); +#undef FAIL +} + +help_getUserInfo::help_getUserInfo(object_ptr<InputUser> &&user_id_) + : user_id_(std::move(user_id_)) +{} + +const std::int32_t help_getUserInfo::ID; + +void help_getUserInfo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(59377875); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void help_getUserInfo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(59377875); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void help_getUserInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.getUserInfo"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +help_getUserInfo::ReturnType help_getUserInfo::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<help_UserInfo>::parse(p); +#undef FAIL +} + +help_hidePromoData::help_hidePromoData(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t help_hidePromoData::ID; + +void help_hidePromoData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(505748629); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void help_hidePromoData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(505748629); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void help_hidePromoData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.hidePromoData"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +help_hidePromoData::ReturnType help_hidePromoData::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +help_saveAppLog::help_saveAppLog(array<object_ptr<inputAppEvent>> &&events_) + : events_(std::move(events_)) +{} + +const std::int32_t help_saveAppLog::ID; + +void help_saveAppLog::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1862465352); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 488313413>>, 481674261>::store(events_, s); +} + +void help_saveAppLog::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1862465352); + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 488313413>>, 481674261>::store(events_, s); +} + +void help_saveAppLog::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.saveAppLog"); + { s.store_vector_begin("events", events_.size()); for (const auto &_value : events_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +help_saveAppLog::ReturnType help_saveAppLog::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +help_setBotUpdatesStatus::help_setBotUpdatesStatus(int32 pending_updates_count_, string const &message_) + : pending_updates_count_(pending_updates_count_) + , message_(message_) +{} + +const std::int32_t help_setBotUpdatesStatus::ID; + +void help_setBotUpdatesStatus::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-333262899); + TlStoreBinary::store(pending_updates_count_, s); + TlStoreString::store(message_, s); +} + +void help_setBotUpdatesStatus::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-333262899); + TlStoreBinary::store(pending_updates_count_, s); + TlStoreString::store(message_, s); +} + +void help_setBotUpdatesStatus::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "help.setBotUpdatesStatus"); + s.store_field("pending_updates_count", pending_updates_count_); + s.store_field("message", message_); + s.store_class_end(); + } +} + +help_setBotUpdatesStatus::ReturnType help_setBotUpdatesStatus::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +langpack_getDifference::langpack_getDifference(string const &lang_pack_, string const &lang_code_, int32 from_version_) + : lang_pack_(lang_pack_) + , lang_code_(lang_code_) + , from_version_(from_version_) +{} + +const std::int32_t langpack_getDifference::ID; + +void langpack_getDifference::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-845657435); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); + TlStoreBinary::store(from_version_, s); +} + +void langpack_getDifference::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-845657435); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); + TlStoreBinary::store(from_version_, s); +} + +void langpack_getDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langpack.getDifference"); + s.store_field("lang_pack", lang_pack_); + s.store_field("lang_code", lang_code_); + s.store_field("from_version", from_version_); + s.store_class_end(); + } +} + +langpack_getDifference::ReturnType langpack_getDifference::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<langPackDifference>, -209337866>::parse(p); +#undef FAIL +} + +langpack_getLangPack::langpack_getLangPack(string const &lang_pack_, string const &lang_code_) + : lang_pack_(lang_pack_) + , lang_code_(lang_code_) +{} + +const std::int32_t langpack_getLangPack::ID; + +void langpack_getLangPack::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-219008246); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); +} + +void langpack_getLangPack::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-219008246); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); +} + +void langpack_getLangPack::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langpack.getLangPack"); + s.store_field("lang_pack", lang_pack_); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +langpack_getLangPack::ReturnType langpack_getLangPack::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<langPackDifference>, -209337866>::parse(p); +#undef FAIL +} + +langpack_getLanguage::langpack_getLanguage(string const &lang_pack_, string const &lang_code_) + : lang_pack_(lang_pack_) + , lang_code_(lang_code_) +{} + +const std::int32_t langpack_getLanguage::ID; + +void langpack_getLanguage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1784243458); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); +} + +void langpack_getLanguage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1784243458); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); +} + +void langpack_getLanguage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langpack.getLanguage"); + s.store_field("lang_pack", lang_pack_); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +langpack_getLanguage::ReturnType langpack_getLanguage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<langPackLanguage>, -288727837>::parse(p); +#undef FAIL +} + +langpack_getLanguages::langpack_getLanguages(string const &lang_pack_) + : lang_pack_(lang_pack_) +{} + +const std::int32_t langpack_getLanguages::ID; + +void langpack_getLanguages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1120311183); + TlStoreString::store(lang_pack_, s); +} + +void langpack_getLanguages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1120311183); + TlStoreString::store(lang_pack_, s); +} + +void langpack_getLanguages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langpack.getLanguages"); + s.store_field("lang_pack", lang_pack_); + s.store_class_end(); + } +} + +langpack_getLanguages::ReturnType langpack_getLanguages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<langPackLanguage>, -288727837>>, 481674261>::parse(p); +#undef FAIL +} + +langpack_getStrings::langpack_getStrings(string const &lang_pack_, string const &lang_code_, array<string> &&keys_) + : lang_pack_(lang_pack_) + , lang_code_(lang_code_) + , keys_(std::move(keys_)) +{} + +const std::int32_t langpack_getStrings::ID; + +void langpack_getStrings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-269862909); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(keys_, s); +} + +void langpack_getStrings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-269862909); + TlStoreString::store(lang_pack_, s); + TlStoreString::store(lang_code_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(keys_, s); +} + +void langpack_getStrings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "langpack.getStrings"); + s.store_field("lang_pack", lang_pack_); + s.store_field("lang_code", lang_code_); + { s.store_vector_begin("keys", keys_.size()); for (const auto &_value : keys_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +langpack_getStrings::ReturnType langpack_getStrings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchObject<LangPackString>>, 481674261>::parse(p); +#undef FAIL +} + +messages_acceptEncryption::messages_acceptEncryption(object_ptr<inputEncryptedChat> &&peer_, bytes &&g_b_, int64 key_fingerprint_) + : peer_(std::move(peer_)) + , g_b_(std::move(g_b_)) + , key_fingerprint_(key_fingerprint_) +{} + +const std::int32_t messages_acceptEncryption::ID; + +void messages_acceptEncryption::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1035731989); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreString::store(g_b_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void messages_acceptEncryption::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1035731989); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreString::store(g_b_, s); + TlStoreBinary::store(key_fingerprint_, s); +} + +void messages_acceptEncryption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.acceptEncryption"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_bytes_field("g_b", g_b_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_class_end(); + } +} + +messages_acceptEncryption::ReturnType messages_acceptEncryption::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<EncryptedChat>::parse(p); +#undef FAIL +} + +messages_acceptUrlAuth::messages_acceptUrlAuth(int32 flags_, bool write_allowed_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_) + : flags_(flags_) + , write_allowed_(write_allowed_) + , peer_(std::move(peer_)) + , msg_id_(msg_id_) + , button_id_(button_id_) + , url_(url_) +{} + +const std::int32_t messages_acceptUrlAuth::ID; + +void messages_acceptUrlAuth::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1322487515); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } + if (var0 & 2) { TlStoreBinary::store(msg_id_, s); } + if (var0 & 2) { TlStoreBinary::store(button_id_, s); } + if (var0 & 4) { TlStoreString::store(url_, s); } +} + +void messages_acceptUrlAuth::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1322487515); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } + if (var0 & 2) { TlStoreBinary::store(msg_id_, s); } + if (var0 & 2) { TlStoreBinary::store(button_id_, s); } + if (var0 & 4) { TlStoreString::store(url_, s); } +} + +void messages_acceptUrlAuth::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.acceptUrlAuth"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); } + if (var0 & 2) { s.store_field("msg_id", msg_id_); } + if (var0 & 2) { s.store_field("button_id", button_id_); } + if (var0 & 4) { s.store_field("url", url_); } + s.store_class_end(); + } +} + +messages_acceptUrlAuth::ReturnType messages_acceptUrlAuth::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<UrlAuthResult>::parse(p); +#undef FAIL +} + +messages_addChatUser::messages_addChatUser(int64 chat_id_, object_ptr<InputUser> &&user_id_, int32 fwd_limit_) + : chat_id_(chat_id_) + , user_id_(std::move(user_id_)) + , fwd_limit_(fwd_limit_) +{} + +const std::int32_t messages_addChatUser::ID; + +void messages_addChatUser::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-230206493); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(fwd_limit_, s); +} + +void messages_addChatUser::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-230206493); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(fwd_limit_, s); +} + +void messages_addChatUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.addChatUser"); + s.store_field("chat_id", chat_id_); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("fwd_limit", fwd_limit_); + s.store_class_end(); + } +} + +messages_addChatUser::ReturnType messages_addChatUser::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_checkChatInvite::messages_checkChatInvite(string const &hash_) + : hash_(hash_) +{} + +const std::int32_t messages_checkChatInvite::ID; + +void messages_checkChatInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1051570619); + TlStoreString::store(hash_, s); +} + +void messages_checkChatInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1051570619); + TlStoreString::store(hash_, s); +} + +void messages_checkChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.checkChatInvite"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_checkChatInvite::ReturnType messages_checkChatInvite::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<ChatInvite>::parse(p); +#undef FAIL +} + +messages_checkHistoryImport::messages_checkHistoryImport(string const &import_head_) + : import_head_(import_head_) +{} + +const std::int32_t messages_checkHistoryImport::ID; + +void messages_checkHistoryImport::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1140726259); + TlStoreString::store(import_head_, s); +} + +void messages_checkHistoryImport::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1140726259); + TlStoreString::store(import_head_, s); +} + +void messages_checkHistoryImport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.checkHistoryImport"); + s.store_field("import_head", import_head_); + s.store_class_end(); + } +} + +messages_checkHistoryImport::ReturnType messages_checkHistoryImport::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_historyImportParsed>, 1578088377>::parse(p); +#undef FAIL +} + +messages_checkHistoryImportPeer::messages_checkHistoryImportPeer(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t messages_checkHistoryImportPeer::ID; + +void messages_checkHistoryImportPeer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1573261059); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_checkHistoryImportPeer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1573261059); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_checkHistoryImportPeer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.checkHistoryImportPeer"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_checkHistoryImportPeer::ReturnType messages_checkHistoryImportPeer::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_checkedHistoryImportPeer>, -1571952873>::parse(p); +#undef FAIL +} + +const std::int32_t messages_clearAllDrafts::ID; + +void messages_clearAllDrafts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2119757468); +} + +void messages_clearAllDrafts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2119757468); +} + +void messages_clearAllDrafts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.clearAllDrafts"); + s.store_class_end(); + } +} + +messages_clearAllDrafts::ReturnType messages_clearAllDrafts::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +const std::int32_t messages_clearRecentReactions::ID; + +void messages_clearRecentReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1644236876); +} + +void messages_clearRecentReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1644236876); +} + +void messages_clearRecentReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.clearRecentReactions"); + s.store_class_end(); + } +} + +messages_clearRecentReactions::ReturnType messages_clearRecentReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_clearRecentStickers::messages_clearRecentStickers(int32 flags_, bool attached_) + : flags_(flags_) + , attached_(attached_) +{} + +const std::int32_t messages_clearRecentStickers::ID; + +void messages_clearRecentStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1986437075); + TlStoreBinary::store((var0 = flags_), s); +} + +void messages_clearRecentStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1986437075); + TlStoreBinary::store((var0 = flags_), s); +} + +void messages_clearRecentStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.clearRecentStickers"); + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +messages_clearRecentStickers::ReturnType messages_clearRecentStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_createChat::messages_createChat(array<object_ptr<InputUser>> &&users_, string const &title_) + : users_(std::move(users_)) + , title_(title_) +{} + +const std::int32_t messages_createChat::ID; + +void messages_createChat::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(164303470); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); + TlStoreString::store(title_, s); +} + +void messages_createChat::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(164303470); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); + TlStoreString::store(title_, s); +} + +void messages_createChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.createChat"); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("title", title_); + s.store_class_end(); + } +} + +messages_createChat::ReturnType messages_createChat::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_deleteChat::messages_deleteChat(int64 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t messages_deleteChat::ID; + +void messages_deleteChat::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1540419152); + TlStoreBinary::store(chat_id_, s); +} + +void messages_deleteChat::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1540419152); + TlStoreBinary::store(chat_id_, s); +} + +void messages_deleteChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deleteChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +messages_deleteChat::ReturnType messages_deleteChat::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_deleteChatUser::messages_deleteChatUser(int32 flags_, bool revoke_history_, int64 chat_id_, object_ptr<InputUser> &&user_id_) + : flags_(flags_) + , revoke_history_(revoke_history_) + , chat_id_(chat_id_) + , user_id_(std::move(user_id_)) +{} + +const std::int32_t messages_deleteChatUser::ID; + +void messages_deleteChatUser::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1575461717); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_deleteChatUser::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1575461717); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_deleteChatUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deleteChatUser"); + s.store_field("flags", (var0 = flags_)); + s.store_field("chat_id", chat_id_); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +messages_deleteChatUser::ReturnType messages_deleteChatUser::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_deleteExportedChatInvite::messages_deleteExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_) + : peer_(std::move(peer_)) + , link_(link_) +{} + +const std::int32_t messages_deleteExportedChatInvite::ID; + +void messages_deleteExportedChatInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-731601877); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(link_, s); +} + +void messages_deleteExportedChatInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-731601877); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(link_, s); +} + +void messages_deleteExportedChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deleteExportedChatInvite"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("link", link_); + s.store_class_end(); + } +} + +messages_deleteExportedChatInvite::ReturnType messages_deleteExportedChatInvite::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_deleteHistory::messages_deleteHistory(int32 flags_, bool just_clear_, bool revoke_, object_ptr<InputPeer> &&peer_, int32 max_id_, int32 min_date_, int32 max_date_) + : flags_(flags_) + , just_clear_(just_clear_) + , revoke_(revoke_) + , peer_(std::move(peer_)) + , max_id_(max_id_) + , min_date_(min_date_) + , max_date_(max_date_) +{} + +const std::int32_t messages_deleteHistory::ID; + +void messages_deleteHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1332768214); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(max_id_, s); + if (var0 & 4) { TlStoreBinary::store(min_date_, s); } + if (var0 & 8) { TlStoreBinary::store(max_date_, s); } +} + +void messages_deleteHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1332768214); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(max_id_, s); + if (var0 & 4) { TlStoreBinary::store(min_date_, s); } + if (var0 & 8) { TlStoreBinary::store(max_date_, s); } +} + +void messages_deleteHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deleteHistory"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("max_id", max_id_); + if (var0 & 4) { s.store_field("min_date", min_date_); } + if (var0 & 8) { s.store_field("max_date", max_date_); } + s.store_class_end(); + } +} + +messages_deleteHistory::ReturnType messages_deleteHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p); +#undef FAIL +} + +messages_deleteMessages::messages_deleteMessages(int32 flags_, bool revoke_, array<int32> &&id_) + : flags_(flags_) + , revoke_(revoke_) + , id_(std::move(id_)) +{} + +const std::int32_t messages_deleteMessages::ID; + +void messages_deleteMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-443640366); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_deleteMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-443640366); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_deleteMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deleteMessages"); + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_deleteMessages::ReturnType messages_deleteMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p); +#undef FAIL +} + +messages_deletePhoneCallHistory::messages_deletePhoneCallHistory(int32 flags_, bool revoke_) + : flags_(flags_) + , revoke_(revoke_) +{} + +const std::int32_t messages_deletePhoneCallHistory::ID; + +void messages_deletePhoneCallHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-104078327); + TlStoreBinary::store((var0 = flags_), s); +} + +void messages_deletePhoneCallHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-104078327); + TlStoreBinary::store((var0 = flags_), s); +} + +void messages_deletePhoneCallHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deletePhoneCallHistory"); + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +messages_deletePhoneCallHistory::ReturnType messages_deletePhoneCallHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedFoundMessages>, -275956116>::parse(p); +#undef FAIL +} + +messages_deleteRevokedExportedChatInvites::messages_deleteRevokedExportedChatInvites(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_) + : peer_(std::move(peer_)) + , admin_id_(std::move(admin_id_)) +{} + +const std::int32_t messages_deleteRevokedExportedChatInvites::ID; + +void messages_deleteRevokedExportedChatInvites::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1452833749); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s); +} + +void messages_deleteRevokedExportedChatInvites::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1452833749); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s); +} + +void messages_deleteRevokedExportedChatInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deleteRevokedExportedChatInvites"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("admin_id", static_cast<const BaseObject *>(admin_id_.get())); + s.store_class_end(); + } +} + +messages_deleteRevokedExportedChatInvites::ReturnType messages_deleteRevokedExportedChatInvites::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_deleteScheduledMessages::messages_deleteScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_) + : peer_(std::move(peer_)) + , id_(std::move(id_)) +{} + +const std::int32_t messages_deleteScheduledMessages::ID; + +void messages_deleteScheduledMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1504586518); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_deleteScheduledMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1504586518); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_deleteScheduledMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.deleteScheduledMessages"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_deleteScheduledMessages::ReturnType messages_deleteScheduledMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_discardEncryption::messages_discardEncryption(int32 flags_, bool delete_history_, int32 chat_id_) + : flags_(flags_) + , delete_history_(delete_history_) + , chat_id_(chat_id_) +{} + +const std::int32_t messages_discardEncryption::ID; + +void messages_discardEncryption::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-208425312); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(chat_id_, s); +} + +void messages_discardEncryption::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-208425312); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(chat_id_, s); +} + +void messages_discardEncryption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.discardEncryption"); + s.store_field("flags", (var0 = flags_)); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +messages_discardEncryption::ReturnType messages_discardEncryption::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_editChatAbout::messages_editChatAbout(object_ptr<InputPeer> &&peer_, string const &about_) + : peer_(std::move(peer_)) + , about_(about_) +{} + +const std::int32_t messages_editChatAbout::ID; + +void messages_editChatAbout::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-554301545); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(about_, s); +} + +void messages_editChatAbout::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-554301545); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(about_, s); +} + +void messages_editChatAbout::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editChatAbout"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("about", about_); + s.store_class_end(); + } +} + +messages_editChatAbout::ReturnType messages_editChatAbout::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_editChatAdmin::messages_editChatAdmin(int64 chat_id_, object_ptr<InputUser> &&user_id_, bool is_admin_) + : chat_id_(chat_id_) + , user_id_(std::move(user_id_)) + , is_admin_(is_admin_) +{} + +const std::int32_t messages_editChatAdmin::ID; + +void messages_editChatAdmin::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1470377534); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBool::store(is_admin_, s); +} + +void messages_editChatAdmin::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1470377534); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBool::store(is_admin_, s); +} + +void messages_editChatAdmin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editChatAdmin"); + s.store_field("chat_id", chat_id_); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("is_admin", is_admin_); + s.store_class_end(); + } +} + +messages_editChatAdmin::ReturnType messages_editChatAdmin::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_editChatDefaultBannedRights::messages_editChatDefaultBannedRights(object_ptr<InputPeer> &&peer_, object_ptr<chatBannedRights> &&banned_rights_) + : peer_(std::move(peer_)) + , banned_rights_(std::move(banned_rights_)) +{} + +const std::int32_t messages_editChatDefaultBannedRights::ID; + +void messages_editChatDefaultBannedRights::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1517917375); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s); +} + +void messages_editChatDefaultBannedRights::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1517917375); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreObject, -1626209256>::store(banned_rights_, s); +} + +void messages_editChatDefaultBannedRights::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editChatDefaultBannedRights"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("banned_rights", static_cast<const BaseObject *>(banned_rights_.get())); + s.store_class_end(); + } +} + +messages_editChatDefaultBannedRights::ReturnType messages_editChatDefaultBannedRights::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_editChatPhoto::messages_editChatPhoto(int64 chat_id_, object_ptr<InputChatPhoto> &&photo_) + : chat_id_(chat_id_) + , photo_(std::move(photo_)) +{} + +const std::int32_t messages_editChatPhoto::ID; + +void messages_editChatPhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(903730804); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s); +} + +void messages_editChatPhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(903730804); + TlStoreBinary::store(chat_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(photo_, s); +} + +void messages_editChatPhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editChatPhoto"); + s.store_field("chat_id", chat_id_); + s.store_object_field("photo", static_cast<const BaseObject *>(photo_.get())); + s.store_class_end(); + } +} + +messages_editChatPhoto::ReturnType messages_editChatPhoto::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_editChatTitle::messages_editChatTitle(int64 chat_id_, string const &title_) + : chat_id_(chat_id_) + , title_(title_) +{} + +const std::int32_t messages_editChatTitle::ID; + +void messages_editChatTitle::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1937260541); + TlStoreBinary::store(chat_id_, s); + TlStoreString::store(title_, s); +} + +void messages_editChatTitle::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1937260541); + TlStoreBinary::store(chat_id_, s); + TlStoreString::store(title_, s); +} + +void messages_editChatTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editChatTitle"); + s.store_field("chat_id", chat_id_); + s.store_field("title", title_); + s.store_class_end(); + } +} + +messages_editChatTitle::ReturnType messages_editChatTitle::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_editExportedChatInvite::messages_editExportedChatInvite(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, string const &link_, int32 expire_date_, int32 usage_limit_, bool request_needed_, string const &title_) + : flags_(flags_) + , revoked_(revoked_) + , peer_(std::move(peer_)) + , link_(link_) + , expire_date_(expire_date_) + , usage_limit_(usage_limit_) + , request_needed_(request_needed_) + , title_(title_) +{} + +const std::int32_t messages_editExportedChatInvite::ID; + +void messages_editExportedChatInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1110823051); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(link_, s); + if (var0 & 1) { TlStoreBinary::store(expire_date_, s); } + if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); } + if (var0 & 8) { TlStoreBool::store(request_needed_, s); } + if (var0 & 16) { TlStoreString::store(title_, s); } +} + +void messages_editExportedChatInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1110823051); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(link_, s); + if (var0 & 1) { TlStoreBinary::store(expire_date_, s); } + if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); } + if (var0 & 8) { TlStoreBool::store(request_needed_, s); } + if (var0 & 16) { TlStoreString::store(title_, s); } +} + +void messages_editExportedChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editExportedChatInvite"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("link", link_); + if (var0 & 1) { s.store_field("expire_date", expire_date_); } + if (var0 & 2) { s.store_field("usage_limit", usage_limit_); } + if (var0 & 8) { s.store_field("request_needed", request_needed_); } + if (var0 & 16) { s.store_field("title", title_); } + s.store_class_end(); + } +} + +messages_editExportedChatInvite::ReturnType messages_editExportedChatInvite::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_ExportedChatInvite>::parse(p); +#undef FAIL +} + +messages_editInlineBotMessage::messages_editInlineBotMessage(int32 flags_, bool no_webpage_, object_ptr<InputBotInlineMessageID> &&id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_) + : flags_(flags_) + , no_webpage_(no_webpage_) + , id_(std::move(id_)) + , message_(message_) + , media_(std::move(media_)) + , reply_markup_(std::move(reply_markup_)) + , entities_(std::move(entities_)) +{} + +const std::int32_t messages_editInlineBotMessage::ID; + +void messages_editInlineBotMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2091549254); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + if (var0 & 2048) { TlStoreString::store(message_, s); } + if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void messages_editInlineBotMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2091549254); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + if (var0 & 2048) { TlStoreString::store(message_, s); } + if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void messages_editInlineBotMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editInlineBotMessage"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + if (var0 & 2048) { s.store_field("message", message_); } + if (var0 & 16384) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +messages_editInlineBotMessage::ReturnType messages_editInlineBotMessage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_editMessage::messages_editMessage(int32 flags_, bool no_webpage_, object_ptr<InputPeer> &&peer_, int32 id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_) + : flags_(flags_) + , no_webpage_(no_webpage_) + , peer_(std::move(peer_)) + , id_(id_) + , message_(message_) + , media_(std::move(media_)) + , reply_markup_(std::move(reply_markup_)) + , entities_(std::move(entities_)) + , schedule_date_(schedule_date_) +{} + +const std::int32_t messages_editMessage::ID; + +void messages_editMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1224152952); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + if (var0 & 2048) { TlStoreString::store(message_, s); } + if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 32768) { TlStoreBinary::store(schedule_date_, s); } +} + +void messages_editMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1224152952); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + if (var0 & 2048) { TlStoreString::store(message_, s); } + if (var0 & 16384) { TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 32768) { TlStoreBinary::store(schedule_date_, s); } +} + +void messages_editMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.editMessage"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + if (var0 & 2048) { s.store_field("message", message_); } + if (var0 & 16384) { s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); } + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 32768) { s.store_field("schedule_date", schedule_date_); } + s.store_class_end(); + } +} + +messages_editMessage::ReturnType messages_editMessage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_exportChatInvite::messages_exportChatInvite(int32 flags_, bool legacy_revoke_permanent_, bool request_needed_, object_ptr<InputPeer> &&peer_, int32 expire_date_, int32 usage_limit_, string const &title_) + : flags_(flags_) + , legacy_revoke_permanent_(legacy_revoke_permanent_) + , request_needed_(request_needed_) + , peer_(std::move(peer_)) + , expire_date_(expire_date_) + , usage_limit_(usage_limit_) + , title_(title_) +{} + +const std::int32_t messages_exportChatInvite::ID; + +void messages_exportChatInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1607670315); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(expire_date_, s); } + if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); } + if (var0 & 16) { TlStoreString::store(title_, s); } +} + +void messages_exportChatInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1607670315); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(expire_date_, s); } + if (var0 & 2) { TlStoreBinary::store(usage_limit_, s); } + if (var0 & 16) { TlStoreString::store(title_, s); } +} + +void messages_exportChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.exportChatInvite"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("expire_date", expire_date_); } + if (var0 & 2) { s.store_field("usage_limit", usage_limit_); } + if (var0 & 16) { s.store_field("title", title_); } + s.store_class_end(); + } +} + +messages_exportChatInvite::ReturnType messages_exportChatInvite::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<ExportedChatInvite>::parse(p); +#undef FAIL +} + +messages_faveSticker::messages_faveSticker(object_ptr<InputDocument> &&id_, bool unfave_) + : id_(std::move(id_)) + , unfave_(unfave_) +{} + +const std::int32_t messages_faveSticker::ID; + +void messages_faveSticker::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1174420133); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unfave_, s); +} + +void messages_faveSticker::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1174420133); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unfave_, s); +} + +void messages_faveSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.faveSticker"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_field("unfave", unfave_); + s.store_class_end(); + } +} + +messages_faveSticker::ReturnType messages_faveSticker::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_forwardMessages::messages_forwardMessages(int32 flags_, bool silent_, bool background_, bool with_my_score_, bool drop_author_, bool drop_media_captions_, bool noforwards_, object_ptr<InputPeer> &&from_peer_, array<int32> &&id_, array<int64> &&random_id_, object_ptr<InputPeer> &&to_peer_, int32 top_msg_id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , silent_(silent_) + , background_(background_) + , with_my_score_(with_my_score_) + , drop_author_(drop_author_) + , drop_media_captions_(drop_media_captions_) + , noforwards_(noforwards_) + , from_peer_(std::move(from_peer_)) + , id_(std::move(id_)) + , random_id_(std::move(random_id_)) + , to_peer_(std::move(to_peer_)) + , top_msg_id_(top_msg_id_) + , schedule_date_(schedule_date_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_forwardMessages::ID; + +void messages_forwardMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-966673468); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(from_peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(to_peer_, s); + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_forwardMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-966673468); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(from_peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(random_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(to_peer_, s); + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_forwardMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.forwardMessages"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("from_peer", static_cast<const BaseObject *>(from_peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + { s.store_vector_begin("random_id", random_id_.size()); for (const auto &_value : random_id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_object_field("to_peer", static_cast<const BaseObject *>(to_peer_.get())); + if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); } + if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); } + if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +messages_forwardMessages::ReturnType messages_forwardMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_getAdminsWithInvites::messages_getAdminsWithInvites(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t messages_getAdminsWithInvites::ID; + +void messages_getAdminsWithInvites::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(958457583); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_getAdminsWithInvites::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(958457583); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_getAdminsWithInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAdminsWithInvites"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_getAdminsWithInvites::ReturnType messages_getAdminsWithInvites::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_chatAdminsWithInvites>, -1231326505>::parse(p); +#undef FAIL +} + +messages_getAllChats::messages_getAllChats(array<int64> &&except_ids_) + : except_ids_(std::move(except_ids_)) +{} + +const std::int32_t messages_getAllChats::ID; + +void messages_getAllChats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2023787330); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s); +} + +void messages_getAllChats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2023787330); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(except_ids_, s); +} + +void messages_getAllChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAllChats"); + { s.store_vector_begin("except_ids", except_ids_.size()); for (const auto &_value : except_ids_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getAllChats::ReturnType messages_getAllChats::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Chats>::parse(p); +#undef FAIL +} + +const std::int32_t messages_getAllDrafts::ID; + +void messages_getAllDrafts::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1782549861); +} + +void messages_getAllDrafts::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1782549861); +} + +void messages_getAllDrafts::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAllDrafts"); + s.store_class_end(); + } +} + +messages_getAllDrafts::ReturnType messages_getAllDrafts::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_getAllStickers::messages_getAllStickers(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getAllStickers::ID; + +void messages_getAllStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1197432408); + TlStoreBinary::store(hash_, s); +} + +void messages_getAllStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1197432408); + TlStoreBinary::store(hash_, s); +} + +void messages_getAllStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAllStickers"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getAllStickers::ReturnType messages_getAllStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_AllStickers>::parse(p); +#undef FAIL +} + +messages_getArchivedStickers::messages_getArchivedStickers(int32 flags_, bool masks_, bool emojis_, int64 offset_id_, int32 limit_) + : flags_(flags_) + , masks_(masks_) + , emojis_(emojis_) + , offset_id_(offset_id_) + , limit_(limit_) +{} + +const std::int32_t messages_getArchivedStickers::ID; + +void messages_getArchivedStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1475442322); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getArchivedStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1475442322); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getArchivedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getArchivedStickers"); + s.store_field("flags", (var0 = flags_)); + s.store_field("offset_id", offset_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_getArchivedStickers::ReturnType messages_getArchivedStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_archivedStickers>, 1338747336>::parse(p); +#undef FAIL +} + +messages_getAttachMenuBot::messages_getAttachMenuBot(object_ptr<InputUser> &&bot_) + : bot_(std::move(bot_)) +{} + +const std::int32_t messages_getAttachMenuBot::ID; + +void messages_getAttachMenuBot::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1998676370); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); +} + +void messages_getAttachMenuBot::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1998676370); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); +} + +void messages_getAttachMenuBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAttachMenuBot"); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_class_end(); + } +} + +messages_getAttachMenuBot::ReturnType messages_getAttachMenuBot::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<attachMenuBotsBot>, -1816172929>::parse(p); +#undef FAIL +} + +messages_getAttachMenuBots::messages_getAttachMenuBots(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getAttachMenuBots::ID; + +void messages_getAttachMenuBots::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(385663691); + TlStoreBinary::store(hash_, s); +} + +void messages_getAttachMenuBots::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(385663691); + TlStoreBinary::store(hash_, s); +} + +void messages_getAttachMenuBots::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAttachMenuBots"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getAttachMenuBots::ReturnType messages_getAttachMenuBots::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<AttachMenuBots>::parse(p); +#undef FAIL +} + +messages_getAttachedStickers::messages_getAttachedStickers(object_ptr<InputStickeredMedia> &&media_) + : media_(std::move(media_)) +{} + +const std::int32_t messages_getAttachedStickers::ID; + +void messages_getAttachedStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-866424884); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void messages_getAttachedStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-866424884); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void messages_getAttachedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAttachedStickers"); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_class_end(); + } +} + +messages_getAttachedStickers::ReturnType messages_getAttachedStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchObject<StickerSetCovered>>, 481674261>::parse(p); +#undef FAIL +} + +messages_getAvailableReactions::messages_getAvailableReactions(int32 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getAvailableReactions::ID; + +void messages_getAvailableReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(417243308); + TlStoreBinary::store(hash_, s); +} + +void messages_getAvailableReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(417243308); + TlStoreBinary::store(hash_, s); +} + +void messages_getAvailableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getAvailableReactions"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getAvailableReactions::ReturnType messages_getAvailableReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_AvailableReactions>::parse(p); +#undef FAIL +} + +messages_getBotCallbackAnswer::messages_getBotCallbackAnswer(int32 flags_, bool game_, object_ptr<InputPeer> &&peer_, int32 msg_id_, bytes &&data_, object_ptr<InputCheckPasswordSRP> &&password_) + : flags_(flags_) + , game_(game_) + , peer_(std::move(peer_)) + , msg_id_(msg_id_) + , data_(std::move(data_)) + , password_(std::move(password_)) +{} + +const std::int32_t messages_getBotCallbackAnswer::ID; + +void messages_getBotCallbackAnswer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1824339449); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + if (var0 & 1) { TlStoreString::store(data_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); } +} + +void messages_getBotCallbackAnswer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1824339449); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + if (var0 & 1) { TlStoreString::store(data_, s); } + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(password_, s); } +} + +void messages_getBotCallbackAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getBotCallbackAnswer"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + if (var0 & 1) { s.store_bytes_field("data", data_); } + if (var0 & 4) { s.store_object_field("password", static_cast<const BaseObject *>(password_.get())); } + s.store_class_end(); + } +} + +messages_getBotCallbackAnswer::ReturnType messages_getBotCallbackAnswer::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_botCallbackAnswer>, 911761060>::parse(p); +#undef FAIL +} + +messages_getChatInviteImporters::messages_getChatInviteImporters(int32 flags_, bool requested_, object_ptr<InputPeer> &&peer_, string const &link_, string const &q_, int32 offset_date_, object_ptr<InputUser> &&offset_user_, int32 limit_) + : flags_(flags_) + , requested_(requested_) + , peer_(std::move(peer_)) + , link_(link_) + , q_(q_) + , offset_date_(offset_date_) + , offset_user_(std::move(offset_user_)) + , limit_(limit_) +{} + +const std::int32_t messages_getChatInviteImporters::ID; + +void messages_getChatInviteImporters::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-553329330); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 2) { TlStoreString::store(link_, s); } + if (var0 & 4) { TlStoreString::store(q_, s); } + TlStoreBinary::store(offset_date_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_user_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getChatInviteImporters::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-553329330); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 2) { TlStoreString::store(link_, s); } + if (var0 & 4) { TlStoreString::store(q_, s); } + TlStoreBinary::store(offset_date_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_user_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getChatInviteImporters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getChatInviteImporters"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 2) { s.store_field("link", link_); } + if (var0 & 4) { s.store_field("q", q_); } + s.store_field("offset_date", offset_date_); + s.store_object_field("offset_user", static_cast<const BaseObject *>(offset_user_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_getChatInviteImporters::ReturnType messages_getChatInviteImporters::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_chatInviteImporters>, -2118733814>::parse(p); +#undef FAIL +} + +messages_getChats::messages_getChats(array<int64> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t messages_getChats::ID; + +void messages_getChats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1240027791); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getChats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1240027791); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getChats"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getChats::ReturnType messages_getChats::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Chats>::parse(p); +#undef FAIL +} + +messages_getCommonChats::messages_getCommonChats(object_ptr<InputUser> &&user_id_, int64 max_id_, int32 limit_) + : user_id_(std::move(user_id_)) + , max_id_(max_id_) + , limit_(limit_) +{} + +const std::int32_t messages_getCommonChats::ID; + +void messages_getCommonChats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-468934396); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getCommonChats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-468934396); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getCommonChats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getCommonChats"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("max_id", max_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_getCommonChats::ReturnType messages_getCommonChats::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Chats>::parse(p); +#undef FAIL +} + +messages_getCustomEmojiDocuments::messages_getCustomEmojiDocuments(array<int64> &&document_id_) + : document_id_(std::move(document_id_)) +{} + +const std::int32_t messages_getCustomEmojiDocuments::ID; + +void messages_getCustomEmojiDocuments::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-643100844); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(document_id_, s); +} + +void messages_getCustomEmojiDocuments::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-643100844); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(document_id_, s); +} + +void messages_getCustomEmojiDocuments::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getCustomEmojiDocuments"); + { s.store_vector_begin("document_id", document_id_.size()); for (const auto &_value : document_id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getCustomEmojiDocuments::ReturnType messages_getCustomEmojiDocuments::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchObject<Document>>, 481674261>::parse(p); +#undef FAIL +} + +messages_getDhConfig::messages_getDhConfig(int32 version_, int32 random_length_) + : version_(version_) + , random_length_(random_length_) +{} + +const std::int32_t messages_getDhConfig::ID; + +void messages_getDhConfig::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(651135312); + TlStoreBinary::store(version_, s); + TlStoreBinary::store(random_length_, s); +} + +void messages_getDhConfig::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(651135312); + TlStoreBinary::store(version_, s); + TlStoreBinary::store(random_length_, s); +} + +void messages_getDhConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getDhConfig"); + s.store_field("version", version_); + s.store_field("random_length", random_length_); + s.store_class_end(); + } +} + +messages_getDhConfig::ReturnType messages_getDhConfig::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_DhConfig>::parse(p); +#undef FAIL +} + +const std::int32_t messages_getDialogFilters::ID; + +void messages_getDialogFilters::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-241247891); +} + +void messages_getDialogFilters::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-241247891); +} + +void messages_getDialogFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getDialogFilters"); + s.store_class_end(); + } +} + +messages_getDialogFilters::ReturnType messages_getDialogFilters::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchObject<DialogFilter>>, 481674261>::parse(p); +#undef FAIL +} + +const std::int32_t messages_getDialogUnreadMarks::ID; + +void messages_getDialogUnreadMarks::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(585256482); +} + +void messages_getDialogUnreadMarks::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(585256482); +} + +void messages_getDialogUnreadMarks::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getDialogUnreadMarks"); + s.store_class_end(); + } +} + +messages_getDialogUnreadMarks::ReturnType messages_getDialogUnreadMarks::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchObject<DialogPeer>>, 481674261>::parse(p); +#undef FAIL +} + +messages_getDialogs::messages_getDialogs(int32 flags_, bool exclude_pinned_, int32 folder_id_, int32 offset_date_, int32 offset_id_, object_ptr<InputPeer> &&offset_peer_, int32 limit_, int64 hash_) + : flags_(flags_) + , exclude_pinned_(exclude_pinned_) + , folder_id_(folder_id_) + , offset_date_(offset_date_) + , offset_id_(offset_id_) + , offset_peer_(std::move(offset_peer_)) + , limit_(limit_) + , hash_(hash_) +{} + +const std::int32_t messages_getDialogs::ID; + +void messages_getDialogs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1594569905); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBinary::store(folder_id_, s); } + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getDialogs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1594569905); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBinary::store(folder_id_, s); } + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getDialogs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getDialogs"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_field("folder_id", folder_id_); } + s.store_field("offset_date", offset_date_); + s.store_field("offset_id", offset_id_); + s.store_object_field("offset_peer", static_cast<const BaseObject *>(offset_peer_.get())); + s.store_field("limit", limit_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getDialogs::ReturnType messages_getDialogs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Dialogs>::parse(p); +#undef FAIL +} + +messages_getDiscussionMessage::messages_getDiscussionMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) +{} + +const std::int32_t messages_getDiscussionMessage::ID; + +void messages_getDiscussionMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1147761405); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_getDiscussionMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1147761405); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_getDiscussionMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getDiscussionMessage"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +messages_getDiscussionMessage::ReturnType messages_getDiscussionMessage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_discussionMessage>, -1506535550>::parse(p); +#undef FAIL +} + +messages_getDocumentByHash::messages_getDocumentByHash(bytes &&sha256_, int64 size_, string const &mime_type_) + : sha256_(std::move(sha256_)) + , size_(size_) + , mime_type_(mime_type_) +{} + +const std::int32_t messages_getDocumentByHash::ID; + +void messages_getDocumentByHash::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1309538785); + TlStoreString::store(sha256_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(mime_type_, s); +} + +void messages_getDocumentByHash::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1309538785); + TlStoreString::store(sha256_, s); + TlStoreBinary::store(size_, s); + TlStoreString::store(mime_type_, s); +} + +void messages_getDocumentByHash::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getDocumentByHash"); + s.store_bytes_field("sha256", sha256_); + s.store_field("size", size_); + s.store_field("mime_type", mime_type_); + s.store_class_end(); + } +} + +messages_getDocumentByHash::ReturnType messages_getDocumentByHash::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Document>::parse(p); +#undef FAIL +} + +messages_getEmojiKeywords::messages_getEmojiKeywords(string const &lang_code_) + : lang_code_(lang_code_) +{} + +const std::int32_t messages_getEmojiKeywords::ID; + +void messages_getEmojiKeywords::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(899735650); + TlStoreString::store(lang_code_, s); +} + +void messages_getEmojiKeywords::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(899735650); + TlStoreString::store(lang_code_, s); +} + +void messages_getEmojiKeywords::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getEmojiKeywords"); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +messages_getEmojiKeywords::ReturnType messages_getEmojiKeywords::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<emojiKeywordsDifference>, 1556570557>::parse(p); +#undef FAIL +} + +messages_getEmojiKeywordsDifference::messages_getEmojiKeywordsDifference(string const &lang_code_, int32 from_version_) + : lang_code_(lang_code_) + , from_version_(from_version_) +{} + +const std::int32_t messages_getEmojiKeywordsDifference::ID; + +void messages_getEmojiKeywordsDifference::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(352892591); + TlStoreString::store(lang_code_, s); + TlStoreBinary::store(from_version_, s); +} + +void messages_getEmojiKeywordsDifference::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(352892591); + TlStoreString::store(lang_code_, s); + TlStoreBinary::store(from_version_, s); +} + +void messages_getEmojiKeywordsDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getEmojiKeywordsDifference"); + s.store_field("lang_code", lang_code_); + s.store_field("from_version", from_version_); + s.store_class_end(); + } +} + +messages_getEmojiKeywordsDifference::ReturnType messages_getEmojiKeywordsDifference::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<emojiKeywordsDifference>, 1556570557>::parse(p); +#undef FAIL +} + +messages_getEmojiKeywordsLanguages::messages_getEmojiKeywordsLanguages(array<string> &&lang_codes_) + : lang_codes_(std::move(lang_codes_)) +{} + +const std::int32_t messages_getEmojiKeywordsLanguages::ID; + +void messages_getEmojiKeywordsLanguages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1318675378); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(lang_codes_, s); +} + +void messages_getEmojiKeywordsLanguages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1318675378); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(lang_codes_, s); +} + +void messages_getEmojiKeywordsLanguages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getEmojiKeywordsLanguages"); + { s.store_vector_begin("lang_codes", lang_codes_.size()); for (const auto &_value : lang_codes_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getEmojiKeywordsLanguages::ReturnType messages_getEmojiKeywordsLanguages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<emojiLanguage>, -1275374751>>, 481674261>::parse(p); +#undef FAIL +} + +messages_getEmojiStickers::messages_getEmojiStickers(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getEmojiStickers::ID; + +void messages_getEmojiStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-67329649); + TlStoreBinary::store(hash_, s); +} + +void messages_getEmojiStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-67329649); + TlStoreBinary::store(hash_, s); +} + +void messages_getEmojiStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getEmojiStickers"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getEmojiStickers::ReturnType messages_getEmojiStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_AllStickers>::parse(p); +#undef FAIL +} + +messages_getEmojiURL::messages_getEmojiURL(string const &lang_code_) + : lang_code_(lang_code_) +{} + +const std::int32_t messages_getEmojiURL::ID; + +void messages_getEmojiURL::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-709817306); + TlStoreString::store(lang_code_, s); +} + +void messages_getEmojiURL::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-709817306); + TlStoreString::store(lang_code_, s); +} + +void messages_getEmojiURL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getEmojiURL"); + s.store_field("lang_code", lang_code_); + s.store_class_end(); + } +} + +messages_getEmojiURL::ReturnType messages_getEmojiURL::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<emojiURL>, -1519029347>::parse(p); +#undef FAIL +} + +messages_getExportedChatInvite::messages_getExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_) + : peer_(std::move(peer_)) + , link_(link_) +{} + +const std::int32_t messages_getExportedChatInvite::ID; + +void messages_getExportedChatInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1937010524); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(link_, s); +} + +void messages_getExportedChatInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1937010524); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(link_, s); +} + +void messages_getExportedChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getExportedChatInvite"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("link", link_); + s.store_class_end(); + } +} + +messages_getExportedChatInvite::ReturnType messages_getExportedChatInvite::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_ExportedChatInvite>::parse(p); +#undef FAIL +} + +messages_getExportedChatInvites::messages_getExportedChatInvites(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_, int32 offset_date_, string const &offset_link_, int32 limit_) + : flags_(flags_) + , revoked_(revoked_) + , peer_(std::move(peer_)) + , admin_id_(std::move(admin_id_)) + , offset_date_(offset_date_) + , offset_link_(offset_link_) + , limit_(limit_) +{} + +const std::int32_t messages_getExportedChatInvites::ID; + +void messages_getExportedChatInvites::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1565154314); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s); + if (var0 & 4) { TlStoreBinary::store(offset_date_, s); } + if (var0 & 4) { TlStoreString::store(offset_link_, s); } + TlStoreBinary::store(limit_, s); +} + +void messages_getExportedChatInvites::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1565154314); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(admin_id_, s); + if (var0 & 4) { TlStoreBinary::store(offset_date_, s); } + if (var0 & 4) { TlStoreString::store(offset_link_, s); } + TlStoreBinary::store(limit_, s); +} + +void messages_getExportedChatInvites::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getExportedChatInvites"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("admin_id", static_cast<const BaseObject *>(admin_id_.get())); + if (var0 & 4) { s.store_field("offset_date", offset_date_); } + if (var0 & 4) { s.store_field("offset_link", offset_link_); } + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_getExportedChatInvites::ReturnType messages_getExportedChatInvites::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_exportedChatInvites>, -1111085620>::parse(p); +#undef FAIL +} + +messages_getExtendedMedia::messages_getExtendedMedia(object_ptr<InputPeer> &&peer_, array<int32> &&id_) + : peer_(std::move(peer_)) + , id_(std::move(id_)) +{} + +const std::int32_t messages_getExtendedMedia::ID; + +void messages_getExtendedMedia::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2064119788); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getExtendedMedia::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2064119788); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getExtendedMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getExtendedMedia"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getExtendedMedia::ReturnType messages_getExtendedMedia::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_getFavedStickers::messages_getFavedStickers(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getFavedStickers::ID; + +void messages_getFavedStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(82946729); + TlStoreBinary::store(hash_, s); +} + +void messages_getFavedStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(82946729); + TlStoreBinary::store(hash_, s); +} + +void messages_getFavedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getFavedStickers"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getFavedStickers::ReturnType messages_getFavedStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_FavedStickers>::parse(p); +#undef FAIL +} + +messages_getFeaturedEmojiStickers::messages_getFeaturedEmojiStickers(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getFeaturedEmojiStickers::ID; + +void messages_getFeaturedEmojiStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(248473398); + TlStoreBinary::store(hash_, s); +} + +void messages_getFeaturedEmojiStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(248473398); + TlStoreBinary::store(hash_, s); +} + +void messages_getFeaturedEmojiStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getFeaturedEmojiStickers"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getFeaturedEmojiStickers::ReturnType messages_getFeaturedEmojiStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_FeaturedStickers>::parse(p); +#undef FAIL +} + +messages_getFeaturedStickers::messages_getFeaturedStickers(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getFeaturedStickers::ID; + +void messages_getFeaturedStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1685588756); + TlStoreBinary::store(hash_, s); +} + +void messages_getFeaturedStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1685588756); + TlStoreBinary::store(hash_, s); +} + +void messages_getFeaturedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getFeaturedStickers"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getFeaturedStickers::ReturnType messages_getFeaturedStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_FeaturedStickers>::parse(p); +#undef FAIL +} + +messages_getFullChat::messages_getFullChat(int64 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t messages_getFullChat::ID; + +void messages_getFullChat::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1364194508); + TlStoreBinary::store(chat_id_, s); +} + +void messages_getFullChat::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1364194508); + TlStoreBinary::store(chat_id_, s); +} + +void messages_getFullChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getFullChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +messages_getFullChat::ReturnType messages_getFullChat::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_chatFull>, -438840932>::parse(p); +#undef FAIL +} + +messages_getGameHighScores::messages_getGameHighScores(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_) + : peer_(std::move(peer_)) + , id_(id_) + , user_id_(std::move(user_id_)) +{} + +const std::int32_t messages_getGameHighScores::ID; + +void messages_getGameHighScores::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-400399203); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_getGameHighScores::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-400399203); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_getGameHighScores::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getGameHighScores"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +messages_getGameHighScores::ReturnType messages_getGameHighScores::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_highScores>, -1707344487>::parse(p); +#undef FAIL +} + +messages_getHistory::messages_getHistory(object_ptr<InputPeer> &&peer_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_) + : peer_(std::move(peer_)) + , offset_id_(offset_id_) + , offset_date_(offset_date_) + , add_offset_(add_offset_) + , limit_(limit_) + , max_id_(max_id_) + , min_id_(min_id_) + , hash_(hash_) +{} + +const std::int32_t messages_getHistory::ID; + +void messages_getHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1143203525); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1143203525); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getHistory"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("offset_id", offset_id_); + s.store_field("offset_date", offset_date_); + s.store_field("add_offset", add_offset_); + s.store_field("limit", limit_); + s.store_field("max_id", max_id_); + s.store_field("min_id", min_id_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getHistory::ReturnType messages_getHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getInlineBotResults::messages_getInlineBotResults(int32 flags_, object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, object_ptr<InputGeoPoint> &&geo_point_, string const &query_, string const &offset_) + : flags_(flags_) + , bot_(std::move(bot_)) + , peer_(std::move(peer_)) + , geo_point_(std::move(geo_point_)) + , query_(query_) + , offset_(offset_) +{} + +const std::int32_t messages_getInlineBotResults::ID; + +void messages_getInlineBotResults::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1364105629); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); } + TlStoreString::store(query_, s); + TlStoreString::store(offset_, s); +} + +void messages_getInlineBotResults::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1364105629); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(geo_point_, s); } + TlStoreString::store(query_, s); + TlStoreString::store(offset_, s); +} + +void messages_getInlineBotResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getInlineBotResults"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_object_field("geo_point", static_cast<const BaseObject *>(geo_point_.get())); } + s.store_field("query", query_); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +messages_getInlineBotResults::ReturnType messages_getInlineBotResults::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_botResults>, -1803769784>::parse(p); +#undef FAIL +} + +messages_getInlineGameHighScores::messages_getInlineGameHighScores(object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_) + : id_(std::move(id_)) + , user_id_(std::move(user_id_)) +{} + +const std::int32_t messages_getInlineGameHighScores::ID; + +void messages_getInlineGameHighScores::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(258170395); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_getInlineGameHighScores::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(258170395); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_getInlineGameHighScores::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getInlineGameHighScores"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +messages_getInlineGameHighScores::ReturnType messages_getInlineGameHighScores::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_highScores>, -1707344487>::parse(p); +#undef FAIL +} + +messages_getMaskStickers::messages_getMaskStickers(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getMaskStickers::ID; + +void messages_getMaskStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1678738104); + TlStoreBinary::store(hash_, s); +} + +void messages_getMaskStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1678738104); + TlStoreBinary::store(hash_, s); +} + +void messages_getMaskStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getMaskStickers"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getMaskStickers::ReturnType messages_getMaskStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_AllStickers>::parse(p); +#undef FAIL +} + +messages_getMessageEditData::messages_getMessageEditData(object_ptr<InputPeer> &&peer_, int32 id_) + : peer_(std::move(peer_)) + , id_(id_) +{} + +const std::int32_t messages_getMessageEditData::ID; + +void messages_getMessageEditData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-39416522); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); +} + +void messages_getMessageEditData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-39416522); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); +} + +void messages_getMessageEditData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getMessageEditData"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + s.store_class_end(); + } +} + +messages_getMessageEditData::ReturnType messages_getMessageEditData::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_messageEditData>, 649453030>::parse(p); +#undef FAIL +} + +messages_getMessageReactionsList::messages_getMessageReactionsList(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<Reaction> &&reaction_, string const &offset_, int32 limit_) + : flags_(flags_) + , peer_(std::move(peer_)) + , id_(id_) + , reaction_(std::move(reaction_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t messages_getMessageReactionsList::ID; + +void messages_getMessageReactionsList::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1176190792); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s); } + if (var0 & 2) { TlStoreString::store(offset_, s); } + TlStoreBinary::store(limit_, s); +} + +void messages_getMessageReactionsList::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1176190792); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s); } + if (var0 & 2) { TlStoreString::store(offset_, s); } + TlStoreBinary::store(limit_, s); +} + +void messages_getMessageReactionsList::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getMessageReactionsList"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + if (var0 & 1) { s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get())); } + if (var0 & 2) { s.store_field("offset", offset_); } + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_getMessageReactionsList::ReturnType messages_getMessageReactionsList::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_messageReactionsList>, 834488621>::parse(p); +#undef FAIL +} + +messages_getMessageReadParticipants::messages_getMessageReadParticipants(object_ptr<InputPeer> &&peer_, int32 msg_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) +{} + +const std::int32_t messages_getMessageReadParticipants::ID; + +void messages_getMessageReadParticipants::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(745510839); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_getMessageReadParticipants::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(745510839); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_getMessageReadParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getMessageReadParticipants"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +messages_getMessageReadParticipants::ReturnType messages_getMessageReadParticipants::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); +#undef FAIL +} + +messages_getMessages::messages_getMessages(array<object_ptr<InputMessage>> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t messages_getMessages::ID; + +void messages_getMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1673946374); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void messages_getMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1673946374); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void messages_getMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getMessages"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getMessages::ReturnType messages_getMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getMessagesReactions::messages_getMessagesReactions(object_ptr<InputPeer> &&peer_, array<int32> &&id_) + : peer_(std::move(peer_)) + , id_(std::move(id_)) +{} + +const std::int32_t messages_getMessagesReactions::ID; + +void messages_getMessagesReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1950707482); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getMessagesReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1950707482); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getMessagesReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getMessagesReactions"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getMessagesReactions::ReturnType messages_getMessagesReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_getMessagesViews::messages_getMessagesViews(object_ptr<InputPeer> &&peer_, array<int32> &&id_, bool increment_) + : peer_(std::move(peer_)) + , id_(std::move(id_)) + , increment_(increment_) +{} + +const std::int32_t messages_getMessagesViews::ID; + +void messages_getMessagesViews::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1468322785); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); + TlStoreBool::store(increment_, s); +} + +void messages_getMessagesViews::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1468322785); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); + TlStoreBool::store(increment_, s); +} + +void messages_getMessagesViews::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getMessagesViews"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("increment", increment_); + s.store_class_end(); + } +} + +messages_getMessagesViews::ReturnType messages_getMessagesViews::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_messageViews>, -1228606141>::parse(p); +#undef FAIL +} + +messages_getOldFeaturedStickers::messages_getOldFeaturedStickers(int32 offset_, int32 limit_, int64 hash_) + : offset_(offset_) + , limit_(limit_) + , hash_(hash_) +{} + +const std::int32_t messages_getOldFeaturedStickers::ID; + +void messages_getOldFeaturedStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2127598753); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getOldFeaturedStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2127598753); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getOldFeaturedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getOldFeaturedStickers"); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getOldFeaturedStickers::ReturnType messages_getOldFeaturedStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_FeaturedStickers>::parse(p); +#undef FAIL +} + +messages_getOnlines::messages_getOnlines(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t messages_getOnlines::ID; + +void messages_getOnlines::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1848369232); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_getOnlines::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1848369232); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_getOnlines::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getOnlines"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_getOnlines::ReturnType messages_getOnlines::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<chatOnlines>, -264117680>::parse(p); +#undef FAIL +} + +messages_getPeerDialogs::messages_getPeerDialogs(array<object_ptr<InputDialogPeer>> &&peers_) + : peers_(std::move(peers_)) +{} + +const std::int32_t messages_getPeerDialogs::ID; + +void messages_getPeerDialogs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-462373635); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(peers_, s); +} + +void messages_getPeerDialogs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-462373635); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(peers_, s); +} + +void messages_getPeerDialogs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getPeerDialogs"); + { s.store_vector_begin("peers", peers_.size()); for (const auto &_value : peers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getPeerDialogs::ReturnType messages_getPeerDialogs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_peerDialogs>, 863093588>::parse(p); +#undef FAIL +} + +messages_getPeerSettings::messages_getPeerSettings(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t messages_getPeerSettings::ID; + +void messages_getPeerSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-270948702); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_getPeerSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-270948702); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_getPeerSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getPeerSettings"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_getPeerSettings::ReturnType messages_getPeerSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_peerSettings>, 1753266509>::parse(p); +#undef FAIL +} + +messages_getPinnedDialogs::messages_getPinnedDialogs(int32 folder_id_) + : folder_id_(folder_id_) +{} + +const std::int32_t messages_getPinnedDialogs::ID; + +void messages_getPinnedDialogs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-692498958); + TlStoreBinary::store(folder_id_, s); +} + +void messages_getPinnedDialogs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-692498958); + TlStoreBinary::store(folder_id_, s); +} + +void messages_getPinnedDialogs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getPinnedDialogs"); + s.store_field("folder_id", folder_id_); + s.store_class_end(); + } +} + +messages_getPinnedDialogs::ReturnType messages_getPinnedDialogs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_peerDialogs>, 863093588>::parse(p); +#undef FAIL +} + +messages_getPollResults::messages_getPollResults(object_ptr<InputPeer> &&peer_, int32 msg_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) +{} + +const std::int32_t messages_getPollResults::ID; + +void messages_getPollResults::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1941660731); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_getPollResults::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1941660731); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_getPollResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getPollResults"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +messages_getPollResults::ReturnType messages_getPollResults::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_getPollVotes::messages_getPollVotes(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, bytes &&option_, string const &offset_, int32 limit_) + : flags_(flags_) + , peer_(std::move(peer_)) + , id_(id_) + , option_(std::move(option_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t messages_getPollVotes::ID; + +void messages_getPollVotes::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1200736242); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + if (var0 & 1) { TlStoreString::store(option_, s); } + if (var0 & 2) { TlStoreString::store(offset_, s); } + TlStoreBinary::store(limit_, s); +} + +void messages_getPollVotes::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1200736242); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + if (var0 & 1) { TlStoreString::store(option_, s); } + if (var0 & 2) { TlStoreString::store(offset_, s); } + TlStoreBinary::store(limit_, s); +} + +void messages_getPollVotes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getPollVotes"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + if (var0 & 1) { s.store_bytes_field("option", option_); } + if (var0 & 2) { s.store_field("offset", offset_); } + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_getPollVotes::ReturnType messages_getPollVotes::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_votesList>, 136574537>::parse(p); +#undef FAIL +} + +messages_getRecentLocations::messages_getRecentLocations(object_ptr<InputPeer> &&peer_, int32 limit_, int64 hash_) + : peer_(std::move(peer_)) + , limit_(limit_) + , hash_(hash_) +{} + +const std::int32_t messages_getRecentLocations::ID; + +void messages_getRecentLocations::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1881817312); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getRecentLocations::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1881817312); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getRecentLocations::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getRecentLocations"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("limit", limit_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getRecentLocations::ReturnType messages_getRecentLocations::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getRecentReactions::messages_getRecentReactions(int32 limit_, int64 hash_) + : limit_(limit_) + , hash_(hash_) +{} + +const std::int32_t messages_getRecentReactions::ID; + +void messages_getRecentReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(960896434); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getRecentReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(960896434); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getRecentReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getRecentReactions"); + s.store_field("limit", limit_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getRecentReactions::ReturnType messages_getRecentReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Reactions>::parse(p); +#undef FAIL +} + +messages_getRecentStickers::messages_getRecentStickers(int32 flags_, bool attached_, int64 hash_) + : flags_(flags_) + , attached_(attached_) + , hash_(hash_) +{} + +const std::int32_t messages_getRecentStickers::ID; + +void messages_getRecentStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1649852357); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(hash_, s); +} + +void messages_getRecentStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1649852357); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(hash_, s); +} + +void messages_getRecentStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getRecentStickers"); + s.store_field("flags", (var0 = flags_)); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getRecentStickers::ReturnType messages_getRecentStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_RecentStickers>::parse(p); +#undef FAIL +} + +messages_getReplies::messages_getReplies(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , offset_id_(offset_id_) + , offset_date_(offset_date_) + , add_offset_(add_offset_) + , limit_(limit_) + , max_id_(max_id_) + , min_id_(min_id_) + , hash_(hash_) +{} + +const std::int32_t messages_getReplies::ID; + +void messages_getReplies::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(584962828); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getReplies::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(584962828); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_date_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getReplies::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getReplies"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("offset_id", offset_id_); + s.store_field("offset_date", offset_date_); + s.store_field("add_offset", add_offset_); + s.store_field("limit", limit_); + s.store_field("max_id", max_id_); + s.store_field("min_id", min_id_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getReplies::ReturnType messages_getReplies::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getSavedGifs::messages_getSavedGifs(int64 hash_) + : hash_(hash_) +{} + +const std::int32_t messages_getSavedGifs::ID; + +void messages_getSavedGifs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1559270965); + TlStoreBinary::store(hash_, s); +} + +void messages_getSavedGifs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1559270965); + TlStoreBinary::store(hash_, s); +} + +void messages_getSavedGifs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getSavedGifs"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getSavedGifs::ReturnType messages_getSavedGifs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_SavedGifs>::parse(p); +#undef FAIL +} + +messages_getScheduledHistory::messages_getScheduledHistory(object_ptr<InputPeer> &&peer_, int64 hash_) + : peer_(std::move(peer_)) + , hash_(hash_) +{} + +const std::int32_t messages_getScheduledHistory::ID; + +void messages_getScheduledHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-183077365); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getScheduledHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-183077365); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getScheduledHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getScheduledHistory"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getScheduledHistory::ReturnType messages_getScheduledHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getScheduledMessages::messages_getScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_) + : peer_(std::move(peer_)) + , id_(std::move(id_)) +{} + +const std::int32_t messages_getScheduledMessages::ID; + +void messages_getScheduledMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1111817116); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getScheduledMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1111817116); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_getScheduledMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getScheduledMessages"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getScheduledMessages::ReturnType messages_getScheduledMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getSearchCounters::messages_getSearchCounters(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, array<object_ptr<MessagesFilter>> &&filters_) + : flags_(flags_) + , peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) + , filters_(std::move(filters_)) +{} + +const std::int32_t messages_getSearchCounters::ID; + +void messages_getSearchCounters::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(11435201); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(filters_, s); +} + +void messages_getSearchCounters::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(11435201); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(filters_, s); +} + +void messages_getSearchCounters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getSearchCounters"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + { s.store_vector_begin("filters", filters_.size()); for (const auto &_value : filters_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_getSearchCounters::ReturnType messages_getSearchCounters::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messages_searchCounter>, -398136321>>, 481674261>::parse(p); +#undef FAIL +} + +messages_getSearchResultsCalendar::messages_getSearchResultsCalendar(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 offset_date_) + : peer_(std::move(peer_)) + , filter_(std::move(filter_)) + , offset_id_(offset_id_) + , offset_date_(offset_date_) +{} + +const std::int32_t messages_getSearchResultsCalendar::ID; + +void messages_getSearchResultsCalendar::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1240514025); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_date_, s); +} + +void messages_getSearchResultsCalendar::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1240514025); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(offset_date_, s); +} + +void messages_getSearchResultsCalendar::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getSearchResultsCalendar"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("offset_id", offset_id_); + s.store_field("offset_date", offset_date_); + s.store_class_end(); + } +} + +messages_getSearchResultsCalendar::ReturnType messages_getSearchResultsCalendar::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_searchResultsCalendar>, 343859772>::parse(p); +#undef FAIL +} + +messages_getSearchResultsPositions::messages_getSearchResultsPositions(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 limit_) + : peer_(std::move(peer_)) + , filter_(std::move(filter_)) + , offset_id_(offset_id_) + , limit_(limit_) +{} + +const std::int32_t messages_getSearchResultsPositions::ID; + +void messages_getSearchResultsPositions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1855292323); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getSearchResultsPositions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1855292323); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_getSearchResultsPositions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getSearchResultsPositions"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("offset_id", offset_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_getSearchResultsPositions::ReturnType messages_getSearchResultsPositions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_searchResultsPositions>, 1404185519>::parse(p); +#undef FAIL +} + +const std::int32_t messages_getSplitRanges::ID; + +void messages_getSplitRanges::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(486505992); +} + +void messages_getSplitRanges::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(486505992); +} + +void messages_getSplitRanges::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getSplitRanges"); + s.store_class_end(); + } +} + +messages_getSplitRanges::ReturnType messages_getSplitRanges::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<messageRange>, 182649427>>, 481674261>::parse(p); +#undef FAIL +} + +messages_getStickerSet::messages_getStickerSet(object_ptr<InputStickerSet> &&stickerset_, int32 hash_) + : stickerset_(std::move(stickerset_)) + , hash_(hash_) +{} + +const std::int32_t messages_getStickerSet::ID; + +void messages_getStickerSet::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-928977804); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getStickerSet::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-928977804); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getStickerSet"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getStickerSet::ReturnType messages_getStickerSet::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_StickerSet>::parse(p); +#undef FAIL +} + +messages_getStickers::messages_getStickers(string const &emoticon_, int64 hash_) + : emoticon_(emoticon_) + , hash_(hash_) +{} + +const std::int32_t messages_getStickers::ID; + +void messages_getStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-710552671); + TlStoreString::store(emoticon_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-710552671); + TlStoreString::store(emoticon_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getStickers"); + s.store_field("emoticon", emoticon_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getStickers::ReturnType messages_getStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Stickers>::parse(p); +#undef FAIL +} + +const std::int32_t messages_getSuggestedDialogFilters::ID; + +void messages_getSuggestedDialogFilters::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1566780372); +} + +void messages_getSuggestedDialogFilters::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1566780372); +} + +void messages_getSuggestedDialogFilters::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getSuggestedDialogFilters"); + s.store_class_end(); + } +} + +messages_getSuggestedDialogFilters::ReturnType messages_getSuggestedDialogFilters::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<dialogFilterSuggested>, 2004110666>>, 481674261>::parse(p); +#undef FAIL +} + +messages_getTopReactions::messages_getTopReactions(int32 limit_, int64 hash_) + : limit_(limit_) + , hash_(hash_) +{} + +const std::int32_t messages_getTopReactions::ID; + +void messages_getTopReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1149164102); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getTopReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1149164102); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getTopReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getTopReactions"); + s.store_field("limit", limit_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getTopReactions::ReturnType messages_getTopReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Reactions>::parse(p); +#undef FAIL +} + +messages_getUnreadMentions::messages_getUnreadMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_) + : flags_(flags_) + , peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) + , offset_id_(offset_id_) + , add_offset_(add_offset_) + , limit_(limit_) + , max_id_(max_id_) + , min_id_(min_id_) +{} + +const std::int32_t messages_getUnreadMentions::ID; + +void messages_getUnreadMentions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-251140208); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); +} + +void messages_getUnreadMentions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-251140208); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); +} + +void messages_getUnreadMentions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getUnreadMentions"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_field("offset_id", offset_id_); + s.store_field("add_offset", add_offset_); + s.store_field("limit", limit_); + s.store_field("max_id", max_id_); + s.store_field("min_id", min_id_); + s.store_class_end(); + } +} + +messages_getUnreadMentions::ReturnType messages_getUnreadMentions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getUnreadReactions::messages_getUnreadReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_) + : flags_(flags_) + , peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) + , offset_id_(offset_id_) + , add_offset_(add_offset_) + , limit_(limit_) + , max_id_(max_id_) + , min_id_(min_id_) +{} + +const std::int32_t messages_getUnreadReactions::ID; + +void messages_getUnreadReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(841173339); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); +} + +void messages_getUnreadReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(841173339); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); +} + +void messages_getUnreadReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getUnreadReactions"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_field("offset_id", offset_id_); + s.store_field("add_offset", add_offset_); + s.store_field("limit", limit_); + s.store_field("max_id", max_id_); + s.store_field("min_id", min_id_); + s.store_class_end(); + } +} + +messages_getUnreadReactions::ReturnType messages_getUnreadReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_getWebPage::messages_getWebPage(string const &url_, int32 hash_) + : url_(url_) + , hash_(hash_) +{} + +const std::int32_t messages_getWebPage::ID; + +void messages_getWebPage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(852135825); + TlStoreString::store(url_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getWebPage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(852135825); + TlStoreString::store(url_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_getWebPage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getWebPage"); + s.store_field("url", url_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_getWebPage::ReturnType messages_getWebPage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<WebPage>::parse(p); +#undef FAIL +} + +messages_getWebPagePreview::messages_getWebPagePreview(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_) + : flags_(flags_) + , message_(message_) + , entities_(std::move(entities_)) +{} + +const std::int32_t messages_getWebPagePreview::ID; + +void messages_getWebPagePreview::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1956073268); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(message_, s); + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void messages_getWebPagePreview::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1956073268); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(message_, s); + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void messages_getWebPagePreview::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.getWebPagePreview"); + s.store_field("flags", (var0 = flags_)); + s.store_field("message", message_); + if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +messages_getWebPagePreview::ReturnType messages_getWebPagePreview::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<MessageMedia>::parse(p); +#undef FAIL +} + +messages_hideAllChatJoinRequests::messages_hideAllChatJoinRequests(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, string const &link_) + : flags_(flags_) + , approved_(approved_) + , peer_(std::move(peer_)) + , link_(link_) +{} + +const std::int32_t messages_hideAllChatJoinRequests::ID; + +void messages_hideAllChatJoinRequests::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-528091926); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 2) { TlStoreString::store(link_, s); } +} + +void messages_hideAllChatJoinRequests::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-528091926); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 2) { TlStoreString::store(link_, s); } +} + +void messages_hideAllChatJoinRequests::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.hideAllChatJoinRequests"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 2) { s.store_field("link", link_); } + s.store_class_end(); + } +} + +messages_hideAllChatJoinRequests::ReturnType messages_hideAllChatJoinRequests::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_hideChatJoinRequest::messages_hideChatJoinRequest(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_) + : flags_(flags_) + , approved_(approved_) + , peer_(std::move(peer_)) + , user_id_(std::move(user_id_)) +{} + +const std::int32_t messages_hideChatJoinRequest::ID; + +void messages_hideChatJoinRequest::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2145904661); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_hideChatJoinRequest::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2145904661); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); +} + +void messages_hideChatJoinRequest::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.hideChatJoinRequest"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_class_end(); + } +} + +messages_hideChatJoinRequest::ReturnType messages_hideChatJoinRequest::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_hidePeerSettingsBar::messages_hidePeerSettingsBar(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t messages_hidePeerSettingsBar::ID; + +void messages_hidePeerSettingsBar::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1336717624); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_hidePeerSettingsBar::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1336717624); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_hidePeerSettingsBar::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.hidePeerSettingsBar"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_hidePeerSettingsBar::ReturnType messages_hidePeerSettingsBar::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_importChatInvite::messages_importChatInvite(string const &hash_) + : hash_(hash_) +{} + +const std::int32_t messages_importChatInvite::ID; + +void messages_importChatInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1817183516); + TlStoreString::store(hash_, s); +} + +void messages_importChatInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1817183516); + TlStoreString::store(hash_, s); +} + +void messages_importChatInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.importChatInvite"); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_importChatInvite::ReturnType messages_importChatInvite::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_initHistoryImport::messages_initHistoryImport(object_ptr<InputPeer> &&peer_, object_ptr<InputFile> &&file_, int32 media_count_) + : peer_(std::move(peer_)) + , file_(std::move(file_)) + , media_count_(media_count_) +{} + +const std::int32_t messages_initHistoryImport::ID; + +void messages_initHistoryImport::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(873008187); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + TlStoreBinary::store(media_count_, s); +} + +void messages_initHistoryImport::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(873008187); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); + TlStoreBinary::store(media_count_, s); +} + +void messages_initHistoryImport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.initHistoryImport"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_field("media_count", media_count_); + s.store_class_end(); + } +} + +messages_initHistoryImport::ReturnType messages_initHistoryImport::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_historyImport>, 375566091>::parse(p); +#undef FAIL +} + +messages_installStickerSet::messages_installStickerSet(object_ptr<InputStickerSet> &&stickerset_, bool archived_) + : stickerset_(std::move(stickerset_)) + , archived_(archived_) +{} + +const std::int32_t messages_installStickerSet::ID; + +void messages_installStickerSet::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-946871200); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBool::store(archived_, s); +} + +void messages_installStickerSet::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-946871200); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBool::store(archived_, s); +} + +void messages_installStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.installStickerSet"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_field("archived", archived_); + s.store_class_end(); + } +} + +messages_installStickerSet::ReturnType messages_installStickerSet::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_StickerSetInstallResult>::parse(p); +#undef FAIL +} + +messages_markDialogUnread::messages_markDialogUnread(int32 flags_, bool unread_, object_ptr<InputDialogPeer> &&peer_) + : flags_(flags_) + , unread_(unread_) + , peer_(std::move(peer_)) +{} + +const std::int32_t messages_markDialogUnread::ID; + +void messages_markDialogUnread::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1031349873); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_markDialogUnread::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1031349873); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_markDialogUnread::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.markDialogUnread"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_markDialogUnread::ReturnType messages_markDialogUnread::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_migrateChat::messages_migrateChat(int64 chat_id_) + : chat_id_(chat_id_) +{} + +const std::int32_t messages_migrateChat::ID; + +void messages_migrateChat::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1568189671); + TlStoreBinary::store(chat_id_, s); +} + +void messages_migrateChat::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1568189671); + TlStoreBinary::store(chat_id_, s); +} + +void messages_migrateChat::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.migrateChat"); + s.store_field("chat_id", chat_id_); + s.store_class_end(); + } +} + +messages_migrateChat::ReturnType messages_migrateChat::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_prolongWebView::messages_prolongWebView(int32 flags_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, int64 query_id_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , silent_(silent_) + , peer_(std::move(peer_)) + , bot_(std::move(bot_)) + , query_id_(query_id_) + , reply_to_msg_id_(reply_to_msg_id_) + , top_msg_id_(top_msg_id_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_prolongWebView::ID; + +void messages_prolongWebView::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2146648841); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_prolongWebView::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2146648841); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_prolongWebView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.prolongWebView"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_field("query_id", query_id_); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); } + if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +messages_prolongWebView::ReturnType messages_prolongWebView::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_rateTranscribedAudio::messages_rateTranscribedAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 transcription_id_, bool good_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , transcription_id_(transcription_id_) + , good_(good_) +{} + +const std::int32_t messages_rateTranscribedAudio::ID; + +void messages_rateTranscribedAudio::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2132608815); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(transcription_id_, s); + TlStoreBool::store(good_, s); +} + +void messages_rateTranscribedAudio::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2132608815); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(transcription_id_, s); + TlStoreBool::store(good_, s); +} + +void messages_rateTranscribedAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.rateTranscribedAudio"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("transcription_id", transcription_id_); + s.store_field("good", good_); + s.store_class_end(); + } +} + +messages_rateTranscribedAudio::ReturnType messages_rateTranscribedAudio::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_readDiscussion::messages_readDiscussion(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 read_max_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , read_max_id_(read_max_id_) +{} + +const std::int32_t messages_readDiscussion::ID; + +void messages_readDiscussion::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-147740172); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(read_max_id_, s); +} + +void messages_readDiscussion::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-147740172); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(read_max_id_, s); +} + +void messages_readDiscussion::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.readDiscussion"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("read_max_id", read_max_id_); + s.store_class_end(); + } +} + +messages_readDiscussion::ReturnType messages_readDiscussion::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_readEncryptedHistory::messages_readEncryptedHistory(object_ptr<inputEncryptedChat> &&peer_, int32 max_date_) + : peer_(std::move(peer_)) + , max_date_(max_date_) +{} + +const std::int32_t messages_readEncryptedHistory::ID; + +void messages_readEncryptedHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2135648522); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(max_date_, s); +} + +void messages_readEncryptedHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2135648522); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(max_date_, s); +} + +void messages_readEncryptedHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.readEncryptedHistory"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("max_date", max_date_); + s.store_class_end(); + } +} + +messages_readEncryptedHistory::ReturnType messages_readEncryptedHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_readFeaturedStickers::messages_readFeaturedStickers(array<int64> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t messages_readFeaturedStickers::ID; + +void messages_readFeaturedStickers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1527873830); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_readFeaturedStickers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1527873830); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_readFeaturedStickers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.readFeaturedStickers"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_readFeaturedStickers::ReturnType messages_readFeaturedStickers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_readHistory::messages_readHistory(object_ptr<InputPeer> &&peer_, int32 max_id_) + : peer_(std::move(peer_)) + , max_id_(max_id_) +{} + +const std::int32_t messages_readHistory::ID; + +void messages_readHistory::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(238054714); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(max_id_, s); +} + +void messages_readHistory::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(238054714); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(max_id_, s); +} + +void messages_readHistory::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.readHistory"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("max_id", max_id_); + s.store_class_end(); + } +} + +messages_readHistory::ReturnType messages_readHistory::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p); +#undef FAIL +} + +messages_readMentions::messages_readMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_) + : flags_(flags_) + , peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) +{} + +const std::int32_t messages_readMentions::ID; + +void messages_readMentions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(921026381); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } +} + +void messages_readMentions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(921026381); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } +} + +void messages_readMentions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.readMentions"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_class_end(); + } +} + +messages_readMentions::ReturnType messages_readMentions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p); +#undef FAIL +} + +messages_readMessageContents::messages_readMessageContents(array<int32> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t messages_readMessageContents::ID; + +void messages_readMessageContents::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(916930423); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_readMessageContents::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(916930423); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_readMessageContents::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.readMessageContents"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_readMessageContents::ReturnType messages_readMessageContents::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedMessages>, -2066640507>::parse(p); +#undef FAIL +} + +messages_readReactions::messages_readReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_) + : flags_(flags_) + , peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) +{} + +const std::int32_t messages_readReactions::ID; + +void messages_readReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1420459918); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } +} + +void messages_readReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1420459918); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } +} + +void messages_readReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.readReactions"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_class_end(); + } +} + +messages_readReactions::ReturnType messages_readReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p); +#undef FAIL +} + +messages_receivedMessages::messages_receivedMessages(int32 max_id_) + : max_id_(max_id_) +{} + +const std::int32_t messages_receivedMessages::ID; + +void messages_receivedMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(94983360); + TlStoreBinary::store(max_id_, s); +} + +void messages_receivedMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(94983360); + TlStoreBinary::store(max_id_, s); +} + +void messages_receivedMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.receivedMessages"); + s.store_field("max_id", max_id_); + s.store_class_end(); + } +} + +messages_receivedMessages::ReturnType messages_receivedMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<receivedNotifyMessage>, -1551583367>>, 481674261>::parse(p); +#undef FAIL +} + +messages_receivedQueue::messages_receivedQueue(int32 max_qts_) + : max_qts_(max_qts_) +{} + +const std::int32_t messages_receivedQueue::ID; + +void messages_receivedQueue::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1436924774); + TlStoreBinary::store(max_qts_, s); +} + +void messages_receivedQueue::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1436924774); + TlStoreBinary::store(max_qts_, s); +} + +void messages_receivedQueue::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.receivedQueue"); + s.store_field("max_qts", max_qts_); + s.store_class_end(); + } +} + +messages_receivedQueue::ReturnType messages_receivedQueue::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); +#undef FAIL +} + +messages_reorderPinnedDialogs::messages_reorderPinnedDialogs(int32 flags_, bool force_, int32 folder_id_, array<object_ptr<InputDialogPeer>> &&order_) + : flags_(flags_) + , force_(force_) + , folder_id_(folder_id_) + , order_(std::move(order_)) +{} + +const std::int32_t messages_reorderPinnedDialogs::ID; + +void messages_reorderPinnedDialogs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(991616823); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(folder_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(order_, s); +} + +void messages_reorderPinnedDialogs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(991616823); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(folder_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(order_, s); +} + +void messages_reorderPinnedDialogs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.reorderPinnedDialogs"); + s.store_field("flags", (var0 = flags_)); + s.store_field("folder_id", folder_id_); + { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_reorderPinnedDialogs::ReturnType messages_reorderPinnedDialogs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_reorderStickerSets::messages_reorderStickerSets(int32 flags_, bool masks_, bool emojis_, array<int64> &&order_) + : flags_(flags_) + , masks_(masks_) + , emojis_(emojis_) + , order_(std::move(order_)) +{} + +const std::int32_t messages_reorderStickerSets::ID; + +void messages_reorderStickerSets::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2016638777); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s); +} + +void messages_reorderStickerSets::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2016638777); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s); +} + +void messages_reorderStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.reorderStickerSets"); + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_reorderStickerSets::ReturnType messages_reorderStickerSets::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_report::messages_report(object_ptr<InputPeer> &&peer_, array<int32> &&id_, object_ptr<ReportReason> &&reason_, string const &message_) + : peer_(std::move(peer_)) + , id_(std::move(id_)) + , reason_(std::move(reason_)) + , message_(message_) +{} + +const std::int32_t messages_report::ID; + +void messages_report::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1991005362); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreString::store(message_, s); +} + +void messages_report::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1991005362); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreString::store(message_, s); +} + +void messages_report::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.report"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); + s.store_field("message", message_); + s.store_class_end(); + } +} + +messages_report::ReturnType messages_report::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_reportEncryptedSpam::messages_reportEncryptedSpam(object_ptr<inputEncryptedChat> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t messages_reportEncryptedSpam::ID; + +void messages_reportEncryptedSpam::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1259113487); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); +} + +void messages_reportEncryptedSpam::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1259113487); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); +} + +void messages_reportEncryptedSpam::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.reportEncryptedSpam"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_reportEncryptedSpam::ReturnType messages_reportEncryptedSpam::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_reportReaction::messages_reportReaction(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputPeer> &&reaction_peer_) + : peer_(std::move(peer_)) + , id_(id_) + , reaction_peer_(std::move(reaction_peer_)) +{} + +const std::int32_t messages_reportReaction::ID; + +void messages_reportReaction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1063567478); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reaction_peer_, s); +} + +void messages_reportReaction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1063567478); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reaction_peer_, s); +} + +void messages_reportReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.reportReaction"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + s.store_object_field("reaction_peer", static_cast<const BaseObject *>(reaction_peer_.get())); + s.store_class_end(); + } +} + +messages_reportReaction::ReturnType messages_reportReaction::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_reportSpam::messages_reportSpam(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t messages_reportSpam::ID; + +void messages_reportSpam::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-820669733); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_reportSpam::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-820669733); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_reportSpam::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.reportSpam"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_reportSpam::ReturnType messages_reportSpam::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_requestEncryption::messages_requestEncryption(object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_) + : user_id_(std::move(user_id_)) + , random_id_(random_id_) + , g_a_(std::move(g_a_)) +{} + +const std::int32_t messages_requestEncryption::ID; + +void messages_requestEncryption::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-162681021); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(g_a_, s); +} + +void messages_requestEncryption::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-162681021); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(g_a_, s); +} + +void messages_requestEncryption::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.requestEncryption"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("random_id", random_id_); + s.store_bytes_field("g_a", g_a_); + s.store_class_end(); + } +} + +messages_requestEncryption::ReturnType messages_requestEncryption::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<EncryptedChat>::parse(p); +#undef FAIL +} + +messages_requestSimpleWebView::messages_requestSimpleWebView(int32 flags_, object_ptr<InputUser> &&bot_, string const &url_, object_ptr<dataJSON> &&theme_params_, string const &platform_) + : flags_(flags_) + , bot_(std::move(bot_)) + , url_(url_) + , theme_params_(std::move(theme_params_)) + , platform_(platform_) +{} + +const std::int32_t messages_requestSimpleWebView::ID; + +void messages_requestSimpleWebView::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(698084494); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreString::store(url_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); } + TlStoreString::store(platform_, s); +} + +void messages_requestSimpleWebView::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(698084494); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreString::store(url_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); } + TlStoreString::store(platform_, s); +} + +void messages_requestSimpleWebView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.requestSimpleWebView"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_field("url", url_); + if (var0 & 1) { s.store_object_field("theme_params", static_cast<const BaseObject *>(theme_params_.get())); } + s.store_field("platform", platform_); + s.store_class_end(); + } +} + +messages_requestSimpleWebView::ReturnType messages_requestSimpleWebView::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<simpleWebViewResultUrl>, -2010155333>::parse(p); +#undef FAIL +} + +messages_requestUrlAuth::messages_requestUrlAuth(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_) + : flags_(flags_) + , peer_(std::move(peer_)) + , msg_id_(msg_id_) + , button_id_(button_id_) + , url_(url_) +{} + +const std::int32_t messages_requestUrlAuth::ID; + +void messages_requestUrlAuth::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(428848198); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } + if (var0 & 2) { TlStoreBinary::store(msg_id_, s); } + if (var0 & 2) { TlStoreBinary::store(button_id_, s); } + if (var0 & 4) { TlStoreString::store(url_, s); } +} + +void messages_requestUrlAuth::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(428848198); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } + if (var0 & 2) { TlStoreBinary::store(msg_id_, s); } + if (var0 & 2) { TlStoreBinary::store(button_id_, s); } + if (var0 & 4) { TlStoreString::store(url_, s); } +} + +void messages_requestUrlAuth::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.requestUrlAuth"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 2) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); } + if (var0 & 2) { s.store_field("msg_id", msg_id_); } + if (var0 & 2) { s.store_field("button_id", button_id_); } + if (var0 & 4) { s.store_field("url", url_); } + s.store_class_end(); + } +} + +messages_requestUrlAuth::ReturnType messages_requestUrlAuth::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<UrlAuthResult>::parse(p); +#undef FAIL +} + +messages_requestWebView::messages_requestWebView(int32 flags_, bool from_bot_menu_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, string const &url_, string const &start_param_, object_ptr<dataJSON> &&theme_params_, string const &platform_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , from_bot_menu_(from_bot_menu_) + , silent_(silent_) + , peer_(std::move(peer_)) + , bot_(std::move(bot_)) + , url_(url_) + , start_param_(start_param_) + , theme_params_(std::move(theme_params_)) + , platform_(platform_) + , reply_to_msg_id_(reply_to_msg_id_) + , top_msg_id_(top_msg_id_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_requestWebView::ID; + +void messages_requestWebView::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(395003915); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + if (var0 & 2) { TlStoreString::store(url_, s); } + if (var0 & 8) { TlStoreString::store(start_param_, s); } + if (var0 & 4) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); } + TlStoreString::store(platform_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_requestWebView::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(395003915); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + if (var0 & 2) { TlStoreString::store(url_, s); } + if (var0 & 8) { TlStoreString::store(start_param_, s); } + if (var0 & 4) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); } + TlStoreString::store(platform_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_requestWebView::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.requestWebView"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + if (var0 & 2) { s.store_field("url", url_); } + if (var0 & 8) { s.store_field("start_param", start_param_); } + if (var0 & 4) { s.store_object_field("theme_params", static_cast<const BaseObject *>(theme_params_.get())); } + s.store_field("platform", platform_); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); } + if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +messages_requestWebView::ReturnType messages_requestWebView::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<webViewResultUrl>, 202659196>::parse(p); +#undef FAIL +} + +messages_saveDefaultSendAs::messages_saveDefaultSendAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&send_as_) + : peer_(std::move(peer_)) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_saveDefaultSendAs::ID; + +void messages_saveDefaultSendAs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-855777386); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); +} + +void messages_saveDefaultSendAs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-855777386); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); +} + +void messages_saveDefaultSendAs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.saveDefaultSendAs"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); + s.store_class_end(); + } +} + +messages_saveDefaultSendAs::ReturnType messages_saveDefaultSendAs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_saveDraft::messages_saveDraft(int32 flags_, bool no_webpage_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&peer_, string const &message_, array<object_ptr<MessageEntity>> &&entities_) + : flags_(flags_) + , no_webpage_(no_webpage_) + , reply_to_msg_id_(reply_to_msg_id_) + , top_msg_id_(top_msg_id_) + , peer_(std::move(peer_)) + , message_(message_) + , entities_(std::move(entities_)) +{} + +const std::int32_t messages_saveDraft::ID; + +void messages_saveDraft::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1271718337); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 4) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(message_, s); + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void messages_saveDraft::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1271718337); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 4) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(message_, s); + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } +} + +void messages_saveDraft::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.saveDraft"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + if (var0 & 4) { s.store_field("top_msg_id", top_msg_id_); } + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("message", message_); + if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +messages_saveDraft::ReturnType messages_saveDraft::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_saveGif::messages_saveGif(object_ptr<InputDocument> &&id_, bool unsave_) + : id_(std::move(id_)) + , unsave_(unsave_) +{} + +const std::int32_t messages_saveGif::ID; + +void messages_saveGif::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(846868683); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unsave_, s); +} + +void messages_saveGif::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(846868683); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unsave_, s); +} + +void messages_saveGif::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.saveGif"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_field("unsave", unsave_); + s.store_class_end(); + } +} + +messages_saveGif::ReturnType messages_saveGif::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_saveRecentSticker::messages_saveRecentSticker(int32 flags_, bool attached_, object_ptr<InputDocument> &&id_, bool unsave_) + : flags_(flags_) + , attached_(attached_) + , id_(std::move(id_)) + , unsave_(unsave_) +{} + +const std::int32_t messages_saveRecentSticker::ID; + +void messages_saveRecentSticker::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(958863608); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unsave_, s); +} + +void messages_saveRecentSticker::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(958863608); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBool::store(unsave_, s); +} + +void messages_saveRecentSticker::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.saveRecentSticker"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_field("unsave", unsave_); + s.store_class_end(); + } +} + +messages_saveRecentSticker::ReturnType messages_saveRecentSticker::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_search::messages_search(int32 flags_, object_ptr<InputPeer> &&peer_, string const &q_, object_ptr<InputPeer> &&from_id_, int32 top_msg_id_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_) + : flags_(flags_) + , peer_(std::move(peer_)) + , q_(q_) + , from_id_(std::move(from_id_)) + , top_msg_id_(top_msg_id_) + , filter_(std::move(filter_)) + , min_date_(min_date_) + , max_date_(max_date_) + , offset_id_(offset_id_) + , add_offset_(add_offset_) + , limit_(limit_) + , max_id_(max_id_) + , min_id_(min_id_) + , hash_(hash_) +{} + +const std::int32_t messages_search::ID; + +void messages_search::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1593989278); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(q_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(from_id_, s); } + if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(min_date_, s); + TlStoreBinary::store(max_date_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_search::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1593989278); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(q_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(from_id_, s); } + if (var0 & 2) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(min_date_, s); + TlStoreBinary::store(max_date_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(add_offset_, s); + TlStoreBinary::store(limit_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(min_id_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_search::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.search"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("q", q_); + if (var0 & 1) { s.store_object_field("from_id", static_cast<const BaseObject *>(from_id_.get())); } + if (var0 & 2) { s.store_field("top_msg_id", top_msg_id_); } + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("min_date", min_date_); + s.store_field("max_date", max_date_); + s.store_field("offset_id", offset_id_); + s.store_field("add_offset", add_offset_); + s.store_field("limit", limit_); + s.store_field("max_id", max_id_); + s.store_field("min_id", min_id_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_search::ReturnType messages_search::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_searchGlobal::messages_searchGlobal(int32 flags_, int32 folder_id_, string const &q_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_) + : flags_(flags_) + , folder_id_(folder_id_) + , q_(q_) + , filter_(std::move(filter_)) + , min_date_(min_date_) + , max_date_(max_date_) + , offset_rate_(offset_rate_) + , offset_peer_(std::move(offset_peer_)) + , offset_id_(offset_id_) + , limit_(limit_) +{} + +const std::int32_t messages_searchGlobal::ID; + +void messages_searchGlobal::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1271290010); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBinary::store(folder_id_, s); } + TlStoreString::store(q_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(min_date_, s); + TlStoreBinary::store(max_date_, s); + TlStoreBinary::store(offset_rate_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_searchGlobal::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1271290010); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBinary::store(folder_id_, s); } + TlStoreString::store(q_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(min_date_, s); + TlStoreBinary::store(max_date_, s); + TlStoreBinary::store(offset_rate_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_searchGlobal::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.searchGlobal"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_field("folder_id", folder_id_); } + s.store_field("q", q_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("min_date", min_date_); + s.store_field("max_date", max_date_); + s.store_field("offset_rate", offset_rate_); + s.store_object_field("offset_peer", static_cast<const BaseObject *>(offset_peer_.get())); + s.store_field("offset_id", offset_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_searchGlobal::ReturnType messages_searchGlobal::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_searchSentMedia::messages_searchSentMedia(string const &q_, object_ptr<MessagesFilter> &&filter_, int32 limit_) + : q_(q_) + , filter_(std::move(filter_)) + , limit_(limit_) +{} + +const std::int32_t messages_searchSentMedia::ID; + +void messages_searchSentMedia::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(276705696); + TlStoreString::store(q_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_searchSentMedia::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(276705696); + TlStoreString::store(q_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(limit_, s); +} + +void messages_searchSentMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.searchSentMedia"); + s.store_field("q", q_); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +messages_searchSentMedia::ReturnType messages_searchSentMedia::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +messages_searchStickerSets::messages_searchStickerSets(int32 flags_, bool exclude_featured_, string const &q_, int64 hash_) + : flags_(flags_) + , exclude_featured_(exclude_featured_) + , q_(q_) + , hash_(hash_) +{} + +const std::int32_t messages_searchStickerSets::ID; + +void messages_searchStickerSets::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(896555914); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(q_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_searchStickerSets::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(896555914); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(q_, s); + TlStoreBinary::store(hash_, s); +} + +void messages_searchStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.searchStickerSets"); + s.store_field("flags", (var0 = flags_)); + s.store_field("q", q_); + s.store_field("hash", hash_); + s.store_class_end(); + } +} + +messages_searchStickerSets::ReturnType messages_searchStickerSets::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_FoundStickerSets>::parse(p); +#undef FAIL +} + +messages_sendEncrypted::messages_sendEncrypted(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_) + : flags_(flags_) + , silent_(silent_) + , peer_(std::move(peer_)) + , random_id_(random_id_) + , data_(std::move(data_)) +{} + +const std::int32_t messages_sendEncrypted::ID; + +void messages_sendEncrypted::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1157265941); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(data_, s); +} + +void messages_sendEncrypted::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1157265941); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(data_, s); +} + +void messages_sendEncrypted::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendEncrypted"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("random_id", random_id_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +messages_sendEncrypted::ReturnType messages_sendEncrypted::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_SentEncryptedMessage>::parse(p); +#undef FAIL +} + +messages_sendEncryptedFile::messages_sendEncryptedFile(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_, object_ptr<InputEncryptedFile> &&file_) + : flags_(flags_) + , silent_(silent_) + , peer_(std::move(peer_)) + , random_id_(random_id_) + , data_(std::move(data_)) + , file_(std::move(file_)) +{} + +const std::int32_t messages_sendEncryptedFile::ID; + +void messages_sendEncryptedFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1431914525); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(data_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); +} + +void messages_sendEncryptedFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1431914525); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(data_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); +} + +void messages_sendEncryptedFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendEncryptedFile"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("random_id", random_id_); + s.store_bytes_field("data", data_); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_class_end(); + } +} + +messages_sendEncryptedFile::ReturnType messages_sendEncryptedFile::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_SentEncryptedMessage>::parse(p); +#undef FAIL +} + +messages_sendEncryptedService::messages_sendEncryptedService(object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_) + : peer_(std::move(peer_)) + , random_id_(random_id_) + , data_(std::move(data_)) +{} + +const std::int32_t messages_sendEncryptedService::ID; + +void messages_sendEncryptedService::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(852769188); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(data_, s); +} + +void messages_sendEncryptedService::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(852769188); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(data_, s); +} + +void messages_sendEncryptedService::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendEncryptedService"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("random_id", random_id_); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +messages_sendEncryptedService::ReturnType messages_sendEncryptedService::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_SentEncryptedMessage>::parse(p); +#undef FAIL +} + +messages_sendInlineBotResult::messages_sendInlineBotResult(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool hide_via_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, int64 random_id_, int64 query_id_, string const &id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , silent_(silent_) + , background_(background_) + , clear_draft_(clear_draft_) + , hide_via_(hide_via_) + , peer_(std::move(peer_)) + , reply_to_msg_id_(reply_to_msg_id_) + , top_msg_id_(top_msg_id_) + , random_id_(random_id_) + , query_id_(query_id_) + , id_(id_) + , schedule_date_(schedule_date_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_sendInlineBotResult::ID; + +void messages_sendInlineBotResult::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-738468661); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(query_id_, s); + TlStoreString::store(id_, s); + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendInlineBotResult::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-738468661); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBinary::store(random_id_, s); + TlStoreBinary::store(query_id_, s); + TlStoreString::store(id_, s); + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendInlineBotResult::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendInlineBotResult"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); } + s.store_field("random_id", random_id_); + s.store_field("query_id", query_id_); + s.store_field("id", id_); + if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); } + if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +messages_sendInlineBotResult::ReturnType messages_sendInlineBotResult::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendMedia::messages_sendMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputMedia> &&media_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , silent_(silent_) + , background_(background_) + , clear_draft_(clear_draft_) + , noforwards_(noforwards_) + , update_stickersets_order_(update_stickersets_order_) + , peer_(std::move(peer_)) + , reply_to_msg_id_(reply_to_msg_id_) + , top_msg_id_(top_msg_id_) + , media_(std::move(media_)) + , message_(message_) + , random_id_(random_id_) + , reply_markup_(std::move(reply_markup_)) + , entities_(std::move(entities_)) + , schedule_date_(schedule_date_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_sendMedia::ID; + +void messages_sendMedia::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1967638886); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); + TlStoreString::store(message_, s); + TlStoreBinary::store(random_id_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendMedia::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1967638886); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); + TlStoreString::store(message_, s); + TlStoreBinary::store(random_id_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendMedia"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); } + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_field("message", message_); + s.store_field("random_id", random_id_); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); } + if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +messages_sendMedia::ReturnType messages_sendMedia::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendMessage::messages_sendMessage(int32 flags_, bool no_webpage_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , no_webpage_(no_webpage_) + , silent_(silent_) + , background_(background_) + , clear_draft_(clear_draft_) + , noforwards_(noforwards_) + , update_stickersets_order_(update_stickersets_order_) + , peer_(std::move(peer_)) + , reply_to_msg_id_(reply_to_msg_id_) + , top_msg_id_(top_msg_id_) + , message_(message_) + , random_id_(random_id_) + , reply_markup_(std::move(reply_markup_)) + , entities_(std::move(entities_)) + , schedule_date_(schedule_date_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_sendMessage::ID; + +void messages_sendMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(482476935); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreString::store(message_, s); + TlStoreBinary::store(random_id_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(482476935); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreString::store(message_, s); + TlStoreBinary::store(random_id_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(reply_markup_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(entities_, s); } + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendMessage"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); } + s.store_field("message", message_); + s.store_field("random_id", random_id_); + if (var0 & 4) { s.store_object_field("reply_markup", static_cast<const BaseObject *>(reply_markup_.get())); } + if (var0 & 8) { { s.store_vector_begin("entities", entities_.size()); for (const auto &_value : entities_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); } + if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +messages_sendMessage::ReturnType messages_sendMessage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendMultiMedia::messages_sendMultiMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, array<object_ptr<inputSingleMedia>> &&multi_media_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_) + : flags_(flags_) + , silent_(silent_) + , background_(background_) + , clear_draft_(clear_draft_) + , noforwards_(noforwards_) + , update_stickersets_order_(update_stickersets_order_) + , peer_(std::move(peer_)) + , reply_to_msg_id_(reply_to_msg_id_) + , top_msg_id_(top_msg_id_) + , multi_media_(std::move(multi_media_)) + , schedule_date_(schedule_date_) + , send_as_(std::move(send_as_)) +{} + +const std::int32_t messages_sendMultiMedia::ID; + +void messages_sendMultiMedia::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1225713124); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 482797855>>, 481674261>::store(multi_media_, s); + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendMultiMedia::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1225713124); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(reply_to_msg_id_, s); } + if (var0 & 512) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, 482797855>>, 481674261>::store(multi_media_, s); + if (var0 & 1024) { TlStoreBinary::store(schedule_date_, s); } + if (var0 & 8192) { TlStoreBoxedUnknown<TlStoreObject>::store(send_as_, s); } +} + +void messages_sendMultiMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendMultiMedia"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("reply_to_msg_id", reply_to_msg_id_); } + if (var0 & 512) { s.store_field("top_msg_id", top_msg_id_); } + { s.store_vector_begin("multi_media", multi_media_.size()); for (const auto &_value : multi_media_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 1024) { s.store_field("schedule_date", schedule_date_); } + if (var0 & 8192) { s.store_object_field("send_as", static_cast<const BaseObject *>(send_as_.get())); } + s.store_class_end(); + } +} + +messages_sendMultiMedia::ReturnType messages_sendMultiMedia::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendReaction::messages_sendReaction(int32 flags_, bool big_, bool add_to_recent_, object_ptr<InputPeer> &&peer_, int32 msg_id_, array<object_ptr<Reaction>> &&reaction_) + : flags_(flags_) + , big_(big_) + , add_to_recent_(add_to_recent_) + , peer_(std::move(peer_)) + , msg_id_(msg_id_) + , reaction_(std::move(reaction_)) +{} + +const std::int32_t messages_sendReaction::ID; + +void messages_sendReaction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-754091820); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reaction_, s); } +} + +void messages_sendReaction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-754091820); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(reaction_, s); } +} + +void messages_sendReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendReaction"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + if (var0 & 1) { { s.store_vector_begin("reaction", reaction_.size()); for (const auto &_value : reaction_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +messages_sendReaction::ReturnType messages_sendReaction::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendScheduledMessages::messages_sendScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_) + : peer_(std::move(peer_)) + , id_(std::move(id_)) +{} + +const std::int32_t messages_sendScheduledMessages::ID; + +void messages_sendScheduledMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1120369398); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_sendScheduledMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1120369398); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(id_, s); +} + +void messages_sendScheduledMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendScheduledMessages"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_sendScheduledMessages::ReturnType messages_sendScheduledMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendScreenshotNotification::messages_sendScreenshotNotification(object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int64 random_id_) + : peer_(std::move(peer_)) + , reply_to_msg_id_(reply_to_msg_id_) + , random_id_(random_id_) +{} + +const std::int32_t messages_sendScreenshotNotification::ID; + +void messages_sendScreenshotNotification::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-914493408); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(reply_to_msg_id_, s); + TlStoreBinary::store(random_id_, s); +} + +void messages_sendScreenshotNotification::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-914493408); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(reply_to_msg_id_, s); + TlStoreBinary::store(random_id_, s); +} + +void messages_sendScreenshotNotification::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendScreenshotNotification"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("reply_to_msg_id", reply_to_msg_id_); + s.store_field("random_id", random_id_); + s.store_class_end(); + } +} + +messages_sendScreenshotNotification::ReturnType messages_sendScreenshotNotification::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendVote::messages_sendVote(object_ptr<InputPeer> &&peer_, int32 msg_id_, array<bytes> &&options_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) + , options_(std::move(options_)) +{} + +const std::int32_t messages_sendVote::ID; + +void messages_sendVote::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(283795844); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(options_, s); +} + +void messages_sendVote::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(283795844); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreString>, 481674261>::store(options_, s); +} + +void messages_sendVote::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendVote"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + { s.store_vector_begin("options", options_.size()); for (const auto &_value : options_) { s.store_bytes_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_sendVote::ReturnType messages_sendVote::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendWebViewData::messages_sendWebViewData(object_ptr<InputUser> &&bot_, int64 random_id_, string const &button_text_, string const &data_) + : bot_(std::move(bot_)) + , random_id_(random_id_) + , button_text_(button_text_) + , data_(data_) +{} + +const std::int32_t messages_sendWebViewData::ID; + +void messages_sendWebViewData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-603831608); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(button_text_, s); + TlStoreString::store(data_, s); +} + +void messages_sendWebViewData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-603831608); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(button_text_, s); + TlStoreString::store(data_, s); +} + +void messages_sendWebViewData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendWebViewData"); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_field("random_id", random_id_); + s.store_field("button_text", button_text_); + s.store_field("data", data_); + s.store_class_end(); + } +} + +messages_sendWebViewData::ReturnType messages_sendWebViewData::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_sendWebViewResultMessage::messages_sendWebViewResultMessage(string const &bot_query_id_, object_ptr<InputBotInlineResult> &&result_) + : bot_query_id_(bot_query_id_) + , result_(std::move(result_)) +{} + +const std::int32_t messages_sendWebViewResultMessage::ID; + +void messages_sendWebViewResultMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(172168437); + TlStoreString::store(bot_query_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(result_, s); +} + +void messages_sendWebViewResultMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(172168437); + TlStoreString::store(bot_query_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(result_, s); +} + +void messages_sendWebViewResultMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.sendWebViewResultMessage"); + s.store_field("bot_query_id", bot_query_id_); + s.store_object_field("result", static_cast<const BaseObject *>(result_.get())); + s.store_class_end(); + } +} + +messages_sendWebViewResultMessage::ReturnType messages_sendWebViewResultMessage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<webViewMessageSent>, 211046684>::parse(p); +#undef FAIL +} + +messages_setBotCallbackAnswer::messages_setBotCallbackAnswer(int32 flags_, bool alert_, int64 query_id_, string const &message_, string const &url_, int32 cache_time_) + : flags_(flags_) + , alert_(alert_) + , query_id_(query_id_) + , message_(message_) + , url_(url_) + , cache_time_(cache_time_) +{} + +const std::int32_t messages_setBotCallbackAnswer::ID; + +void messages_setBotCallbackAnswer::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-712043766); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreString::store(message_, s); } + if (var0 & 4) { TlStoreString::store(url_, s); } + TlStoreBinary::store(cache_time_, s); +} + +void messages_setBotCallbackAnswer::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-712043766); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreString::store(message_, s); } + if (var0 & 4) { TlStoreString::store(url_, s); } + TlStoreBinary::store(cache_time_, s); +} + +void messages_setBotCallbackAnswer::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setBotCallbackAnswer"); + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + if (var0 & 1) { s.store_field("message", message_); } + if (var0 & 4) { s.store_field("url", url_); } + s.store_field("cache_time", cache_time_); + s.store_class_end(); + } +} + +messages_setBotCallbackAnswer::ReturnType messages_setBotCallbackAnswer::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_setBotPrecheckoutResults::messages_setBotPrecheckoutResults(int32 flags_, bool success_, int64 query_id_, string const &error_) + : flags_(flags_) + , success_(success_) + , query_id_(query_id_) + , error_(error_) +{} + +const std::int32_t messages_setBotPrecheckoutResults::ID; + +void messages_setBotPrecheckoutResults::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(163765653); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreString::store(error_, s); } +} + +void messages_setBotPrecheckoutResults::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(163765653); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreString::store(error_, s); } +} + +void messages_setBotPrecheckoutResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setBotPrecheckoutResults"); + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + if (var0 & 1) { s.store_field("error", error_); } + s.store_class_end(); + } +} + +messages_setBotPrecheckoutResults::ReturnType messages_setBotPrecheckoutResults::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_setBotShippingResults::messages_setBotShippingResults(int32 flags_, int64 query_id_, string const &error_, array<object_ptr<shippingOption>> &&shipping_options_) + : flags_(flags_) + , query_id_(query_id_) + , error_(error_) + , shipping_options_(std::move(shipping_options_)) +{} + +const std::int32_t messages_setBotShippingResults::ID; + +void messages_setBotShippingResults::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-436833542); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreString::store(error_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1239335713>>, 481674261>::store(shipping_options_, s); } +} + +void messages_setBotShippingResults::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-436833542); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + if (var0 & 1) { TlStoreString::store(error_, s); } + if (var0 & 2) { TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -1239335713>>, 481674261>::store(shipping_options_, s); } +} + +void messages_setBotShippingResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setBotShippingResults"); + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + if (var0 & 1) { s.store_field("error", error_); } + if (var0 & 2) { { s.store_vector_begin("shipping_options", shipping_options_.size()); for (const auto &_value : shipping_options_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } } + s.store_class_end(); + } +} + +messages_setBotShippingResults::ReturnType messages_setBotShippingResults::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_setChatAvailableReactions::messages_setChatAvailableReactions(object_ptr<InputPeer> &&peer_, object_ptr<ChatReactions> &&available_reactions_) + : peer_(std::move(peer_)) + , available_reactions_(std::move(available_reactions_)) +{} + +const std::int32_t messages_setChatAvailableReactions::ID; + +void messages_setChatAvailableReactions::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-21928079); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(available_reactions_, s); +} + +void messages_setChatAvailableReactions::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-21928079); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(available_reactions_, s); +} + +void messages_setChatAvailableReactions::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setChatAvailableReactions"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("available_reactions", static_cast<const BaseObject *>(available_reactions_.get())); + s.store_class_end(); + } +} + +messages_setChatAvailableReactions::ReturnType messages_setChatAvailableReactions::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_setChatTheme::messages_setChatTheme(object_ptr<InputPeer> &&peer_, string const &emoticon_) + : peer_(std::move(peer_)) + , emoticon_(emoticon_) +{} + +const std::int32_t messages_setChatTheme::ID; + +void messages_setChatTheme::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-432283329); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(emoticon_, s); +} + +void messages_setChatTheme::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-432283329); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreString::store(emoticon_, s); +} + +void messages_setChatTheme::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setChatTheme"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("emoticon", emoticon_); + s.store_class_end(); + } +} + +messages_setChatTheme::ReturnType messages_setChatTheme::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_setDefaultReaction::messages_setDefaultReaction(object_ptr<Reaction> &&reaction_) + : reaction_(std::move(reaction_)) +{} + +const std::int32_t messages_setDefaultReaction::ID; + +void messages_setDefaultReaction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1330094102); + TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s); +} + +void messages_setDefaultReaction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1330094102); + TlStoreBoxedUnknown<TlStoreObject>::store(reaction_, s); +} + +void messages_setDefaultReaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setDefaultReaction"); + s.store_object_field("reaction", static_cast<const BaseObject *>(reaction_.get())); + s.store_class_end(); + } +} + +messages_setDefaultReaction::ReturnType messages_setDefaultReaction::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_setEncryptedTyping::messages_setEncryptedTyping(object_ptr<inputEncryptedChat> &&peer_, bool typing_) + : peer_(std::move(peer_)) + , typing_(typing_) +{} + +const std::int32_t messages_setEncryptedTyping::ID; + +void messages_setEncryptedTyping::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2031374829); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBool::store(typing_, s); +} + +void messages_setEncryptedTyping::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2031374829); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBool::store(typing_, s); +} + +void messages_setEncryptedTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setEncryptedTyping"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("typing", typing_); + s.store_class_end(); + } +} + +messages_setEncryptedTyping::ReturnType messages_setEncryptedTyping::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_setGameScore::messages_setGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_, int32 score_) + : flags_(flags_) + , edit_message_(edit_message_) + , force_(force_) + , peer_(std::move(peer_)) + , id_(id_) + , user_id_(std::move(user_id_)) + , score_(score_) +{} + +const std::int32_t messages_setGameScore::ID; + +void messages_setGameScore::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1896289088); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(score_, s); +} + +void messages_setGameScore::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1896289088); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(score_, s); +} + +void messages_setGameScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setGameScore"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("score", score_); + s.store_class_end(); + } +} + +messages_setGameScore::ReturnType messages_setGameScore::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_setHistoryTTL::messages_setHistoryTTL(object_ptr<InputPeer> &&peer_, int32 period_) + : peer_(std::move(peer_)) + , period_(period_) +{} + +const std::int32_t messages_setHistoryTTL::ID; + +void messages_setHistoryTTL::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1207017500); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(period_, s); +} + +void messages_setHistoryTTL::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1207017500); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(period_, s); +} + +void messages_setHistoryTTL::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setHistoryTTL"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("period", period_); + s.store_class_end(); + } +} + +messages_setHistoryTTL::ReturnType messages_setHistoryTTL::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_setInlineBotResults::messages_setInlineBotResults(int32 flags_, bool gallery_, bool private_, int64 query_id_, array<object_ptr<InputBotInlineResult>> &&results_, int32 cache_time_, string const &next_offset_, object_ptr<inlineBotSwitchPM> &&switch_pm_) + : flags_(flags_) + , gallery_(gallery_) + , private_(private_) + , query_id_(query_id_) + , results_(std::move(results_)) + , cache_time_(cache_time_) + , next_offset_(next_offset_) + , switch_pm_(std::move(switch_pm_)) +{} + +const std::int32_t messages_setInlineBotResults::ID; + +void messages_setInlineBotResults::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-346119674); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(results_, s); + TlStoreBinary::store(cache_time_, s); + if (var0 & 4) { TlStoreString::store(next_offset_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreObject, 1008755359>::store(switch_pm_, s); } +} + +void messages_setInlineBotResults::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-346119674); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(query_id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(results_, s); + TlStoreBinary::store(cache_time_, s); + if (var0 & 4) { TlStoreString::store(next_offset_, s); } + if (var0 & 8) { TlStoreBoxed<TlStoreObject, 1008755359>::store(switch_pm_, s); } +} + +void messages_setInlineBotResults::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setInlineBotResults"); + s.store_field("flags", (var0 = flags_)); + s.store_field("query_id", query_id_); + { s.store_vector_begin("results", results_.size()); for (const auto &_value : results_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_field("cache_time", cache_time_); + if (var0 & 4) { s.store_field("next_offset", next_offset_); } + if (var0 & 8) { s.store_object_field("switch_pm", static_cast<const BaseObject *>(switch_pm_.get())); } + s.store_class_end(); + } +} + +messages_setInlineBotResults::ReturnType messages_setInlineBotResults::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_setInlineGameScore::messages_setInlineGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_, int32 score_) + : flags_(flags_) + , edit_message_(edit_message_) + , force_(force_) + , id_(std::move(id_)) + , user_id_(std::move(user_id_)) + , score_(score_) +{} + +const std::int32_t messages_setInlineGameScore::ID; + +void messages_setInlineGameScore::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(363700068); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(score_, s); +} + +void messages_setInlineGameScore::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(363700068); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(score_, s); +} + +void messages_setInlineGameScore::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setInlineGameScore"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("score", score_); + s.store_class_end(); + } +} + +messages_setInlineGameScore::ReturnType messages_setInlineGameScore::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_setTyping::messages_setTyping(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, object_ptr<SendMessageAction> &&action_) + : flags_(flags_) + , peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) + , action_(std::move(action_)) +{} + +const std::int32_t messages_setTyping::ID; + +void messages_setTyping::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1486110434); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void messages_setTyping::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1486110434); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(action_, s); +} + +void messages_setTyping::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.setTyping"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_object_field("action", static_cast<const BaseObject *>(action_.get())); + s.store_class_end(); + } +} + +messages_setTyping::ReturnType messages_setTyping::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_startBot::messages_startBot(object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, int64 random_id_, string const &start_param_) + : bot_(std::move(bot_)) + , peer_(std::move(peer_)) + , random_id_(random_id_) + , start_param_(start_param_) +{} + +const std::int32_t messages_startBot::ID; + +void messages_startBot::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-421563528); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(start_param_, s); +} + +void messages_startBot::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-421563528); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(start_param_, s); +} + +void messages_startBot::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.startBot"); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("random_id", random_id_); + s.store_field("start_param", start_param_); + s.store_class_end(); + } +} + +messages_startBot::ReturnType messages_startBot::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_startHistoryImport::messages_startHistoryImport(object_ptr<InputPeer> &&peer_, int64 import_id_) + : peer_(std::move(peer_)) + , import_id_(import_id_) +{} + +const std::int32_t messages_startHistoryImport::ID; + +void messages_startHistoryImport::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1271008444); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(import_id_, s); +} + +void messages_startHistoryImport::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1271008444); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(import_id_, s); +} + +void messages_startHistoryImport::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.startHistoryImport"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("import_id", import_id_); + s.store_class_end(); + } +} + +messages_startHistoryImport::ReturnType messages_startHistoryImport::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_toggleBotInAttachMenu::messages_toggleBotInAttachMenu(object_ptr<InputUser> &&bot_, bool enabled_) + : bot_(std::move(bot_)) + , enabled_(enabled_) +{} + +const std::int32_t messages_toggleBotInAttachMenu::ID; + +void messages_toggleBotInAttachMenu::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(451818415); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBool::store(enabled_, s); +} + +void messages_toggleBotInAttachMenu::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(451818415); + TlStoreBoxedUnknown<TlStoreObject>::store(bot_, s); + TlStoreBool::store(enabled_, s); +} + +void messages_toggleBotInAttachMenu::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.toggleBotInAttachMenu"); + s.store_object_field("bot", static_cast<const BaseObject *>(bot_.get())); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +messages_toggleBotInAttachMenu::ReturnType messages_toggleBotInAttachMenu::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_toggleDialogPin::messages_toggleDialogPin(int32 flags_, bool pinned_, object_ptr<InputDialogPeer> &&peer_) + : flags_(flags_) + , pinned_(pinned_) + , peer_(std::move(peer_)) +{} + +const std::int32_t messages_toggleDialogPin::ID; + +void messages_toggleDialogPin::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1489903017); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_toggleDialogPin::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1489903017); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void messages_toggleDialogPin::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.toggleDialogPin"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +messages_toggleDialogPin::ReturnType messages_toggleDialogPin::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_toggleNoForwards::messages_toggleNoForwards(object_ptr<InputPeer> &&peer_, bool enabled_) + : peer_(std::move(peer_)) + , enabled_(enabled_) +{} + +const std::int32_t messages_toggleNoForwards::ID; + +void messages_toggleNoForwards::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1323389022); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBool::store(enabled_, s); +} + +void messages_toggleNoForwards::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1323389022); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBool::store(enabled_, s); +} + +void messages_toggleNoForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.toggleNoForwards"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("enabled", enabled_); + s.store_class_end(); + } +} + +messages_toggleNoForwards::ReturnType messages_toggleNoForwards::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_toggleStickerSets::messages_toggleStickerSets(int32 flags_, bool uninstall_, bool archive_, bool unarchive_, array<object_ptr<InputStickerSet>> &&stickersets_) + : flags_(flags_) + , uninstall_(uninstall_) + , archive_(archive_) + , unarchive_(unarchive_) + , stickersets_(std::move(stickersets_)) +{} + +const std::int32_t messages_toggleStickerSets::ID; + +void messages_toggleStickerSets::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1257951254); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickersets_, s); +} + +void messages_toggleStickerSets::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1257951254); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(stickersets_, s); +} + +void messages_toggleStickerSets::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.toggleStickerSets"); + s.store_field("flags", (var0 = flags_)); + { s.store_vector_begin("stickersets", stickersets_.size()); for (const auto &_value : stickersets_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_toggleStickerSets::ReturnType messages_toggleStickerSets::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_transcribeAudio::messages_transcribeAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) +{} + +const std::int32_t messages_transcribeAudio::ID; + +void messages_transcribeAudio::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(647928393); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_transcribeAudio::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(647928393); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void messages_transcribeAudio::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.transcribeAudio"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +messages_transcribeAudio::ReturnType messages_transcribeAudio::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_transcribedAudio>, -1821037486>::parse(p); +#undef FAIL +} + +messages_translateText::messages_translateText(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, string const &text_, string const &from_lang_, string const &to_lang_) + : flags_(flags_) + , peer_(std::move(peer_)) + , msg_id_(msg_id_) + , text_(text_) + , from_lang_(from_lang_) + , to_lang_(to_lang_) +{} + +const std::int32_t messages_translateText::ID; + +void messages_translateText::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(617508334); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } + if (var0 & 1) { TlStoreBinary::store(msg_id_, s); } + if (var0 & 2) { TlStoreString::store(text_, s); } + if (var0 & 4) { TlStoreString::store(from_lang_, s); } + TlStoreString::store(to_lang_, s); +} + +void messages_translateText::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(617508334); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); } + if (var0 & 1) { TlStoreBinary::store(msg_id_, s); } + if (var0 & 2) { TlStoreString::store(text_, s); } + if (var0 & 4) { TlStoreString::store(from_lang_, s); } + TlStoreString::store(to_lang_, s); +} + +void messages_translateText::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.translateText"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); } + if (var0 & 1) { s.store_field("msg_id", msg_id_); } + if (var0 & 2) { s.store_field("text", text_); } + if (var0 & 4) { s.store_field("from_lang", from_lang_); } + s.store_field("to_lang", to_lang_); + s.store_class_end(); + } +} + +messages_translateText::ReturnType messages_translateText::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_TranslatedText>::parse(p); +#undef FAIL +} + +messages_uninstallStickerSet::messages_uninstallStickerSet(object_ptr<InputStickerSet> &&stickerset_) + : stickerset_(std::move(stickerset_)) +{} + +const std::int32_t messages_uninstallStickerSet::ID; + +void messages_uninstallStickerSet::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-110209570); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void messages_uninstallStickerSet::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-110209570); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); +} + +void messages_uninstallStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.uninstallStickerSet"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_class_end(); + } +} + +messages_uninstallStickerSet::ReturnType messages_uninstallStickerSet::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_unpinAllMessages::messages_unpinAllMessages(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_) + : flags_(flags_) + , peer_(std::move(peer_)) + , top_msg_id_(top_msg_id_) +{} + +const std::int32_t messages_unpinAllMessages::ID; + +void messages_unpinAllMessages::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-299714136); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } +} + +void messages_unpinAllMessages::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-299714136); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + if (var0 & 1) { TlStoreBinary::store(top_msg_id_, s); } +} + +void messages_unpinAllMessages::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.unpinAllMessages"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + if (var0 & 1) { s.store_field("top_msg_id", top_msg_id_); } + s.store_class_end(); + } +} + +messages_unpinAllMessages::ReturnType messages_unpinAllMessages::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<messages_affectedHistory>, -1269012015>::parse(p); +#undef FAIL +} + +messages_updateDialogFilter::messages_updateDialogFilter(int32 flags_, int32 id_, object_ptr<DialogFilter> &&filter_) + : flags_(flags_) + , id_(id_) + , filter_(std::move(filter_)) +{} + +const std::int32_t messages_updateDialogFilter::ID; + +void messages_updateDialogFilter::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(450142282); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(id_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); } +} + +void messages_updateDialogFilter::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(450142282); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(id_, s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); } +} + +void messages_updateDialogFilter::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.updateDialogFilter"); + s.store_field("flags", (var0 = flags_)); + s.store_field("id", id_); + if (var0 & 1) { s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); } + s.store_class_end(); + } +} + +messages_updateDialogFilter::ReturnType messages_updateDialogFilter::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_updateDialogFiltersOrder::messages_updateDialogFiltersOrder(array<int32> &&order_) + : order_(std::move(order_)) +{} + +const std::int32_t messages_updateDialogFiltersOrder::ID; + +void messages_updateDialogFiltersOrder::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-983318044); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s); +} + +void messages_updateDialogFiltersOrder::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-983318044); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(order_, s); +} + +void messages_updateDialogFiltersOrder::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.updateDialogFiltersOrder"); + { s.store_vector_begin("order", order_.size()); for (const auto &_value : order_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +messages_updateDialogFiltersOrder::ReturnType messages_updateDialogFiltersOrder::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +messages_updatePinnedMessage::messages_updatePinnedMessage(int32 flags_, bool silent_, bool unpin_, bool pm_oneside_, object_ptr<InputPeer> &&peer_, int32 id_) + : flags_(flags_) + , silent_(silent_) + , unpin_(unpin_) + , pm_oneside_(pm_oneside_) + , peer_(std::move(peer_)) + , id_(id_) +{} + +const std::int32_t messages_updatePinnedMessage::ID; + +void messages_updatePinnedMessage::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-760547348); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); +} + +void messages_updatePinnedMessage::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-760547348); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(id_, s); +} + +void messages_updatePinnedMessage::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.updatePinnedMessage"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("id", id_); + s.store_class_end(); + } +} + +messages_updatePinnedMessage::ReturnType messages_updatePinnedMessage::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +messages_uploadEncryptedFile::messages_uploadEncryptedFile(object_ptr<inputEncryptedChat> &&peer_, object_ptr<InputEncryptedFile> &&file_) + : peer_(std::move(peer_)) + , file_(std::move(file_)) +{} + +const std::int32_t messages_uploadEncryptedFile::ID; + +void messages_uploadEncryptedFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1347929239); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); +} + +void messages_uploadEncryptedFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1347929239); + TlStoreBoxed<TlStoreObject, -247351839>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); +} + +void messages_uploadEncryptedFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.uploadEncryptedFile"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_class_end(); + } +} + +messages_uploadEncryptedFile::ReturnType messages_uploadEncryptedFile::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<EncryptedFile>::parse(p); +#undef FAIL +} + +messages_uploadImportedMedia::messages_uploadImportedMedia(object_ptr<InputPeer> &&peer_, int64 import_id_, string const &file_name_, object_ptr<InputMedia> &&media_) + : peer_(std::move(peer_)) + , import_id_(import_id_) + , file_name_(file_name_) + , media_(std::move(media_)) +{} + +const std::int32_t messages_uploadImportedMedia::ID; + +void messages_uploadImportedMedia::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(713433234); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(import_id_, s); + TlStoreString::store(file_name_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void messages_uploadImportedMedia::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(713433234); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(import_id_, s); + TlStoreString::store(file_name_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void messages_uploadImportedMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.uploadImportedMedia"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("import_id", import_id_); + s.store_field("file_name", file_name_); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_class_end(); + } +} + +messages_uploadImportedMedia::ReturnType messages_uploadImportedMedia::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<MessageMedia>::parse(p); +#undef FAIL +} + +messages_uploadMedia::messages_uploadMedia(object_ptr<InputPeer> &&peer_, object_ptr<InputMedia> &&media_) + : peer_(std::move(peer_)) + , media_(std::move(media_)) +{} + +const std::int32_t messages_uploadMedia::ID; + +void messages_uploadMedia::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1369162417); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void messages_uploadMedia::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1369162417); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(media_, s); +} + +void messages_uploadMedia::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "messages.uploadMedia"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("media", static_cast<const BaseObject *>(media_.get())); + s.store_class_end(); + } +} + +messages_uploadMedia::ReturnType messages_uploadMedia::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<MessageMedia>::parse(p); +#undef FAIL +} + +payments_assignAppStoreTransaction::payments_assignAppStoreTransaction(bytes &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_) + : receipt_(std::move(receipt_)) + , purpose_(std::move(purpose_)) +{} + +const std::int32_t payments_assignAppStoreTransaction::ID; + +void payments_assignAppStoreTransaction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2131921795); + TlStoreString::store(receipt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); +} + +void payments_assignAppStoreTransaction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2131921795); + TlStoreString::store(receipt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); +} + +void payments_assignAppStoreTransaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.assignAppStoreTransaction"); + s.store_bytes_field("receipt", receipt_); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_class_end(); + } +} + +payments_assignAppStoreTransaction::ReturnType payments_assignAppStoreTransaction::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +payments_assignPlayMarketTransaction::payments_assignPlayMarketTransaction(object_ptr<dataJSON> &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_) + : receipt_(std::move(receipt_)) + , purpose_(std::move(purpose_)) +{} + +const std::int32_t payments_assignPlayMarketTransaction::ID; + +void payments_assignPlayMarketTransaction::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-537046829); + TlStoreBoxed<TlStoreObject, 2104790276>::store(receipt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); +} + +void payments_assignPlayMarketTransaction::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-537046829); + TlStoreBoxed<TlStoreObject, 2104790276>::store(receipt_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); +} + +void payments_assignPlayMarketTransaction::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.assignPlayMarketTransaction"); + s.store_object_field("receipt", static_cast<const BaseObject *>(receipt_.get())); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_class_end(); + } +} + +payments_assignPlayMarketTransaction::ReturnType payments_assignPlayMarketTransaction::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +payments_canPurchasePremium::payments_canPurchasePremium(object_ptr<InputStorePaymentPurpose> &&purpose_) + : purpose_(std::move(purpose_)) +{} + +const std::int32_t payments_canPurchasePremium::ID; + +void payments_canPurchasePremium::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1614700874); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); +} + +void payments_canPurchasePremium::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1614700874); + TlStoreBoxedUnknown<TlStoreObject>::store(purpose_, s); +} + +void payments_canPurchasePremium::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.canPurchasePremium"); + s.store_object_field("purpose", static_cast<const BaseObject *>(purpose_.get())); + s.store_class_end(); + } +} + +payments_canPurchasePremium::ReturnType payments_canPurchasePremium::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +payments_clearSavedInfo::payments_clearSavedInfo(int32 flags_, bool credentials_, bool info_) + : flags_(flags_) + , credentials_(credentials_) + , info_(info_) +{} + +const std::int32_t payments_clearSavedInfo::ID; + +void payments_clearSavedInfo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-667062079); + TlStoreBinary::store((var0 = flags_), s); +} + +void payments_clearSavedInfo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-667062079); + TlStoreBinary::store((var0 = flags_), s); +} + +void payments_clearSavedInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.clearSavedInfo"); + s.store_field("flags", (var0 = flags_)); + s.store_class_end(); + } +} + +payments_clearSavedInfo::ReturnType payments_clearSavedInfo::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +payments_exportInvoice::payments_exportInvoice(object_ptr<InputMedia> &&invoice_media_) + : invoice_media_(std::move(invoice_media_)) +{} + +const std::int32_t payments_exportInvoice::ID; + +void payments_exportInvoice::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(261206117); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_media_, s); +} + +void payments_exportInvoice::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(261206117); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_media_, s); +} + +void payments_exportInvoice::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.exportInvoice"); + s.store_object_field("invoice_media", static_cast<const BaseObject *>(invoice_media_.get())); + s.store_class_end(); + } +} + +payments_exportInvoice::ReturnType payments_exportInvoice::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<payments_exportedInvoice>, -1362048039>::parse(p); +#undef FAIL +} + +payments_getBankCardData::payments_getBankCardData(string const &number_) + : number_(number_) +{} + +const std::int32_t payments_getBankCardData::ID; + +void payments_getBankCardData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(779736953); + TlStoreString::store(number_, s); +} + +void payments_getBankCardData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(779736953); + TlStoreString::store(number_, s); +} + +void payments_getBankCardData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.getBankCardData"); + s.store_field("number", number_); + s.store_class_end(); + } +} + +payments_getBankCardData::ReturnType payments_getBankCardData::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<payments_bankCardData>, 1042605427>::parse(p); +#undef FAIL +} + +payments_getPaymentForm::payments_getPaymentForm(int32 flags_, object_ptr<InputInvoice> &&invoice_, object_ptr<dataJSON> &&theme_params_) + : flags_(flags_) + , invoice_(std::move(invoice_)) + , theme_params_(std::move(theme_params_)) +{} + +const std::int32_t payments_getPaymentForm::ID; + +void payments_getPaymentForm::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(924093883); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); } +} + +void payments_getPaymentForm::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(924093883); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s); + if (var0 & 1) { TlStoreBoxed<TlStoreObject, 2104790276>::store(theme_params_, s); } +} + +void payments_getPaymentForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.getPaymentForm"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + if (var0 & 1) { s.store_object_field("theme_params", static_cast<const BaseObject *>(theme_params_.get())); } + s.store_class_end(); + } +} + +payments_getPaymentForm::ReturnType payments_getPaymentForm::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<payments_paymentForm>, -1610250415>::parse(p); +#undef FAIL +} + +payments_getPaymentReceipt::payments_getPaymentReceipt(object_ptr<InputPeer> &&peer_, int32 msg_id_) + : peer_(std::move(peer_)) + , msg_id_(msg_id_) +{} + +const std::int32_t payments_getPaymentReceipt::ID; + +void payments_getPaymentReceipt::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(611897804); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void payments_getPaymentReceipt::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(611897804); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(msg_id_, s); +} + +void payments_getPaymentReceipt::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.getPaymentReceipt"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +payments_getPaymentReceipt::ReturnType payments_getPaymentReceipt::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<payments_paymentReceipt>, 1891958275>::parse(p); +#undef FAIL +} + +const std::int32_t payments_getSavedInfo::ID; + +void payments_getSavedInfo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(578650699); +} + +void payments_getSavedInfo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(578650699); +} + +void payments_getSavedInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.getSavedInfo"); + s.store_class_end(); + } +} + +payments_getSavedInfo::ReturnType payments_getSavedInfo::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<payments_savedInfo>, -74456004>::parse(p); +#undef FAIL +} + +payments_sendPaymentForm::payments_sendPaymentForm(int32 flags_, int64 form_id_, object_ptr<InputInvoice> &&invoice_, string const &requested_info_id_, string const &shipping_option_id_, object_ptr<InputPaymentCredentials> &&credentials_, int64 tip_amount_) + : flags_(flags_) + , form_id_(form_id_) + , invoice_(std::move(invoice_)) + , requested_info_id_(requested_info_id_) + , shipping_option_id_(shipping_option_id_) + , credentials_(std::move(credentials_)) + , tip_amount_(tip_amount_) +{} + +const std::int32_t payments_sendPaymentForm::ID; + +void payments_sendPaymentForm::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(755192367); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(form_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s); + if (var0 & 1) { TlStoreString::store(requested_info_id_, s); } + if (var0 & 2) { TlStoreString::store(shipping_option_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(credentials_, s); + if (var0 & 4) { TlStoreBinary::store(tip_amount_, s); } +} + +void payments_sendPaymentForm::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(755192367); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(form_id_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s); + if (var0 & 1) { TlStoreString::store(requested_info_id_, s); } + if (var0 & 2) { TlStoreString::store(shipping_option_id_, s); } + TlStoreBoxedUnknown<TlStoreObject>::store(credentials_, s); + if (var0 & 4) { TlStoreBinary::store(tip_amount_, s); } +} + +void payments_sendPaymentForm::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.sendPaymentForm"); + s.store_field("flags", (var0 = flags_)); + s.store_field("form_id", form_id_); + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + if (var0 & 1) { s.store_field("requested_info_id", requested_info_id_); } + if (var0 & 2) { s.store_field("shipping_option_id", shipping_option_id_); } + s.store_object_field("credentials", static_cast<const BaseObject *>(credentials_.get())); + if (var0 & 4) { s.store_field("tip_amount", tip_amount_); } + s.store_class_end(); + } +} + +payments_sendPaymentForm::ReturnType payments_sendPaymentForm::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<payments_PaymentResult>::parse(p); +#undef FAIL +} + +payments_validateRequestedInfo::payments_validateRequestedInfo(int32 flags_, bool save_, object_ptr<InputInvoice> &&invoice_, object_ptr<paymentRequestedInfo> &&info_) + : flags_(flags_) + , save_(save_) + , invoice_(std::move(invoice_)) + , info_(std::move(info_)) +{} + +const std::int32_t payments_validateRequestedInfo::ID; + +void payments_validateRequestedInfo::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1228345045); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s); + TlStoreBoxed<TlStoreObject, -1868808300>::store(info_, s); +} + +void payments_validateRequestedInfo::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1228345045); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(invoice_, s); + TlStoreBoxed<TlStoreObject, -1868808300>::store(info_, s); +} + +void payments_validateRequestedInfo::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "payments.validateRequestedInfo"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("invoice", static_cast<const BaseObject *>(invoice_.get())); + s.store_object_field("info", static_cast<const BaseObject *>(info_.get())); + s.store_class_end(); + } +} + +payments_validateRequestedInfo::ReturnType payments_validateRequestedInfo::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<payments_validatedRequestedInfo>, -784000893>::parse(p); +#undef FAIL +} + +phone_acceptCall::phone_acceptCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_b_, object_ptr<phoneCallProtocol> &&protocol_) + : peer_(std::move(peer_)) + , g_b_(std::move(g_b_)) + , protocol_(std::move(protocol_)) +{} + +const std::int32_t phone_acceptCall::ID; + +void phone_acceptCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1003664544); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreString::store(g_b_, s); + TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s); +} + +void phone_acceptCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1003664544); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreString::store(g_b_, s); + TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s); +} + +void phone_acceptCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.acceptCall"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_bytes_field("g_b", g_b_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + s.store_class_end(); + } +} + +phone_acceptCall::ReturnType phone_acceptCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_phoneCall>, -326966976>::parse(p); +#undef FAIL +} + +phone_checkGroupCall::phone_checkGroupCall(object_ptr<inputGroupCall> &&call_, array<int32> &&sources_) + : call_(std::move(call_)) + , sources_(std::move(sources_)) +{} + +const std::int32_t phone_checkGroupCall::ID; + +void phone_checkGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1248003721); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s); +} + +void phone_checkGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1248003721); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s); +} + +void phone_checkGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.checkGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + { s.store_vector_begin("sources", sources_.size()); for (const auto &_value : sources_) { s.store_field("", _value); } s.store_class_end(); } + s.store_class_end(); + } +} + +phone_checkGroupCall::ReturnType phone_checkGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchInt>, 481674261>::parse(p); +#undef FAIL +} + +phone_confirmCall::phone_confirmCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_a_, int64 key_fingerprint_, object_ptr<phoneCallProtocol> &&protocol_) + : peer_(std::move(peer_)) + , g_a_(std::move(g_a_)) + , key_fingerprint_(key_fingerprint_) + , protocol_(std::move(protocol_)) +{} + +const std::int32_t phone_confirmCall::ID; + +void phone_confirmCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(788404002); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreString::store(g_a_, s); + TlStoreBinary::store(key_fingerprint_, s); + TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s); +} + +void phone_confirmCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(788404002); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreString::store(g_a_, s); + TlStoreBinary::store(key_fingerprint_, s); + TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s); +} + +void phone_confirmCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.confirmCall"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_bytes_field("g_a", g_a_); + s.store_field("key_fingerprint", key_fingerprint_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + s.store_class_end(); + } +} + +phone_confirmCall::ReturnType phone_confirmCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_phoneCall>, -326966976>::parse(p); +#undef FAIL +} + +phone_createGroupCall::phone_createGroupCall(int32 flags_, bool rtmp_stream_, object_ptr<InputPeer> &&peer_, int32 random_id_, string const &title_, int32 schedule_date_) + : flags_(flags_) + , rtmp_stream_(rtmp_stream_) + , peer_(std::move(peer_)) + , random_id_(random_id_) + , title_(title_) + , schedule_date_(schedule_date_) +{} + +const std::int32_t phone_createGroupCall::ID; + +void phone_createGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1221445336); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreBinary::store(schedule_date_, s); } +} + +void phone_createGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1221445336); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBinary::store(random_id_, s); + if (var0 & 1) { TlStoreString::store(title_, s); } + if (var0 & 2) { TlStoreBinary::store(schedule_date_, s); } +} + +void phone_createGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.createGroupCall"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("random_id", random_id_); + if (var0 & 1) { s.store_field("title", title_); } + if (var0 & 2) { s.store_field("schedule_date", schedule_date_); } + s.store_class_end(); + } +} + +phone_createGroupCall::ReturnType phone_createGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_discardCall::phone_discardCall(int32 flags_, bool video_, object_ptr<inputPhoneCall> &&peer_, int32 duration_, object_ptr<PhoneCallDiscardReason> &&reason_, int64 connection_id_) + : flags_(flags_) + , video_(video_) + , peer_(std::move(peer_)) + , duration_(duration_) + , reason_(std::move(reason_)) + , connection_id_(connection_id_) +{} + +const std::int32_t phone_discardCall::ID; + +void phone_discardCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1295269440); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBinary::store(duration_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreBinary::store(connection_id_, s); +} + +void phone_discardCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1295269440); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBinary::store(duration_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(reason_, s); + TlStoreBinary::store(connection_id_, s); +} + +void phone_discardCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.discardCall"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("duration", duration_); + s.store_object_field("reason", static_cast<const BaseObject *>(reason_.get())); + s.store_field("connection_id", connection_id_); + s.store_class_end(); + } +} + +phone_discardCall::ReturnType phone_discardCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_discardGroupCall::phone_discardGroupCall(object_ptr<inputGroupCall> &&call_) + : call_(std::move(call_)) +{} + +const std::int32_t phone_discardGroupCall::ID; + +void phone_discardGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2054648117); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_discardGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2054648117); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_discardGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.discardGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +phone_discardGroupCall::ReturnType phone_discardGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_editGroupCallParticipant::phone_editGroupCallParticipant(int32 flags_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&participant_, bool muted_, int32 volume_, bool raise_hand_, bool video_stopped_, bool video_paused_, bool presentation_paused_) + : flags_(flags_) + , call_(std::move(call_)) + , participant_(std::move(participant_)) + , muted_(muted_) + , volume_(volume_) + , raise_hand_(raise_hand_) + , video_stopped_(video_stopped_) + , video_paused_(video_paused_) + , presentation_paused_(presentation_paused_) +{} + +const std::int32_t phone_editGroupCallParticipant::ID; + +void phone_editGroupCallParticipant::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1524155713); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); + if (var0 & 1) { TlStoreBool::store(muted_, s); } + if (var0 & 2) { TlStoreBinary::store(volume_, s); } + if (var0 & 4) { TlStoreBool::store(raise_hand_, s); } + if (var0 & 8) { TlStoreBool::store(video_stopped_, s); } + if (var0 & 16) { TlStoreBool::store(video_paused_, s); } + if (var0 & 32) { TlStoreBool::store(presentation_paused_, s); } +} + +void phone_editGroupCallParticipant::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1524155713); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(participant_, s); + if (var0 & 1) { TlStoreBool::store(muted_, s); } + if (var0 & 2) { TlStoreBinary::store(volume_, s); } + if (var0 & 4) { TlStoreBool::store(raise_hand_, s); } + if (var0 & 8) { TlStoreBool::store(video_stopped_, s); } + if (var0 & 16) { TlStoreBool::store(video_paused_, s); } + if (var0 & 32) { TlStoreBool::store(presentation_paused_, s); } +} + +void phone_editGroupCallParticipant::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.editGroupCallParticipant"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_object_field("participant", static_cast<const BaseObject *>(participant_.get())); + if (var0 & 1) { s.store_field("muted", muted_); } + if (var0 & 2) { s.store_field("volume", volume_); } + if (var0 & 4) { s.store_field("raise_hand", raise_hand_); } + if (var0 & 8) { s.store_field("video_stopped", video_stopped_); } + if (var0 & 16) { s.store_field("video_paused", video_paused_); } + if (var0 & 32) { s.store_field("presentation_paused", presentation_paused_); } + s.store_class_end(); + } +} + +phone_editGroupCallParticipant::ReturnType phone_editGroupCallParticipant::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_editGroupCallTitle::phone_editGroupCallTitle(object_ptr<inputGroupCall> &&call_, string const &title_) + : call_(std::move(call_)) + , title_(title_) +{} + +const std::int32_t phone_editGroupCallTitle::ID; + +void phone_editGroupCallTitle::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(480685066); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreString::store(title_, s); +} + +void phone_editGroupCallTitle::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(480685066); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreString::store(title_, s); +} + +void phone_editGroupCallTitle::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.editGroupCallTitle"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_field("title", title_); + s.store_class_end(); + } +} + +phone_editGroupCallTitle::ReturnType phone_editGroupCallTitle::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_exportGroupCallInvite::phone_exportGroupCallInvite(int32 flags_, bool can_self_unmute_, object_ptr<inputGroupCall> &&call_) + : flags_(flags_) + , can_self_unmute_(can_self_unmute_) + , call_(std::move(call_)) +{} + +const std::int32_t phone_exportGroupCallInvite::ID; + +void phone_exportGroupCallInvite::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-425040769); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_exportGroupCallInvite::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-425040769); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_exportGroupCallInvite::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.exportGroupCallInvite"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +phone_exportGroupCallInvite::ReturnType phone_exportGroupCallInvite::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_exportedGroupCallInvite>, 541839704>::parse(p); +#undef FAIL +} + +const std::int32_t phone_getCallConfig::ID; + +void phone_getCallConfig::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1430593449); +} + +void phone_getCallConfig::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1430593449); +} + +void phone_getCallConfig::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.getCallConfig"); + s.store_class_end(); + } +} + +phone_getCallConfig::ReturnType phone_getCallConfig::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<dataJSON>, 2104790276>::parse(p); +#undef FAIL +} + +phone_getGroupCall::phone_getGroupCall(object_ptr<inputGroupCall> &&call_, int32 limit_) + : call_(std::move(call_)) + , limit_(limit_) +{} + +const std::int32_t phone_getGroupCall::ID; + +void phone_getGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(68699611); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBinary::store(limit_, s); +} + +void phone_getGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(68699611); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBinary::store(limit_, s); +} + +void phone_getGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.getGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +phone_getGroupCall::ReturnType phone_getGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_groupCall>, -1636664659>::parse(p); +#undef FAIL +} + +phone_getGroupCallJoinAs::phone_getGroupCallJoinAs(object_ptr<InputPeer> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t phone_getGroupCallJoinAs::ID; + +void phone_getGroupCallJoinAs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-277077702); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void phone_getGroupCallJoinAs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-277077702); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); +} + +void phone_getGroupCallJoinAs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.getGroupCallJoinAs"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +phone_getGroupCallJoinAs::ReturnType phone_getGroupCallJoinAs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_joinAsPeers>, -1343921601>::parse(p); +#undef FAIL +} + +phone_getGroupCallStreamChannels::phone_getGroupCallStreamChannels(object_ptr<inputGroupCall> &&call_) + : call_(std::move(call_)) +{} + +const std::int32_t phone_getGroupCallStreamChannels::ID; + +void phone_getGroupCallStreamChannels::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(447879488); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_getGroupCallStreamChannels::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(447879488); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_getGroupCallStreamChannels::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.getGroupCallStreamChannels"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +phone_getGroupCallStreamChannels::ReturnType phone_getGroupCallStreamChannels::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_groupCallStreamChannels>, -790330702>::parse(p); +#undef FAIL +} + +phone_getGroupCallStreamRtmpUrl::phone_getGroupCallStreamRtmpUrl(object_ptr<InputPeer> &&peer_, bool revoke_) + : peer_(std::move(peer_)) + , revoke_(revoke_) +{} + +const std::int32_t phone_getGroupCallStreamRtmpUrl::ID; + +void phone_getGroupCallStreamRtmpUrl::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-558650433); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBool::store(revoke_, s); +} + +void phone_getGroupCallStreamRtmpUrl::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-558650433); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBool::store(revoke_, s); +} + +void phone_getGroupCallStreamRtmpUrl::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.getGroupCallStreamRtmpUrl"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("revoke", revoke_); + s.store_class_end(); + } +} + +phone_getGroupCallStreamRtmpUrl::ReturnType phone_getGroupCallStreamRtmpUrl::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_groupCallStreamRtmpUrl>, 767505458>::parse(p); +#undef FAIL +} + +phone_getGroupParticipants::phone_getGroupParticipants(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputPeer>> &&ids_, array<int32> &&sources_, string const &offset_, int32 limit_) + : call_(std::move(call_)) + , ids_(std::move(ids_)) + , sources_(std::move(sources_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t phone_getGroupParticipants::ID; + +void phone_getGroupParticipants::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-984033109); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(ids_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s); + TlStoreString::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void phone_getGroupParticipants::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-984033109); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(ids_, s); + TlStoreBoxed<TlStoreVector<TlStoreBinary>, 481674261>::store(sources_, s); + TlStoreString::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void phone_getGroupParticipants::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.getGroupParticipants"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + { s.store_vector_begin("ids", ids_.size()); for (const auto &_value : ids_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + { s.store_vector_begin("sources", sources_.size()); for (const auto &_value : sources_) { s.store_field("", _value); } s.store_class_end(); } + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +phone_getGroupParticipants::ReturnType phone_getGroupParticipants::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_groupParticipants>, -193506890>::parse(p); +#undef FAIL +} + +phone_inviteToGroupCall::phone_inviteToGroupCall(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputUser>> &&users_) + : call_(std::move(call_)) + , users_(std::move(users_)) +{} + +const std::int32_t phone_inviteToGroupCall::ID; + +void phone_inviteToGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(2067345760); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void phone_inviteToGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(2067345760); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(users_, s); +} + +void phone_inviteToGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.inviteToGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + { s.store_vector_begin("users", users_.size()); for (const auto &_value : users_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +phone_inviteToGroupCall::ReturnType phone_inviteToGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_joinGroupCall::phone_joinGroupCall(int32 flags_, bool muted_, bool video_stopped_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&join_as_, string const &invite_hash_, object_ptr<dataJSON> &¶ms_) + : flags_(flags_) + , muted_(muted_) + , video_stopped_(video_stopped_) + , call_(std::move(call_)) + , join_as_(std::move(join_as_)) + , invite_hash_(invite_hash_) + , params_(std::move(params_)) +{} + +const std::int32_t phone_joinGroupCall::ID; + +void phone_joinGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1322057861); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s); + if (var0 & 2) { TlStoreString::store(invite_hash_, s); } + TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s); +} + +void phone_joinGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1322057861); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s); + if (var0 & 2) { TlStoreString::store(invite_hash_, s); } + TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s); +} + +void phone_joinGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.joinGroupCall"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_object_field("join_as", static_cast<const BaseObject *>(join_as_.get())); + if (var0 & 2) { s.store_field("invite_hash", invite_hash_); } + s.store_object_field("params", static_cast<const BaseObject *>(params_.get())); + s.store_class_end(); + } +} + +phone_joinGroupCall::ReturnType phone_joinGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_joinGroupCallPresentation::phone_joinGroupCallPresentation(object_ptr<inputGroupCall> &&call_, object_ptr<dataJSON> &¶ms_) + : call_(std::move(call_)) + , params_(std::move(params_)) +{} + +const std::int32_t phone_joinGroupCallPresentation::ID; + +void phone_joinGroupCallPresentation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-873829436); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s); +} + +void phone_joinGroupCallPresentation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-873829436); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(params_, s); +} + +void phone_joinGroupCallPresentation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.joinGroupCallPresentation"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_object_field("params", static_cast<const BaseObject *>(params_.get())); + s.store_class_end(); + } +} + +phone_joinGroupCallPresentation::ReturnType phone_joinGroupCallPresentation::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_leaveGroupCall::phone_leaveGroupCall(object_ptr<inputGroupCall> &&call_, int32 source_) + : call_(std::move(call_)) + , source_(source_) +{} + +const std::int32_t phone_leaveGroupCall::ID; + +void phone_leaveGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1342404601); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBinary::store(source_, s); +} + +void phone_leaveGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1342404601); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBinary::store(source_, s); +} + +void phone_leaveGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.leaveGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_field("source", source_); + s.store_class_end(); + } +} + +phone_leaveGroupCall::ReturnType phone_leaveGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_leaveGroupCallPresentation::phone_leaveGroupCallPresentation(object_ptr<inputGroupCall> &&call_) + : call_(std::move(call_)) +{} + +const std::int32_t phone_leaveGroupCallPresentation::ID; + +void phone_leaveGroupCallPresentation::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(475058500); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_leaveGroupCallPresentation::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(475058500); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_leaveGroupCallPresentation::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.leaveGroupCallPresentation"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +phone_leaveGroupCallPresentation::ReturnType phone_leaveGroupCallPresentation::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_receivedCall::phone_receivedCall(object_ptr<inputPhoneCall> &&peer_) + : peer_(std::move(peer_)) +{} + +const std::int32_t phone_receivedCall::ID; + +void phone_receivedCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(399855457); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); +} + +void phone_receivedCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(399855457); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); +} + +void phone_receivedCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.receivedCall"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_class_end(); + } +} + +phone_receivedCall::ReturnType phone_receivedCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +phone_requestCall::phone_requestCall(int32 flags_, bool video_, object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_hash_, object_ptr<phoneCallProtocol> &&protocol_) + : flags_(flags_) + , video_(video_) + , user_id_(std::move(user_id_)) + , random_id_(random_id_) + , g_a_hash_(std::move(g_a_hash_)) + , protocol_(std::move(protocol_)) +{} + +const std::int32_t phone_requestCall::ID; + +void phone_requestCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1124046573); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(g_a_hash_, s); + TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s); +} + +void phone_requestCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1124046573); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(random_id_, s); + TlStoreString::store(g_a_hash_, s); + TlStoreBoxed<TlStoreObject, -58224696>::store(protocol_, s); +} + +void phone_requestCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.requestCall"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("random_id", random_id_); + s.store_bytes_field("g_a_hash", g_a_hash_); + s.store_object_field("protocol", static_cast<const BaseObject *>(protocol_.get())); + s.store_class_end(); + } +} + +phone_requestCall::ReturnType phone_requestCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<phone_phoneCall>, -326966976>::parse(p); +#undef FAIL +} + +phone_saveCallDebug::phone_saveCallDebug(object_ptr<inputPhoneCall> &&peer_, object_ptr<dataJSON> &&debug_) + : peer_(std::move(peer_)) + , debug_(std::move(debug_)) +{} + +const std::int32_t phone_saveCallDebug::ID; + +void phone_saveCallDebug::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(662363518); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(debug_, s); +} + +void phone_saveCallDebug::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(662363518); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBoxed<TlStoreObject, 2104790276>::store(debug_, s); +} + +void phone_saveCallDebug::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.saveCallDebug"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("debug", static_cast<const BaseObject *>(debug_.get())); + s.store_class_end(); + } +} + +phone_saveCallDebug::ReturnType phone_saveCallDebug::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +phone_saveCallLog::phone_saveCallLog(object_ptr<inputPhoneCall> &&peer_, object_ptr<InputFile> &&file_) + : peer_(std::move(peer_)) + , file_(std::move(file_)) +{} + +const std::int32_t phone_saveCallLog::ID; + +void phone_saveCallLog::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1092913030); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); +} + +void phone_saveCallLog::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1092913030); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); +} + +void phone_saveCallLog::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.saveCallLog"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); + s.store_class_end(); + } +} + +phone_saveCallLog::ReturnType phone_saveCallLog::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +phone_saveDefaultGroupCallJoinAs::phone_saveDefaultGroupCallJoinAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&join_as_) + : peer_(std::move(peer_)) + , join_as_(std::move(join_as_)) +{} + +const std::int32_t phone_saveDefaultGroupCallJoinAs::ID; + +void phone_saveDefaultGroupCallJoinAs::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1465786252); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s); +} + +void phone_saveDefaultGroupCallJoinAs::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1465786252); + TlStoreBoxedUnknown<TlStoreObject>::store(peer_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(join_as_, s); +} + +void phone_saveDefaultGroupCallJoinAs::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.saveDefaultGroupCallJoinAs"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_object_field("join_as", static_cast<const BaseObject *>(join_as_.get())); + s.store_class_end(); + } +} + +phone_saveDefaultGroupCallJoinAs::ReturnType phone_saveDefaultGroupCallJoinAs::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +phone_sendSignalingData::phone_sendSignalingData(object_ptr<inputPhoneCall> &&peer_, bytes &&data_) + : peer_(std::move(peer_)) + , data_(std::move(data_)) +{} + +const std::int32_t phone_sendSignalingData::ID; + +void phone_sendSignalingData::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-8744061); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreString::store(data_, s); +} + +void phone_sendSignalingData::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-8744061); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreString::store(data_, s); +} + +void phone_sendSignalingData::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.sendSignalingData"); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_bytes_field("data", data_); + s.store_class_end(); + } +} + +phone_sendSignalingData::ReturnType phone_sendSignalingData::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +phone_setCallRating::phone_setCallRating(int32 flags_, bool user_initiative_, object_ptr<inputPhoneCall> &&peer_, int32 rating_, string const &comment_) + : flags_(flags_) + , user_initiative_(user_initiative_) + , peer_(std::move(peer_)) + , rating_(rating_) + , comment_(comment_) +{} + +const std::int32_t phone_setCallRating::ID; + +void phone_setCallRating::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1508562471); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBinary::store(rating_, s); + TlStoreString::store(comment_, s); +} + +void phone_setCallRating::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1508562471); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, 506920429>::store(peer_, s); + TlStoreBinary::store(rating_, s); + TlStoreString::store(comment_, s); +} + +void phone_setCallRating::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.setCallRating"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("peer", static_cast<const BaseObject *>(peer_.get())); + s.store_field("rating", rating_); + s.store_field("comment", comment_); + s.store_class_end(); + } +} + +phone_setCallRating::ReturnType phone_setCallRating::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_startScheduledGroupCall::phone_startScheduledGroupCall(object_ptr<inputGroupCall> &&call_) + : call_(std::move(call_)) +{} + +const std::int32_t phone_startScheduledGroupCall::ID; + +void phone_startScheduledGroupCall::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1451287362); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_startScheduledGroupCall::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1451287362); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); +} + +void phone_startScheduledGroupCall::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.startScheduledGroupCall"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_class_end(); + } +} + +phone_startScheduledGroupCall::ReturnType phone_startScheduledGroupCall::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_toggleGroupCallRecord::phone_toggleGroupCallRecord(int32 flags_, bool start_, bool video_, object_ptr<inputGroupCall> &&call_, string const &title_, bool video_portrait_) + : flags_(flags_) + , start_(start_) + , video_(video_) + , call_(std::move(call_)) + , title_(title_) + , video_portrait_(video_portrait_) +{} + +const std::int32_t phone_toggleGroupCallRecord::ID; + +void phone_toggleGroupCallRecord::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-248985848); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreBool::store(video_portrait_, s); } +} + +void phone_toggleGroupCallRecord::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-248985848); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + if (var0 & 2) { TlStoreString::store(title_, s); } + if (var0 & 4) { TlStoreBool::store(video_portrait_, s); } +} + +void phone_toggleGroupCallRecord::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.toggleGroupCallRecord"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + if (var0 & 2) { s.store_field("title", title_); } + if (var0 & 4) { s.store_field("video_portrait", video_portrait_); } + s.store_class_end(); + } +} + +phone_toggleGroupCallRecord::ReturnType phone_toggleGroupCallRecord::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_toggleGroupCallSettings::phone_toggleGroupCallSettings(int32 flags_, bool reset_invite_hash_, object_ptr<inputGroupCall> &&call_, bool join_muted_) + : flags_(flags_) + , reset_invite_hash_(reset_invite_hash_) + , call_(std::move(call_)) + , join_muted_(join_muted_) +{} + +const std::int32_t phone_toggleGroupCallSettings::ID; + +void phone_toggleGroupCallSettings::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1958458429); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + if (var0 & 1) { TlStoreBool::store(join_muted_, s); } +} + +void phone_toggleGroupCallSettings::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1958458429); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + if (var0 & 1) { TlStoreBool::store(join_muted_, s); } +} + +void phone_toggleGroupCallSettings::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.toggleGroupCallSettings"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + if (var0 & 1) { s.store_field("join_muted", join_muted_); } + s.store_class_end(); + } +} + +phone_toggleGroupCallSettings::ReturnType phone_toggleGroupCallSettings::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +phone_toggleGroupCallStartSubscription::phone_toggleGroupCallStartSubscription(object_ptr<inputGroupCall> &&call_, bool subscribed_) + : call_(std::move(call_)) + , subscribed_(subscribed_) +{} + +const std::int32_t phone_toggleGroupCallStartSubscription::ID; + +void phone_toggleGroupCallStartSubscription::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(563885286); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBool::store(subscribed_, s); +} + +void phone_toggleGroupCallStartSubscription::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(563885286); + TlStoreBoxed<TlStoreObject, -659913713>::store(call_, s); + TlStoreBool::store(subscribed_, s); +} + +void phone_toggleGroupCallStartSubscription::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "phone.toggleGroupCallStartSubscription"); + s.store_object_field("call", static_cast<const BaseObject *>(call_.get())); + s.store_field("subscribed", subscribed_); + s.store_class_end(); + } +} + +phone_toggleGroupCallStartSubscription::ReturnType phone_toggleGroupCallStartSubscription::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<Updates>::parse(p); +#undef FAIL +} + +photos_deletePhotos::photos_deletePhotos(array<object_ptr<InputPhoto>> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t photos_deletePhotos::ID; + +void photos_deletePhotos::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2016444625); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void photos_deletePhotos::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2016444625); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void photos_deletePhotos::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photos.deletePhotos"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +photos_deletePhotos::ReturnType photos_deletePhotos::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchLong>, 481674261>::parse(p); +#undef FAIL +} + +photos_getUserPhotos::photos_getUserPhotos(object_ptr<InputUser> &&user_id_, int32 offset_, int64 max_id_, int32 limit_) + : user_id_(std::move(user_id_)) + , offset_(offset_) + , max_id_(max_id_) + , limit_(limit_) +{} + +const std::int32_t photos_getUserPhotos::ID; + +void photos_getUserPhotos::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1848823128); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(limit_, s); +} + +void photos_getUserPhotos::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1848823128); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(max_id_, s); + TlStoreBinary::store(limit_, s); +} + +void photos_getUserPhotos::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photos.getUserPhotos"); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("offset", offset_); + s.store_field("max_id", max_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +photos_getUserPhotos::ReturnType photos_getUserPhotos::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<photos_Photos>::parse(p); +#undef FAIL +} + +photos_updateProfilePhoto::photos_updateProfilePhoto(object_ptr<InputPhoto> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t photos_updateProfilePhoto::ID; + +void photos_updateProfilePhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1926525996); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void photos_updateProfilePhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1926525996); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void photos_updateProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photos.updateProfilePhoto"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +photos_updateProfilePhoto::ReturnType photos_updateProfilePhoto::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<photos_photo>, 539045032>::parse(p); +#undef FAIL +} + +photos_uploadProfilePhoto::photos_uploadProfilePhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_) + : flags_(flags_) + , file_(std::move(file_)) + , video_(std::move(video_)) + , video_start_ts_(video_start_ts_) +{} + +const std::int32_t photos_uploadProfilePhoto::ID; + +void photos_uploadProfilePhoto::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1980559511); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); } + if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); } +} + +void photos_uploadProfilePhoto::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1980559511); + TlStoreBinary::store((var0 = flags_), s); + if (var0 & 1) { TlStoreBoxedUnknown<TlStoreObject>::store(file_, s); } + if (var0 & 2) { TlStoreBoxedUnknown<TlStoreObject>::store(video_, s); } + if (var0 & 4) { TlStoreBinary::store(video_start_ts_, s); } +} + +void photos_uploadProfilePhoto::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "photos.uploadProfilePhoto"); + s.store_field("flags", (var0 = flags_)); + if (var0 & 1) { s.store_object_field("file", static_cast<const BaseObject *>(file_.get())); } + if (var0 & 2) { s.store_object_field("video", static_cast<const BaseObject *>(video_.get())); } + if (var0 & 4) { s.store_field("video_start_ts", video_start_ts_); } + s.store_class_end(); + } +} + +photos_uploadProfilePhoto::ReturnType photos_uploadProfilePhoto::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<photos_photo>, 539045032>::parse(p); +#undef FAIL +} + +stats_getBroadcastStats::stats_getBroadcastStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_) + : flags_(flags_) + , dark_(dark_) + , channel_(std::move(channel_)) +{} + +const std::int32_t stats_getBroadcastStats::ID; + +void stats_getBroadcastStats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1421720550); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void stats_getBroadcastStats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1421720550); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void stats_getBroadcastStats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.getBroadcastStats"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +stats_getBroadcastStats::ReturnType stats_getBroadcastStats::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<stats_broadcastStats>, -1107852396>::parse(p); +#undef FAIL +} + +stats_getMegagroupStats::stats_getMegagroupStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_) + : flags_(flags_) + , dark_(dark_) + , channel_(std::move(channel_)) +{} + +const std::int32_t stats_getMegagroupStats::ID; + +void stats_getMegagroupStats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-589330937); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void stats_getMegagroupStats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-589330937); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); +} + +void stats_getMegagroupStats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.getMegagroupStats"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_class_end(); + } +} + +stats_getMegagroupStats::ReturnType stats_getMegagroupStats::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<stats_megagroupStats>, -276825834>::parse(p); +#undef FAIL +} + +stats_getMessagePublicForwards::stats_getMessagePublicForwards(object_ptr<InputChannel> &&channel_, int32 msg_id_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_) + : channel_(std::move(channel_)) + , msg_id_(msg_id_) + , offset_rate_(offset_rate_) + , offset_peer_(std::move(offset_peer_)) + , offset_id_(offset_id_) + , limit_(limit_) +{} + +const std::int32_t stats_getMessagePublicForwards::ID; + +void stats_getMessagePublicForwards::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1445996571); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(offset_rate_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void stats_getMessagePublicForwards::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1445996571); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(msg_id_, s); + TlStoreBinary::store(offset_rate_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(offset_peer_, s); + TlStoreBinary::store(offset_id_, s); + TlStoreBinary::store(limit_, s); +} + +void stats_getMessagePublicForwards::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.getMessagePublicForwards"); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("msg_id", msg_id_); + s.store_field("offset_rate", offset_rate_); + s.store_object_field("offset_peer", static_cast<const BaseObject *>(offset_peer_.get())); + s.store_field("offset_id", offset_id_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +stats_getMessagePublicForwards::ReturnType stats_getMessagePublicForwards::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_Messages>::parse(p); +#undef FAIL +} + +stats_getMessageStats::stats_getMessageStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_, int32 msg_id_) + : flags_(flags_) + , dark_(dark_) + , channel_(std::move(channel_)) + , msg_id_(msg_id_) +{} + +const std::int32_t stats_getMessageStats::ID; + +void stats_getMessageStats::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1226791947); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(msg_id_, s); +} + +void stats_getMessageStats::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1226791947); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBinary::store(msg_id_, s); +} + +void stats_getMessageStats::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.getMessageStats"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_field("msg_id", msg_id_); + s.store_class_end(); + } +} + +stats_getMessageStats::ReturnType stats_getMessageStats::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<stats_messageStats>, -1986399595>::parse(p); +#undef FAIL +} + +stats_loadAsyncGraph::stats_loadAsyncGraph(int32 flags_, string const &token_, int64 x_) + : flags_(flags_) + , token_(token_) + , x_(x_) +{} + +const std::int32_t stats_loadAsyncGraph::ID; + +void stats_loadAsyncGraph::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1646092192); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(token_, s); + if (var0 & 1) { TlStoreBinary::store(x_, s); } +} + +void stats_loadAsyncGraph::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1646092192); + TlStoreBinary::store((var0 = flags_), s); + TlStoreString::store(token_, s); + if (var0 & 1) { TlStoreBinary::store(x_, s); } +} + +void stats_loadAsyncGraph::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stats.loadAsyncGraph"); + s.store_field("flags", (var0 = flags_)); + s.store_field("token", token_); + if (var0 & 1) { s.store_field("x", x_); } + s.store_class_end(); + } +} + +stats_loadAsyncGraph::ReturnType stats_loadAsyncGraph::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<StatsGraph>::parse(p); +#undef FAIL +} + +stickers_addStickerToSet::stickers_addStickerToSet(object_ptr<InputStickerSet> &&stickerset_, object_ptr<inputStickerSetItem> &&sticker_) + : stickerset_(std::move(stickerset_)) + , sticker_(std::move(sticker_)) +{} + +const std::int32_t stickers_addStickerToSet::ID; + +void stickers_addStickerToSet::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-2041315650); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBoxed<TlStoreObject, -6249322>::store(sticker_, s); +} + +void stickers_addStickerToSet::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-2041315650); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBoxed<TlStoreObject, -6249322>::store(sticker_, s); +} + +void stickers_addStickerToSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.addStickerToSet"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +stickers_addStickerToSet::ReturnType stickers_addStickerToSet::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_StickerSet>::parse(p); +#undef FAIL +} + +stickers_changeStickerPosition::stickers_changeStickerPosition(object_ptr<InputDocument> &&sticker_, int32 position_) + : sticker_(std::move(sticker_)) + , position_(position_) +{} + +const std::int32_t stickers_changeStickerPosition::ID; + +void stickers_changeStickerPosition::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-4795190); + TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s); + TlStoreBinary::store(position_, s); +} + +void stickers_changeStickerPosition::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-4795190); + TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s); + TlStoreBinary::store(position_, s); +} + +void stickers_changeStickerPosition::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.changeStickerPosition"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_field("position", position_); + s.store_class_end(); + } +} + +stickers_changeStickerPosition::ReturnType stickers_changeStickerPosition::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_StickerSet>::parse(p); +#undef FAIL +} + +stickers_checkShortName::stickers_checkShortName(string const &short_name_) + : short_name_(short_name_) +{} + +const std::int32_t stickers_checkShortName::ID; + +void stickers_checkShortName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(676017721); + TlStoreString::store(short_name_, s); +} + +void stickers_checkShortName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(676017721); + TlStoreString::store(short_name_, s); +} + +void stickers_checkShortName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.checkShortName"); + s.store_field("short_name", short_name_); + s.store_class_end(); + } +} + +stickers_checkShortName::ReturnType stickers_checkShortName::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +stickers_createStickerSet::stickers_createStickerSet(int32 flags_, bool masks_, bool animated_, bool videos_, object_ptr<InputUser> &&user_id_, string const &title_, string const &short_name_, object_ptr<InputDocument> &&thumb_, array<object_ptr<inputStickerSetItem>> &&stickers_, string const &software_) + : flags_(flags_) + , masks_(masks_) + , animated_(animated_) + , videos_(videos_) + , user_id_(std::move(user_id_)) + , title_(title_) + , short_name_(short_name_) + , thumb_(std::move(thumb_)) + , stickers_(std::move(stickers_)) + , software_(software_) +{} + +const std::int32_t stickers_createStickerSet::ID; + +void stickers_createStickerSet::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1876841625); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreString::store(title_, s); + TlStoreString::store(short_name_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -6249322>>, 481674261>::store(stickers_, s); + if (var0 & 8) { TlStoreString::store(software_, s); } +} + +void stickers_createStickerSet::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1876841625); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(user_id_, s); + TlStoreString::store(title_, s); + TlStoreString::store(short_name_, s); + if (var0 & 4) { TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); } + TlStoreBoxed<TlStoreVector<TlStoreBoxed<TlStoreObject, -6249322>>, 481674261>::store(stickers_, s); + if (var0 & 8) { TlStoreString::store(software_, s); } +} + +void stickers_createStickerSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.createStickerSet"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("user_id", static_cast<const BaseObject *>(user_id_.get())); + s.store_field("title", title_); + s.store_field("short_name", short_name_); + if (var0 & 4) { s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); } + { s.store_vector_begin("stickers", stickers_.size()); for (const auto &_value : stickers_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + if (var0 & 8) { s.store_field("software", software_); } + s.store_class_end(); + } +} + +stickers_createStickerSet::ReturnType stickers_createStickerSet::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_StickerSet>::parse(p); +#undef FAIL +} + +stickers_removeStickerFromSet::stickers_removeStickerFromSet(object_ptr<InputDocument> &&sticker_) + : sticker_(std::move(sticker_)) +{} + +const std::int32_t stickers_removeStickerFromSet::ID; + +void stickers_removeStickerFromSet::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-143257775); + TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s); +} + +void stickers_removeStickerFromSet::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-143257775); + TlStoreBoxedUnknown<TlStoreObject>::store(sticker_, s); +} + +void stickers_removeStickerFromSet::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.removeStickerFromSet"); + s.store_object_field("sticker", static_cast<const BaseObject *>(sticker_.get())); + s.store_class_end(); + } +} + +stickers_removeStickerFromSet::ReturnType stickers_removeStickerFromSet::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_StickerSet>::parse(p); +#undef FAIL +} + +stickers_setStickerSetThumb::stickers_setStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, object_ptr<InputDocument> &&thumb_) + : stickerset_(std::move(stickerset_)) + , thumb_(std::move(thumb_)) +{} + +const std::int32_t stickers_setStickerSetThumb::ID; + +void stickers_setStickerSetThumb::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1707717072); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); +} + +void stickers_setStickerSetThumb::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1707717072); + TlStoreBoxedUnknown<TlStoreObject>::store(stickerset_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(thumb_, s); +} + +void stickers_setStickerSetThumb::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.setStickerSetThumb"); + s.store_object_field("stickerset", static_cast<const BaseObject *>(stickerset_.get())); + s.store_object_field("thumb", static_cast<const BaseObject *>(thumb_.get())); + s.store_class_end(); + } +} + +stickers_setStickerSetThumb::ReturnType stickers_setStickerSetThumb::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<messages_StickerSet>::parse(p); +#undef FAIL +} + +stickers_suggestShortName::stickers_suggestShortName(string const &title_) + : title_(title_) +{} + +const std::int32_t stickers_suggestShortName::ID; + +void stickers_suggestShortName::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(1303364867); + TlStoreString::store(title_, s); +} + +void stickers_suggestShortName::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(1303364867); + TlStoreString::store(title_, s); +} + +void stickers_suggestShortName::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "stickers.suggestShortName"); + s.store_field("title", title_); + s.store_class_end(); + } +} + +stickers_suggestShortName::ReturnType stickers_suggestShortName::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<stickers_suggestedShortName>, -2046910401>::parse(p); +#undef FAIL +} + +const std::int32_t test_parseInputAppEvent::ID; + +void test_parseInputAppEvent::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1156741135); +} + +void test_parseInputAppEvent::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1156741135); +} + +void test_parseInputAppEvent::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "test.parseInputAppEvent"); + s.store_class_end(); + } +} + +test_parseInputAppEvent::ReturnType test_parseInputAppEvent::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<inputAppEvent>, 488313413>::parse(p); +#undef FAIL +} + +const std::int32_t test_useConfigSimple::ID; + +void test_useConfigSimple::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-105401795); +} + +void test_useConfigSimple::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-105401795); +} + +void test_useConfigSimple::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "test.useConfigSimple"); + s.store_class_end(); + } +} + +test_useConfigSimple::ReturnType test_useConfigSimple::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<help_configSimple>, 1515793004>::parse(p); +#undef FAIL +} + +const std::int32_t test_useError::ID; + +void test_useError::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-294277375); +} + +void test_useError::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-294277375); +} + +void test_useError::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "test.useError"); + s.store_class_end(); + } +} + +test_useError::ReturnType test_useError::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<error>, -994444869>::parse(p); +#undef FAIL +} + +updates_getChannelDifference::updates_getChannelDifference(int32 flags_, bool force_, object_ptr<InputChannel> &&channel_, object_ptr<ChannelMessagesFilter> &&filter_, int32 pts_, int32 limit_) + : flags_(flags_) + , force_(force_) + , channel_(std::move(channel_)) + , filter_(std::move(filter_)) + , pts_(pts_) + , limit_(limit_) +{} + +const std::int32_t updates_getChannelDifference::ID; + +void updates_getChannelDifference::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(51854712); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(pts_, s); + TlStoreBinary::store(limit_, s); +} + +void updates_getChannelDifference::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(51854712); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(channel_, s); + TlStoreBoxedUnknown<TlStoreObject>::store(filter_, s); + TlStoreBinary::store(pts_, s); + TlStoreBinary::store(limit_, s); +} + +void updates_getChannelDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.getChannelDifference"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("channel", static_cast<const BaseObject *>(channel_.get())); + s.store_object_field("filter", static_cast<const BaseObject *>(filter_.get())); + s.store_field("pts", pts_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +updates_getChannelDifference::ReturnType updates_getChannelDifference::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<updates_ChannelDifference>::parse(p); +#undef FAIL +} + +updates_getDifference::updates_getDifference(int32 flags_, int32 pts_, int32 pts_total_limit_, int32 date_, int32 qts_) + : flags_(flags_) + , pts_(pts_) + , pts_total_limit_(pts_total_limit_) + , date_(date_) + , qts_(qts_) +{} + +const std::int32_t updates_getDifference::ID; + +void updates_getDifference::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(630429265); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(pts_, s); + if (var0 & 1) { TlStoreBinary::store(pts_total_limit_, s); } + TlStoreBinary::store(date_, s); + TlStoreBinary::store(qts_, s); +} + +void updates_getDifference::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(630429265); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBinary::store(pts_, s); + if (var0 & 1) { TlStoreBinary::store(pts_total_limit_, s); } + TlStoreBinary::store(date_, s); + TlStoreBinary::store(qts_, s); +} + +void updates_getDifference::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.getDifference"); + s.store_field("flags", (var0 = flags_)); + s.store_field("pts", pts_); + if (var0 & 1) { s.store_field("pts_total_limit", pts_total_limit_); } + s.store_field("date", date_); + s.store_field("qts", qts_); + s.store_class_end(); + } +} + +updates_getDifference::ReturnType updates_getDifference::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<updates_Difference>::parse(p); +#undef FAIL +} + +const std::int32_t updates_getState::ID; + +void updates_getState::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-304838614); +} + +void updates_getState::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-304838614); +} + +void updates_getState::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "updates.getState"); + s.store_class_end(); + } +} + +updates_getState::ReturnType updates_getState::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<updates_state>, -1519637954>::parse(p); +#undef FAIL +} + +upload_getCdnFile::upload_getCdnFile(bytes &&file_token_, int64 offset_, int32 limit_) + : file_token_(std::move(file_token_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t upload_getCdnFile::ID; + +void upload_getCdnFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(962554330); + TlStoreString::store(file_token_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void upload_getCdnFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(962554330); + TlStoreString::store(file_token_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void upload_getCdnFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.getCdnFile"); + s.store_bytes_field("file_token", file_token_); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +upload_getCdnFile::ReturnType upload_getCdnFile::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<upload_CdnFile>::parse(p); +#undef FAIL +} + +upload_getCdnFileHashes::upload_getCdnFileHashes(bytes &&file_token_, int64 offset_) + : file_token_(std::move(file_token_)) + , offset_(offset_) +{} + +const std::int32_t upload_getCdnFileHashes::ID; + +void upload_getCdnFileHashes::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1847836879); + TlStoreString::store(file_token_, s); + TlStoreBinary::store(offset_, s); +} + +void upload_getCdnFileHashes::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1847836879); + TlStoreString::store(file_token_, s); + TlStoreBinary::store(offset_, s); +} + +void upload_getCdnFileHashes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.getCdnFileHashes"); + s.store_bytes_field("file_token", file_token_); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +upload_getCdnFileHashes::ReturnType upload_getCdnFileHashes::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p); +#undef FAIL +} + +upload_getFile::upload_getFile(int32 flags_, bool precise_, bool cdn_supported_, object_ptr<InputFileLocation> &&location_, int64 offset_, int32 limit_) + : flags_(flags_) + , precise_(precise_) + , cdn_supported_(cdn_supported_) + , location_(std::move(location_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t upload_getFile::ID; + +void upload_getFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1101843010); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void upload_getFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1101843010); + TlStoreBinary::store((var0 = flags_), s); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void upload_getFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.getFile"); + s.store_field("flags", (var0 = flags_)); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +upload_getFile::ReturnType upload_getFile::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchObject<upload_File>::parse(p); +#undef FAIL +} + +upload_getFileHashes::upload_getFileHashes(object_ptr<InputFileLocation> &&location_, int64 offset_) + : location_(std::move(location_)) + , offset_(offset_) +{} + +const std::int32_t upload_getFileHashes::ID; + +void upload_getFileHashes::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1856595926); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(offset_, s); +} + +void upload_getFileHashes::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1856595926); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(offset_, s); +} + +void upload_getFileHashes::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.getFileHashes"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("offset", offset_); + s.store_class_end(); + } +} + +upload_getFileHashes::ReturnType upload_getFileHashes::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p); +#undef FAIL +} + +upload_getWebFile::upload_getWebFile(object_ptr<InputWebFileLocation> &&location_, int32 offset_, int32 limit_) + : location_(std::move(location_)) + , offset_(offset_) + , limit_(limit_) +{} + +const std::int32_t upload_getWebFile::ID; + +void upload_getWebFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(619086221); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void upload_getWebFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(619086221); + TlStoreBoxedUnknown<TlStoreObject>::store(location_, s); + TlStoreBinary::store(offset_, s); + TlStoreBinary::store(limit_, s); +} + +void upload_getWebFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.getWebFile"); + s.store_object_field("location", static_cast<const BaseObject *>(location_.get())); + s.store_field("offset", offset_); + s.store_field("limit", limit_); + s.store_class_end(); + } +} + +upload_getWebFile::ReturnType upload_getWebFile::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<upload_webFile>, 568808380>::parse(p); +#undef FAIL +} + +upload_reuploadCdnFile::upload_reuploadCdnFile(bytes &&file_token_, bytes &&request_token_) + : file_token_(std::move(file_token_)) + , request_token_(std::move(request_token_)) +{} + +const std::int32_t upload_reuploadCdnFile::ID; + +void upload_reuploadCdnFile::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1691921240); + TlStoreString::store(file_token_, s); + TlStoreString::store(request_token_, s); +} + +void upload_reuploadCdnFile::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1691921240); + TlStoreString::store(file_token_, s); + TlStoreString::store(request_token_, s); +} + +void upload_reuploadCdnFile::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.reuploadCdnFile"); + s.store_bytes_field("file_token", file_token_); + s.store_bytes_field("request_token", request_token_); + s.store_class_end(); + } +} + +upload_reuploadCdnFile::ReturnType upload_reuploadCdnFile::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchBoxed<TlFetchObject<fileHash>, -207944868>>, 481674261>::parse(p); +#undef FAIL +} + +upload_saveBigFilePart::upload_saveBigFilePart(int64 file_id_, int32 file_part_, int32 file_total_parts_, bytes &&bytes_) + : file_id_(file_id_) + , file_part_(file_part_) + , file_total_parts_(file_total_parts_) + , bytes_(std::move(bytes_)) +{} + +const std::int32_t upload_saveBigFilePart::ID; + +void upload_saveBigFilePart::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-562337987); + TlStoreBinary::store(file_id_, s); + TlStoreBinary::store(file_part_, s); + TlStoreBinary::store(file_total_parts_, s); + TlStoreString::store(bytes_, s); +} + +void upload_saveBigFilePart::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-562337987); + TlStoreBinary::store(file_id_, s); + TlStoreBinary::store(file_part_, s); + TlStoreBinary::store(file_total_parts_, s); + TlStoreString::store(bytes_, s); +} + +void upload_saveBigFilePart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.saveBigFilePart"); + s.store_field("file_id", file_id_); + s.store_field("file_part", file_part_); + s.store_field("file_total_parts", file_total_parts_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +upload_saveBigFilePart::ReturnType upload_saveBigFilePart::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +upload_saveFilePart::upload_saveFilePart(int64 file_id_, int32 file_part_, bytes &&bytes_) + : file_id_(file_id_) + , file_part_(file_part_) + , bytes_(std::move(bytes_)) +{} + +const std::int32_t upload_saveFilePart::ID; + +void upload_saveFilePart::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1291540959); + TlStoreBinary::store(file_id_, s); + TlStoreBinary::store(file_part_, s); + TlStoreString::store(bytes_, s); +} + +void upload_saveFilePart::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1291540959); + TlStoreBinary::store(file_id_, s); + TlStoreBinary::store(file_part_, s); + TlStoreString::store(bytes_, s); +} + +void upload_saveFilePart::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "upload.saveFilePart"); + s.store_field("file_id", file_id_); + s.store_field("file_part", file_part_); + s.store_bytes_field("bytes", bytes_); + s.store_class_end(); + } +} + +upload_saveFilePart::ReturnType upload_saveFilePart::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} + +users_getFullUser::users_getFullUser(object_ptr<InputUser> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t users_getFullUser::ID; + +void users_getFullUser::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1240508136); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void users_getFullUser::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1240508136); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); +} + +void users_getFullUser::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "users.getFullUser"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + s.store_class_end(); + } +} + +users_getFullUser::ReturnType users_getFullUser::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchObject<users_userFull>, 997004590>::parse(p); +#undef FAIL +} + +users_getUsers::users_getUsers(array<object_ptr<InputUser>> &&id_) + : id_(std::move(id_)) +{} + +const std::int32_t users_getUsers::ID; + +void users_getUsers::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(227648840); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void users_getUsers::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(227648840); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(id_, s); +} + +void users_getUsers::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "users.getUsers"); + { s.store_vector_begin("id", id_.size()); for (const auto &_value : id_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +users_getUsers::ReturnType users_getUsers::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBoxed<TlFetchVector<TlFetchObject<User>>, 481674261>::parse(p); +#undef FAIL +} + +users_setSecureValueErrors::users_setSecureValueErrors(object_ptr<InputUser> &&id_, array<object_ptr<SecureValueError>> &&errors_) + : id_(std::move(id_)) + , errors_(std::move(errors_)) +{} + +const std::int32_t users_setSecureValueErrors::ID; + +void users_setSecureValueErrors::store(TlStorerCalcLength &s) const { + (void)sizeof(s); + s.store_binary(-1865902923); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(errors_, s); +} + +void users_setSecureValueErrors::store(TlStorerUnsafe &s) const { + (void)sizeof(s); + s.store_binary(-1865902923); + TlStoreBoxedUnknown<TlStoreObject>::store(id_, s); + TlStoreBoxed<TlStoreVector<TlStoreBoxedUnknown<TlStoreObject>>, 481674261>::store(errors_, s); +} + +void users_setSecureValueErrors::store(TlStorerToString &s, const char *field_name) const { + if (!LOG_IS_STRIPPED(ERROR)) { + s.store_class_begin(field_name, "users.setSecureValueErrors"); + s.store_object_field("id", static_cast<const BaseObject *>(id_.get())); + { s.store_vector_begin("errors", errors_.size()); for (const auto &_value : errors_) { s.store_object_field("", static_cast<const BaseObject *>(_value.get())); } s.store_class_end(); } + s.store_class_end(); + } +} + +users_setSecureValueErrors::ReturnType users_setSecureValueErrors::fetch_result(TlBufferParser &p) { +#define FAIL(error) p.set_error(error); return ReturnType() + return TlFetchBool::parse(p); +#undef FAIL +} +} // namespace telegram_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.h b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.h new file mode 100644 index 0000000000..e0f2bdd9d6 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.h @@ -0,0 +1,33072 @@ +#pragma once + +#include "td/tl/TlObject.h" + +#include "td/utils/buffer.h" + +#include <cstdint> +#include <utility> +#include <vector> + +namespace td { +class TlStorerCalcLength; +class TlStorerUnsafe; +class TlStorerToString; +class TlBufferParser; + +namespace telegram_api { + +using int32 = std::int32_t; +using int53 = std::int64_t; +using int64 = std::int64_t; + +using string = std::string; + +using bytes = BufferSlice; + +template <class Type> +using array = std::vector<Type>; + +using BaseObject = ::td::TlObject; + +template <class Type> +using object_ptr = ::td::tl_object_ptr<Type>; + +template <class Type, class... Args> +object_ptr<Type> make_object(Args &&... args) { + return object_ptr<Type>(new Type(std::forward<Args>(args)...)); +} + +template <class ToType, class FromType> +object_ptr<ToType> move_object_as(FromType &&from) { + return object_ptr<ToType>(static_cast<ToType *>(from.release())); +} + +std::string to_string(const BaseObject &value); + +template <class T> +std::string to_string(const object_ptr<T> &value) { + if (value == nullptr) { + return "null"; + } + + return to_string(*value); +} + +template <class T> +std::string to_string(const std::vector<object_ptr<T>> &values) { + std::string result = "{\n"; + for (const auto &value : values) { + if (value == nullptr) { + result += "null\n"; + } else { + result += to_string(*value); + } + } + result += "}\n"; + return result; +} + +class accessPointRule; + +class accountDaysTTL; + +class attachMenuBot; + +class attachMenuBotIcon; + +class attachMenuBotIconColor; + +class AttachMenuBots; + +class attachMenuBotsBot; + +class AttachMenuPeerType; + +class authorization; + +class autoDownloadSettings; + +class availableReaction; + +class bankCardOpenUrl; + +class BaseTheme; + +class botCommand; + +class BotCommandScope; + +class botInfo; + +class BotInlineMessage; + +class BotInlineResult; + +class BotMenuButton; + +class cdnConfig; + +class cdnPublicKey; + +class channelAdminLogEvent; + +class ChannelAdminLogEventAction; + +class channelAdminLogEventsFilter; + +class ChannelLocation; + +class ChannelMessagesFilter; + +class ChannelParticipant; + +class ChannelParticipantsFilter; + +class Chat; + +class chatAdminRights; + +class chatAdminWithInvites; + +class chatBannedRights; + +class ChatFull; + +class ChatInvite; + +class chatInviteImporter; + +class chatOnlines; + +class ChatParticipant; + +class ChatParticipants; + +class ChatPhoto; + +class ChatReactions; + +class codeSettings; + +class config; + +class contact; + +class contactStatus; + +class dataJSON; + +class dcOption; + +class Dialog; + +class DialogFilter; + +class dialogFilterSuggested; + +class DialogPeer; + +class Document; + +class DocumentAttribute; + +class DraftMessage; + +class EmailVerification; + +class EmailVerifyPurpose; + +class EmojiKeyword; + +class emojiKeywordsDifference; + +class emojiLanguage; + +class EmojiStatus; + +class emojiURL; + +class EncryptedChat; + +class EncryptedFile; + +class EncryptedMessage; + +class error; + +class ExportedChatInvite; + +class exportedMessageLink; + +class fileHash; + +class folder; + +class folderPeer; + +class ForumTopic; + +class game; + +class GeoPoint; + +class globalPrivacySettings; + +class GroupCall; + +class groupCallParticipant; + +class groupCallParticipantVideo; + +class groupCallParticipantVideoSourceGroup; + +class groupCallStreamChannel; + +class highScore; + +class importedContact; + +class inlineBotSwitchPM; + +class InlineQueryPeerType; + +class inputAppEvent; + +class InputBotInlineMessage; + +class InputBotInlineMessageID; + +class InputBotInlineResult; + +class InputChannel; + +class InputChatPhoto; + +class InputCheckPasswordSRP; + +class inputClientProxy; + +class inputPhoneContact; + +class InputDialogPeer; + +class InputDocument; + +class inputEncryptedChat; + +class InputEncryptedFile; + +class InputFile; + +class InputFileLocation; + +class inputFolderPeer; + +class InputGame; + +class InputGeoPoint; + +class inputGroupCall; + +class InputInvoice; + +class InputMedia; + +class InputMessage; + +class InputNotifyPeer; + +class InputPaymentCredentials; + +class InputPeer; + +class inputPeerNotifySettings; + +class inputPhoneCall; + +class InputPhoto; + +class InputPrivacyKey; + +class InputPrivacyRule; + +class InputSecureFile; + +class inputSecureValue; + +class inputSingleMedia; + +class InputStickerSet; + +class inputStickerSetItem; + +class InputStickeredMedia; + +class InputStorePaymentPurpose; + +class InputTheme; + +class inputThemeSettings; + +class InputUser; + +class InputWallPaper; + +class inputWebDocument; + +class InputWebFileLocation; + +class invoice; + +class IpPort; + +class jsonObjectValue; + +class JSONValue; + +class KeyboardButton; + +class keyboardButtonRow; + +class labeledPrice; + +class langPackDifference; + +class langPackLanguage; + +class LangPackString; + +class maskCoords; + +class Message; + +class MessageAction; + +class MessageEntity; + +class MessageExtendedMedia; + +class messageFwdHeader; + +class messageInteractionCounters; + +class MessageMedia; + +class messagePeerReaction; + +class messageRange; + +class messageReactions; + +class messageReplies; + +class messageReplyHeader; + +class MessageUserVote; + +class messageViews; + +class MessagesFilter; + +class nearestDc; + +class NotificationSound; + +class NotifyPeer; + +class page; + +class PageBlock; + +class pageCaption; + +class PageListItem; + +class PageListOrderedItem; + +class pageRelatedArticle; + +class pageTableCell; + +class pageTableRow; + +class PasswordKdfAlgo; + +class paymentCharge; + +class paymentFormMethod; + +class paymentRequestedInfo; + +class paymentSavedCredentialsCard; + +class Peer; + +class peerBlocked; + +class PeerLocated; + +class peerNotifySettings; + +class peerSettings; + +class PhoneCall; + +class PhoneCallDiscardReason; + +class phoneCallProtocol; + +class PhoneConnection; + +class Photo; + +class PhotoSize; + +class poll; + +class pollAnswer; + +class pollAnswerVoters; + +class pollResults; + +class popularContact; + +class postAddress; + +class premiumGiftOption; + +class premiumSubscriptionOption; + +class PrivacyKey; + +class PrivacyRule; + +class Reaction; + +class reactionCount; + +class receivedNotifyMessage; + +class RecentMeUrl; + +class ReplyMarkup; + +class ReportReason; + +class restrictionReason; + +class RichText; + +class savedPhoneContact; + +class searchResultsCalendarPeriod; + +class searchResultPosition; + +class secureCredentialsEncrypted; + +class secureData; + +class SecureFile; + +class SecurePasswordKdfAlgo; + +class SecurePlainData; + +class SecureRequiredType; + +class secureSecretSettings; + +class secureValue; + +class SecureValueError; + +class secureValueHash; + +class SecureValueType; + +class sendAsPeer; + +class SendMessageAction; + +class shippingOption; + +class simpleWebViewResultUrl; + +class sponsoredMessage; + +class statsAbsValueAndPrev; + +class statsDateRangeDays; + +class StatsGraph; + +class statsGroupTopAdmin; + +class statsGroupTopInviter; + +class statsGroupTopPoster; + +class statsPercentValue; + +class statsURL; + +class stickerKeyword; + +class stickerPack; + +class stickerSet; + +class StickerSetCovered; + +class theme; + +class themeSettings; + +class topPeer; + +class TopPeerCategory; + +class topPeerCategoryPeers; + +class Update; + +class Updates; + +class UrlAuthResult; + +class User; + +class userFull; + +class UserProfilePhoto; + +class UserStatus; + +class username; + +class videoSize; + +class WallPaper; + +class wallPaperSettings; + +class webAuthorization; + +class WebDocument; + +class WebPage; + +class webPageAttributeTheme; + +class webViewMessageSent; + +class webViewResultUrl; + +class account_authorizationForm; + +class account_authorizations; + +class account_autoDownloadSettings; + +class account_contentSettings; + +class account_EmailVerified; + +class account_EmojiStatuses; + +class account_password; + +class account_passwordInputSettings; + +class account_passwordSettings; + +class account_privacyRules; + +class account_ResetPasswordResult; + +class account_SavedRingtone; + +class account_SavedRingtones; + +class account_sentEmailCode; + +class account_takeout; + +class account_Themes; + +class account_tmpPassword; + +class account_WallPapers; + +class account_webAuthorizations; + +class auth_Authorization; + +class auth_CodeType; + +class auth_exportedAuthorization; + +class auth_loggedOut; + +class auth_LoginToken; + +class auth_passwordRecovery; + +class auth_sentCode; + +class auth_SentCodeType; + +class channels_adminLogResults; + +class channels_channelParticipant; + +class channels_ChannelParticipants; + +class channels_sendAsPeers; + +class contacts_Blocked; + +class contacts_Contacts; + +class contacts_found; + +class contacts_importedContacts; + +class contacts_resolvedPeer; + +class contacts_TopPeers; + +class help_AppUpdate; + +class help_configSimple; + +class help_CountriesList; + +class help_country; + +class help_countryCode; + +class help_DeepLinkInfo; + +class help_inviteText; + +class help_PassportConfig; + +class help_premiumPromo; + +class help_PromoData; + +class help_recentMeUrls; + +class help_support; + +class help_supportName; + +class help_termsOfService; + +class help_TermsOfServiceUpdate; + +class help_UserInfo; + +class messages_affectedFoundMessages; + +class messages_affectedHistory; + +class messages_affectedMessages; + +class messages_AllStickers; + +class messages_archivedStickers; + +class messages_AvailableReactions; + +class messages_botCallbackAnswer; + +class messages_botResults; + +class messages_chatAdminsWithInvites; + +class messages_chatFull; + +class messages_chatInviteImporters; + +class messages_Chats; + +class messages_checkedHistoryImportPeer; + +class messages_DhConfig; + +class messages_Dialogs; + +class messages_discussionMessage; + +class messages_ExportedChatInvite; + +class messages_exportedChatInvites; + +class messages_FavedStickers; + +class messages_FeaturedStickers; + +class messages_forumTopics; + +class messages_FoundStickerSets; + +class messages_highScores; + +class messages_historyImport; + +class messages_historyImportParsed; + +class messages_inactiveChats; + +class messages_messageEditData; + +class messages_messageReactionsList; + +class messages_messageViews; + +class messages_Messages; + +class messages_peerDialogs; + +class messages_peerSettings; + +class messages_Reactions; + +class messages_RecentStickers; + +class messages_SavedGifs; + +class messages_searchCounter; + +class messages_searchResultsCalendar; + +class messages_searchResultsPositions; + +class messages_SentEncryptedMessage; + +class messages_SponsoredMessages; + +class messages_StickerSet; + +class messages_StickerSetInstallResult; + +class messages_Stickers; + +class messages_transcribedAudio; + +class messages_TranslatedText; + +class messages_votesList; + +class payments_bankCardData; + +class payments_exportedInvoice; + +class payments_paymentForm; + +class payments_paymentReceipt; + +class payments_PaymentResult; + +class payments_savedInfo; + +class payments_validatedRequestedInfo; + +class phone_exportedGroupCallInvite; + +class phone_groupCall; + +class phone_groupCallStreamChannels; + +class phone_groupCallStreamRtmpUrl; + +class phone_groupParticipants; + +class phone_joinAsPeers; + +class phone_phoneCall; + +class photos_photo; + +class photos_Photos; + +class stats_broadcastStats; + +class stats_megagroupStats; + +class stats_messageStats; + +class stickers_suggestedShortName; + +class storage_FileType; + +class updates_ChannelDifference; + +class updates_Difference; + +class updates_state; + +class upload_CdnFile; + +class upload_File; + +class upload_webFile; + +class users_userFull; + +class Object; + +class Object: public TlObject { + public: + + static object_ptr<Object> fetch(TlBufferParser &p); +}; + +class Function: public TlObject { + public: +}; + +class accessPointRule final : public Object { + public: + string phone_prefix_rules_; + int32 dc_id_; + array<object_ptr<IpPort>> ips_; + + static const std::int32_t ID = 1182381663; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<accessPointRule> fetch(TlBufferParser &p); + + explicit accessPointRule(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class accountDaysTTL final : public Object { + public: + int32 days_; + + explicit accountDaysTTL(int32 days_); + + static const std::int32_t ID = -1194283041; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<accountDaysTTL> fetch(TlBufferParser &p); + + explicit accountDaysTTL(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuBot final : public Object { + public: + int32 flags_; + bool inactive_; + bool has_settings_; + int64 bot_id_; + string short_name_; + array<object_ptr<AttachMenuPeerType>> peer_types_; + array<object_ptr<attachMenuBotIcon>> icons_; + + attachMenuBot(); + + static const std::int32_t ID = -928371502; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<attachMenuBot> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuBotIcon final : public Object { + public: + int32 flags_; + string name_; + object_ptr<Document> icon_; + array<object_ptr<attachMenuBotIconColor>> colors_; + + attachMenuBotIcon(); + + static const std::int32_t ID = -1297663893; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<attachMenuBotIcon> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuBotIconColor final : public Object { + public: + string name_; + int32 color_; + + static const std::int32_t ID = 1165423600; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<attachMenuBotIconColor> fetch(TlBufferParser &p); + + explicit attachMenuBotIconColor(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AttachMenuBots: public Object { + public: + + static object_ptr<AttachMenuBots> fetch(TlBufferParser &p); +}; + +class attachMenuBotsNotModified final : public AttachMenuBots { + public: + + static const std::int32_t ID = -237467044; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<AttachMenuBots> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuBots final : public AttachMenuBots { + public: + int64 hash_; + array<object_ptr<attachMenuBot>> bots_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 1011024320; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<AttachMenuBots> fetch(TlBufferParser &p); + + explicit attachMenuBots(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuBotsBot final : public Object { + public: + object_ptr<attachMenuBot> bot_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1816172929; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<attachMenuBotsBot> fetch(TlBufferParser &p); + + explicit attachMenuBotsBot(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class AttachMenuPeerType: public Object { + public: + + static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p); +}; + +class attachMenuPeerTypeSameBotPM final : public AttachMenuPeerType { + public: + + static const std::int32_t ID = 2104224014; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuPeerTypeBotPM final : public AttachMenuPeerType { + public: + + static const std::int32_t ID = -1020528102; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuPeerTypePM final : public AttachMenuPeerType { + public: + + static const std::int32_t ID = -247016673; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuPeerTypeChat final : public AttachMenuPeerType { + public: + + static const std::int32_t ID = 84480319; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class attachMenuPeerTypeBroadcast final : public AttachMenuPeerType { + public: + + static const std::int32_t ID = 2080104188; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<AttachMenuPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class authorization final : public Object { + public: + int32 flags_; + bool current_; + bool official_app_; + bool password_pending_; + bool encrypted_requests_disabled_; + bool call_requests_disabled_; + int64 hash_; + string device_model_; + string platform_; + string system_version_; + int32 api_id_; + string app_name_; + string app_version_; + int32 date_created_; + int32 date_active_; + string ip_; + string country_; + string region_; + + authorization(); + + static const std::int32_t ID = -1392388579; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<authorization> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class autoDownloadSettings final : public Object { + public: + int32 flags_; + bool disabled_; + bool video_preload_large_; + bool audio_preload_next_; + bool phonecalls_less_data_; + int32 photo_size_max_; + int64 video_size_max_; + int64 file_size_max_; + int32 video_upload_maxbitrate_; + enum Flags : std::int32_t { DISABLED_MASK = 1, VIDEO_PRELOAD_LARGE_MASK = 2, AUDIO_PRELOAD_NEXT_MASK = 4, PHONECALLS_LESS_DATA_MASK = 8 }; + + autoDownloadSettings(); + + autoDownloadSettings(int32 flags_, bool disabled_, bool video_preload_large_, bool audio_preload_next_, bool phonecalls_less_data_, int32 photo_size_max_, int64 video_size_max_, int64 file_size_max_, int32 video_upload_maxbitrate_); + + static const std::int32_t ID = -1896171181; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<autoDownloadSettings> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class availableReaction final : public Object { + public: + int32 flags_; + bool inactive_; + bool premium_; + string reaction_; + string title_; + object_ptr<Document> static_icon_; + object_ptr<Document> appear_animation_; + object_ptr<Document> select_animation_; + object_ptr<Document> activate_animation_; + object_ptr<Document> effect_animation_; + object_ptr<Document> around_animation_; + object_ptr<Document> center_icon_; + + availableReaction(); + + static const std::int32_t ID = -1065882623; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<availableReaction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class bankCardOpenUrl final : public Object { + public: + string url_; + string name_; + + static const std::int32_t ID = -177732982; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<bankCardOpenUrl> fetch(TlBufferParser &p); + + explicit bankCardOpenUrl(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BaseTheme: public Object { + public: + + static object_ptr<BaseTheme> fetch(TlBufferParser &p); +}; + +class baseThemeClassic final : public BaseTheme { + public: + + static const std::int32_t ID = -1012849566; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BaseTheme> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class baseThemeDay final : public BaseTheme { + public: + + static const std::int32_t ID = -69724536; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BaseTheme> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class baseThemeNight final : public BaseTheme { + public: + + static const std::int32_t ID = -1212997976; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BaseTheme> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class baseThemeTinted final : public BaseTheme { + public: + + static const std::int32_t ID = 1834973166; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BaseTheme> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class baseThemeArctic final : public BaseTheme { + public: + + static const std::int32_t ID = 1527845466; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BaseTheme> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommand final : public Object { + public: + string command_; + string description_; + + botCommand(string const &command_, string const &description_); + + static const std::int32_t ID = -1032140601; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<botCommand> fetch(TlBufferParser &p); + + explicit botCommand(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BotCommandScope: public Object { + public: +}; + +class botCommandScopeDefault final : public BotCommandScope { + public: + + static const std::int32_t ID = 795652779; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeUsers final : public BotCommandScope { + public: + + static const std::int32_t ID = 1011811544; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChats final : public BotCommandScope { + public: + + static const std::int32_t ID = 1877059713; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopeChatAdmins final : public BotCommandScope { + public: + + static const std::int32_t ID = -1180016534; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopePeer final : public BotCommandScope { + public: + object_ptr<InputPeer> peer_; + + explicit botCommandScopePeer(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = -610432643; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopePeerAdmins final : public BotCommandScope { + public: + object_ptr<InputPeer> peer_; + + explicit botCommandScopePeerAdmins(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 1071145937; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botCommandScopePeerUser final : public BotCommandScope { + public: + object_ptr<InputPeer> peer_; + object_ptr<InputUser> user_id_; + + botCommandScopePeerUser(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = 169026035; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInfo final : public Object { + public: + int32 flags_; + int64 user_id_; + string description_; + object_ptr<Photo> description_photo_; + object_ptr<Document> description_document_; + array<object_ptr<botCommand>> commands_; + object_ptr<BotMenuButton> menu_button_; + enum Flags : std::int32_t { USER_ID_MASK = 1, DESCRIPTION_MASK = 2 }; + + botInfo(); + + static const std::int32_t ID = -1892676777; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<botInfo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BotInlineMessage: public Object { + public: + + static object_ptr<BotInlineMessage> fetch(TlBufferParser &p); +}; + +class botInlineMessageMediaAuto final : public BotInlineMessage { + public: + int32 flags_; + string message_; + array<object_ptr<MessageEntity>> entities_; + object_ptr<ReplyMarkup> reply_markup_; + + botInlineMessageMediaAuto(); + + static const std::int32_t ID = 1984755728; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInlineMessageText final : public BotInlineMessage { + public: + int32 flags_; + bool no_webpage_; + string message_; + array<object_ptr<MessageEntity>> entities_; + object_ptr<ReplyMarkup> reply_markup_; + + botInlineMessageText(); + + static const std::int32_t ID = -1937807902; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInlineMessageMediaGeo final : public BotInlineMessage { + public: + int32 flags_; + object_ptr<GeoPoint> geo_; + int32 heading_; + int32 period_; + int32 proximity_notification_radius_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { HEADING_MASK = 1, PERIOD_MASK = 2, PROXIMITY_NOTIFICATION_RADIUS_MASK = 8 }; + + botInlineMessageMediaGeo(); + + static const std::int32_t ID = 85477117; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInlineMessageMediaVenue final : public BotInlineMessage { + public: + int32 flags_; + object_ptr<GeoPoint> geo_; + string title_; + string address_; + string provider_; + string venue_id_; + string venue_type_; + object_ptr<ReplyMarkup> reply_markup_; + + botInlineMessageMediaVenue(); + + static const std::int32_t ID = -1970903652; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInlineMessageMediaContact final : public BotInlineMessage { + public: + int32 flags_; + string phone_number_; + string first_name_; + string last_name_; + string vcard_; + object_ptr<ReplyMarkup> reply_markup_; + + botInlineMessageMediaContact(); + + static const std::int32_t ID = 416402882; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInlineMessageMediaInvoice final : public BotInlineMessage { + public: + int32 flags_; + bool shipping_address_requested_; + bool test_; + string title_; + string description_; + object_ptr<WebDocument> photo_; + string currency_; + int64 total_amount_; + object_ptr<ReplyMarkup> reply_markup_; + + botInlineMessageMediaInvoice(); + + static const std::int32_t ID = 894081801; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BotInlineResult: public Object { + public: + + static object_ptr<BotInlineResult> fetch(TlBufferParser &p); +}; + +class botInlineResult final : public BotInlineResult { + public: + int32 flags_; + string id_; + string type_; + string title_; + string description_; + string url_; + object_ptr<WebDocument> thumb_; + object_ptr<WebDocument> content_; + object_ptr<BotInlineMessage> send_message_; + enum Flags : std::int32_t { TITLE_MASK = 2, DESCRIPTION_MASK = 4, URL_MASK = 8 }; + + botInlineResult(); + + static const std::int32_t ID = 295067450; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineResult> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botInlineMediaResult final : public BotInlineResult { + public: + int32 flags_; + string id_; + string type_; + object_ptr<Photo> photo_; + object_ptr<Document> document_; + string title_; + string description_; + object_ptr<BotInlineMessage> send_message_; + enum Flags : std::int32_t { TITLE_MASK = 4, DESCRIPTION_MASK = 8 }; + + botInlineMediaResult(); + + static const std::int32_t ID = 400266251; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotInlineResult> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class BotMenuButton: public Object { + public: + + static object_ptr<BotMenuButton> fetch(TlBufferParser &p); +}; + +class botMenuButtonDefault final : public BotMenuButton { + public: + + static const std::int32_t ID = 1966318984; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotMenuButton> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botMenuButtonCommands final : public BotMenuButton { + public: + + static const std::int32_t ID = 1113113093; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotMenuButton> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class botMenuButton final : public BotMenuButton { + public: + string text_; + string url_; + + botMenuButton(string const &text_, string const &url_); + + static const std::int32_t ID = -944407322; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<BotMenuButton> fetch(TlBufferParser &p); + + explicit botMenuButton(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class cdnConfig final : public Object { + public: + array<object_ptr<cdnPublicKey>> public_keys_; + + static const std::int32_t ID = 1462101002; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<cdnConfig> fetch(TlBufferParser &p); + + explicit cdnConfig(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class cdnPublicKey final : public Object { + public: + int32 dc_id_; + string public_key_; + + static const std::int32_t ID = -914167110; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<cdnPublicKey> fetch(TlBufferParser &p); + + explicit cdnPublicKey(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEvent final : public Object { + public: + int64 id_; + int32 date_; + int64 user_id_; + object_ptr<ChannelAdminLogEventAction> action_; + + static const std::int32_t ID = 531458253; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<channelAdminLogEvent> fetch(TlBufferParser &p); + + explicit channelAdminLogEvent(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChannelAdminLogEventAction: public Object { + public: + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); +}; + +class channelAdminLogEventActionChangeTitle final : public ChannelAdminLogEventAction { + public: + string prev_value_; + string new_value_; + + static const std::int32_t ID = -421545947; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeTitle(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeAbout final : public ChannelAdminLogEventAction { + public: + string prev_value_; + string new_value_; + + static const std::int32_t ID = 1427671598; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeAbout(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeUsername final : public ChannelAdminLogEventAction { + public: + string prev_value_; + string new_value_; + + static const std::int32_t ID = 1783299128; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeUsername(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangePhoto final : public ChannelAdminLogEventAction { + public: + object_ptr<Photo> prev_photo_; + object_ptr<Photo> new_photo_; + + static const std::int32_t ID = 1129042607; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangePhoto(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionToggleInvites final : public ChannelAdminLogEventAction { + public: + bool new_value_; + + static const std::int32_t ID = 460916654; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionToggleInvites(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionToggleSignatures final : public ChannelAdminLogEventAction { + public: + bool new_value_; + + static const std::int32_t ID = 648939889; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionToggleSignatures(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionUpdatePinned final : public ChannelAdminLogEventAction { + public: + object_ptr<Message> message_; + + static const std::int32_t ID = -370660328; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionUpdatePinned(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionEditMessage final : public ChannelAdminLogEventAction { + public: + object_ptr<Message> prev_message_; + object_ptr<Message> new_message_; + + static const std::int32_t ID = 1889215493; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionEditMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionDeleteMessage final : public ChannelAdminLogEventAction { + public: + object_ptr<Message> message_; + + static const std::int32_t ID = 1121994683; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionDeleteMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantJoin final : public ChannelAdminLogEventAction { + public: + + static const std::int32_t ID = 405815507; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantLeave final : public ChannelAdminLogEventAction { + public: + + static const std::int32_t ID = -124291086; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantInvite final : public ChannelAdminLogEventAction { + public: + object_ptr<ChannelParticipant> participant_; + + static const std::int32_t ID = -484690728; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantInvite(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantToggleBan final : public ChannelAdminLogEventAction { + public: + object_ptr<ChannelParticipant> prev_participant_; + object_ptr<ChannelParticipant> new_participant_; + + static const std::int32_t ID = -422036098; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantToggleBan(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantToggleAdmin final : public ChannelAdminLogEventAction { + public: + object_ptr<ChannelParticipant> prev_participant_; + object_ptr<ChannelParticipant> new_participant_; + + static const std::int32_t ID = -714643696; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantToggleAdmin(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeStickerSet final : public ChannelAdminLogEventAction { + public: + object_ptr<InputStickerSet> prev_stickerset_; + object_ptr<InputStickerSet> new_stickerset_; + + static const std::int32_t ID = -1312568665; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeStickerSet(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionTogglePreHistoryHidden final : public ChannelAdminLogEventAction { + public: + bool new_value_; + + static const std::int32_t ID = 1599903217; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionTogglePreHistoryHidden(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionDefaultBannedRights final : public ChannelAdminLogEventAction { + public: + object_ptr<chatBannedRights> prev_banned_rights_; + object_ptr<chatBannedRights> new_banned_rights_; + + static const std::int32_t ID = 771095562; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionDefaultBannedRights(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionStopPoll final : public ChannelAdminLogEventAction { + public: + object_ptr<Message> message_; + + static const std::int32_t ID = -1895328189; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionStopPoll(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeLinkedChat final : public ChannelAdminLogEventAction { + public: + int64 prev_value_; + int64 new_value_; + + static const std::int32_t ID = 84703944; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeLinkedChat(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeLocation final : public ChannelAdminLogEventAction { + public: + object_ptr<ChannelLocation> prev_value_; + object_ptr<ChannelLocation> new_value_; + + static const std::int32_t ID = 241923758; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeLocation(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionToggleSlowMode final : public ChannelAdminLogEventAction { + public: + int32 prev_value_; + int32 new_value_; + + static const std::int32_t ID = 1401984889; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionToggleSlowMode(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionStartGroupCall final : public ChannelAdminLogEventAction { + public: + object_ptr<inputGroupCall> call_; + + static const std::int32_t ID = 589338437; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionStartGroupCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionDiscardGroupCall final : public ChannelAdminLogEventAction { + public: + object_ptr<inputGroupCall> call_; + + static const std::int32_t ID = -610299584; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionDiscardGroupCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantMute final : public ChannelAdminLogEventAction { + public: + object_ptr<groupCallParticipant> participant_; + + static const std::int32_t ID = -115071790; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantMute(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantUnmute final : public ChannelAdminLogEventAction { + public: + object_ptr<groupCallParticipant> participant_; + + static const std::int32_t ID = -431740480; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantUnmute(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionToggleGroupCallSetting final : public ChannelAdminLogEventAction { + public: + bool join_muted_; + + static const std::int32_t ID = 1456906823; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionToggleGroupCallSetting(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantJoinByInvite final : public ChannelAdminLogEventAction { + public: + object_ptr<ExportedChatInvite> invite_; + + static const std::int32_t ID = 1557846647; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantJoinByInvite(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionExportedInviteDelete final : public ChannelAdminLogEventAction { + public: + object_ptr<ExportedChatInvite> invite_; + + static const std::int32_t ID = 1515256996; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionExportedInviteDelete(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionExportedInviteRevoke final : public ChannelAdminLogEventAction { + public: + object_ptr<ExportedChatInvite> invite_; + + static const std::int32_t ID = 1091179342; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionExportedInviteRevoke(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionExportedInviteEdit final : public ChannelAdminLogEventAction { + public: + object_ptr<ExportedChatInvite> prev_invite_; + object_ptr<ExportedChatInvite> new_invite_; + + static const std::int32_t ID = -384910503; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionExportedInviteEdit(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantVolume final : public ChannelAdminLogEventAction { + public: + object_ptr<groupCallParticipant> participant_; + + static const std::int32_t ID = 1048537159; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantVolume(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeHistoryTTL final : public ChannelAdminLogEventAction { + public: + int32 prev_value_; + int32 new_value_; + + static const std::int32_t ID = 1855199800; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeHistoryTTL(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionParticipantJoinByRequest final : public ChannelAdminLogEventAction { + public: + object_ptr<ExportedChatInvite> invite_; + int64 approved_by_; + + static const std::int32_t ID = -1347021750; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionParticipantJoinByRequest(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionToggleNoForwards final : public ChannelAdminLogEventAction { + public: + bool new_value_; + + static const std::int32_t ID = -886388890; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionToggleNoForwards(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionSendMessage final : public ChannelAdminLogEventAction { + public: + object_ptr<Message> message_; + + static const std::int32_t ID = 663693416; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionSendMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeAvailableReactions final : public ChannelAdminLogEventAction { + public: + object_ptr<ChatReactions> prev_value_; + object_ptr<ChatReactions> new_value_; + + static const std::int32_t ID = -1102180616; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeAvailableReactions(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionChangeUsernames final : public ChannelAdminLogEventAction { + public: + array<string> prev_value_; + array<string> new_value_; + + static const std::int32_t ID = -263212119; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionChangeUsernames(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionToggleForum final : public ChannelAdminLogEventAction { + public: + bool new_value_; + + static const std::int32_t ID = 46949251; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionToggleForum(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionCreateTopic final : public ChannelAdminLogEventAction { + public: + object_ptr<ForumTopic> topic_; + + static const std::int32_t ID = 1483767080; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionCreateTopic(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionEditTopic final : public ChannelAdminLogEventAction { + public: + object_ptr<ForumTopic> prev_topic_; + object_ptr<ForumTopic> new_topic_; + + static const std::int32_t ID = -261103096; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionEditTopic(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionDeleteTopic final : public ChannelAdminLogEventAction { + public: + object_ptr<ForumTopic> topic_; + + static const std::int32_t ID = -1374254839; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + explicit channelAdminLogEventActionDeleteTopic(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventActionPinTopic final : public ChannelAdminLogEventAction { + public: + int32 flags_; + object_ptr<ForumTopic> prev_topic_; + object_ptr<ForumTopic> new_topic_; + + channelAdminLogEventActionPinTopic(); + + static const std::int32_t ID = 1569535291; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelAdminLogEventAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelAdminLogEventsFilter final : public Object { + public: + int32 flags_; + bool join_; + bool leave_; + bool invite_; + bool ban_; + bool unban_; + bool kick_; + bool unkick_; + bool promote_; + bool demote_; + bool info_; + bool settings_; + bool pinned_; + bool edit_; + bool delete_; + bool group_call_; + bool invites_; + bool send_; + bool forums_; + enum Flags : std::int32_t { JOIN_MASK = 1, LEAVE_MASK = 2, INVITE_MASK = 4, BAN_MASK = 8, UNBAN_MASK = 16, KICK_MASK = 32, UNKICK_MASK = 64, PROMOTE_MASK = 128, DEMOTE_MASK = 256, INFO_MASK = 512, SETTINGS_MASK = 1024, PINNED_MASK = 2048, EDIT_MASK = 4096, DELETE_MASK = 8192, GROUP_CALL_MASK = 16384, INVITES_MASK = 32768, SEND_MASK = 65536, FORUMS_MASK = 131072 }; + + channelAdminLogEventsFilter(int32 flags_, bool join_, bool leave_, bool invite_, bool ban_, bool unban_, bool kick_, bool unkick_, bool promote_, bool demote_, bool info_, bool settings_, bool pinned_, bool edit_, bool delete_, bool group_call_, bool invites_, bool send_, bool forums_); + + static const std::int32_t ID = -368018716; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChannelLocation: public Object { + public: + + static object_ptr<ChannelLocation> fetch(TlBufferParser &p); +}; + +class channelLocationEmpty final : public ChannelLocation { + public: + + static const std::int32_t ID = -1078612597; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelLocation> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelLocation final : public ChannelLocation { + public: + object_ptr<GeoPoint> geo_point_; + string address_; + + static const std::int32_t ID = 547062491; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelLocation> fetch(TlBufferParser &p); + + explicit channelLocation(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChannelMessagesFilter: public Object { + public: +}; + +class channelMessagesFilterEmpty final : public ChannelMessagesFilter { + public: + + static const std::int32_t ID = -1798033689; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelMessagesFilter final : public ChannelMessagesFilter { + public: + int32 flags_; + bool exclude_new_messages_; + array<object_ptr<messageRange>> ranges_; + enum Flags : std::int32_t { EXCLUDE_NEW_MESSAGES_MASK = 2 }; + + channelMessagesFilter(int32 flags_, bool exclude_new_messages_, array<object_ptr<messageRange>> &&ranges_); + + static const std::int32_t ID = -847783593; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChannelParticipant: public Object { + public: + + static object_ptr<ChannelParticipant> fetch(TlBufferParser &p); +}; + +class channelParticipant final : public ChannelParticipant { + public: + int64 user_id_; + int32 date_; + + static const std::int32_t ID = -1072953408; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelParticipant> fetch(TlBufferParser &p); + + explicit channelParticipant(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantSelf final : public ChannelParticipant { + public: + int32 flags_; + bool via_request_; + int64 user_id_; + int64 inviter_id_; + int32 date_; + + channelParticipantSelf(); + + static const std::int32_t ID = 900251559; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelParticipant> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantCreator final : public ChannelParticipant { + public: + int32 flags_; + int64 user_id_; + object_ptr<chatAdminRights> admin_rights_; + string rank_; + enum Flags : std::int32_t { RANK_MASK = 1 }; + + channelParticipantCreator(); + + static const std::int32_t ID = 803602899; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelParticipant> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantAdmin final : public ChannelParticipant { + public: + int32 flags_; + bool can_edit_; + bool self_; + int64 user_id_; + int64 inviter_id_; + int64 promoted_by_; + int32 date_; + object_ptr<chatAdminRights> admin_rights_; + string rank_; + enum Flags : std::int32_t { INVITER_ID_MASK = 2, RANK_MASK = 4 }; + + channelParticipantAdmin(); + + static const std::int32_t ID = 885242707; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelParticipant> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantBanned final : public ChannelParticipant { + public: + int32 flags_; + bool left_; + object_ptr<Peer> peer_; + int64 kicked_by_; + int32 date_; + object_ptr<chatBannedRights> banned_rights_; + + channelParticipantBanned(); + + static const std::int32_t ID = 1844969806; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelParticipant> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantLeft final : public ChannelParticipant { + public: + object_ptr<Peer> peer_; + + static const std::int32_t ID = 453242886; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChannelParticipant> fetch(TlBufferParser &p); + + explicit channelParticipantLeft(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChannelParticipantsFilter: public Object { + public: +}; + +class channelParticipantsRecent final : public ChannelParticipantsFilter { + public: + + static const std::int32_t ID = -566281095; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantsAdmins final : public ChannelParticipantsFilter { + public: + + static const std::int32_t ID = -1268741783; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantsKicked final : public ChannelParticipantsFilter { + public: + string q_; + + explicit channelParticipantsKicked(string const &q_); + + static const std::int32_t ID = -1548400251; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantsBots final : public ChannelParticipantsFilter { + public: + + static const std::int32_t ID = -1328445861; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantsBanned final : public ChannelParticipantsFilter { + public: + string q_; + + explicit channelParticipantsBanned(string const &q_); + + static const std::int32_t ID = 338142689; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantsSearch final : public ChannelParticipantsFilter { + public: + string q_; + + explicit channelParticipantsSearch(string const &q_); + + static const std::int32_t ID = 106343499; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantsContacts final : public ChannelParticipantsFilter { + public: + string q_; + + explicit channelParticipantsContacts(string const &q_); + + static const std::int32_t ID = -1150621555; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelParticipantsMentions final : public ChannelParticipantsFilter { + public: + int32 flags_; + string q_; + int32 top_msg_id_; + enum Flags : std::int32_t { Q_MASK = 1, TOP_MSG_ID_MASK = 2 }; + + channelParticipantsMentions(int32 flags_, string const &q_, int32 top_msg_id_); + + static const std::int32_t ID = -531931925; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Chat: public Object { + public: + + static object_ptr<Chat> fetch(TlBufferParser &p); +}; + +class chatEmpty final : public Chat { + public: + int64 id_; + + static const std::int32_t ID = 693512293; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Chat> fetch(TlBufferParser &p); + + explicit chatEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chat final : public Chat { + public: + int32 flags_; + bool creator_; + bool left_; + bool deactivated_; + bool call_active_; + bool call_not_empty_; + bool noforwards_; + int64 id_; + string title_; + object_ptr<ChatPhoto> photo_; + int32 participants_count_; + int32 date_; + int32 version_; + object_ptr<InputChannel> migrated_to_; + object_ptr<chatAdminRights> admin_rights_; + object_ptr<chatBannedRights> default_banned_rights_; + + chat(); + + static const std::int32_t ID = 1103884886; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Chat> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatForbidden final : public Chat { + public: + int64 id_; + string title_; + + static const std::int32_t ID = 1704108455; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Chat> fetch(TlBufferParser &p); + + explicit chatForbidden(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channel final : public Chat { + public: + int32 flags_; + bool creator_; + bool left_; + bool broadcast_; + bool verified_; + bool megagroup_; + bool restricted_; + bool signatures_; + bool min_; + bool scam_; + bool has_link_; + bool has_geo_; + bool slowmode_enabled_; + bool call_active_; + bool call_not_empty_; + bool fake_; + bool gigagroup_; + bool noforwards_; + bool join_to_send_; + bool join_request_; + bool forum_; + int32 flags2_; + int64 id_; + int64 access_hash_; + string title_; + string username_; + object_ptr<ChatPhoto> photo_; + int32 date_; + array<object_ptr<restrictionReason>> restriction_reason_; + object_ptr<chatAdminRights> admin_rights_; + object_ptr<chatBannedRights> banned_rights_; + object_ptr<chatBannedRights> default_banned_rights_; + int32 participants_count_; + array<object_ptr<username>> usernames_; + enum Flags : std::int32_t { ACCESS_HASH_MASK = 8192, USERNAME_MASK = 64, PARTICIPANTS_COUNT_MASK = 131072 }; + + channel(); + + static const std::int32_t ID = -2094689180; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Chat> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelForbidden final : public Chat { + public: + int32 flags_; + bool broadcast_; + bool megagroup_; + int64 id_; + int64 access_hash_; + string title_; + int32 until_date_; + enum Flags : std::int32_t { UNTIL_DATE_MASK = 65536 }; + + channelForbidden(); + + channelForbidden(int32 flags_, bool broadcast_, bool megagroup_, int64 id_, int64 access_hash_, string const &title_, int32 until_date_); + + static const std::int32_t ID = 399807445; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Chat> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdminRights final : public Object { + public: + int32 flags_; + bool change_info_; + bool post_messages_; + bool edit_messages_; + bool delete_messages_; + bool ban_users_; + bool invite_users_; + bool pin_messages_; + bool add_admins_; + bool anonymous_; + bool manage_call_; + bool other_; + bool manage_topics_; + enum Flags : std::int32_t { CHANGE_INFO_MASK = 1, POST_MESSAGES_MASK = 2, EDIT_MESSAGES_MASK = 4, DELETE_MESSAGES_MASK = 8, BAN_USERS_MASK = 16, INVITE_USERS_MASK = 32, PIN_MESSAGES_MASK = 128, ADD_ADMINS_MASK = 512, ANONYMOUS_MASK = 1024, MANAGE_CALL_MASK = 2048, OTHER_MASK = 4096, MANAGE_TOPICS_MASK = 8192 }; + + chatAdminRights(); + + chatAdminRights(int32 flags_, bool change_info_, bool post_messages_, bool edit_messages_, bool delete_messages_, bool ban_users_, bool invite_users_, bool pin_messages_, bool add_admins_, bool anonymous_, bool manage_call_, bool other_, bool manage_topics_); + + static const std::int32_t ID = 1605510357; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<chatAdminRights> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatAdminWithInvites final : public Object { + public: + int64 admin_id_; + int32 invites_count_; + int32 revoked_invites_count_; + + static const std::int32_t ID = -219353309; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<chatAdminWithInvites> fetch(TlBufferParser &p); + + explicit chatAdminWithInvites(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatBannedRights final : public Object { + public: + int32 flags_; + bool view_messages_; + bool send_messages_; + bool send_media_; + bool send_stickers_; + bool send_gifs_; + bool send_games_; + bool send_inline_; + bool embed_links_; + bool send_polls_; + bool change_info_; + bool invite_users_; + bool pin_messages_; + bool manage_topics_; + int32 until_date_; + enum Flags : std::int32_t { VIEW_MESSAGES_MASK = 1, SEND_MESSAGES_MASK = 2, SEND_MEDIA_MASK = 4, SEND_STICKERS_MASK = 8, SEND_GIFS_MASK = 16, SEND_GAMES_MASK = 32, SEND_INLINE_MASK = 64, EMBED_LINKS_MASK = 128, SEND_POLLS_MASK = 256, CHANGE_INFO_MASK = 1024, INVITE_USERS_MASK = 32768, PIN_MESSAGES_MASK = 131072, MANAGE_TOPICS_MASK = 262144 }; + + chatBannedRights(); + + chatBannedRights(int32 flags_, bool view_messages_, bool send_messages_, bool send_media_, bool send_stickers_, bool send_gifs_, bool send_games_, bool send_inline_, bool embed_links_, bool send_polls_, bool change_info_, bool invite_users_, bool pin_messages_, bool manage_topics_, int32 until_date_); + + static const std::int32_t ID = -1626209256; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<chatBannedRights> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatFull: public Object { + public: + + static object_ptr<ChatFull> fetch(TlBufferParser &p); +}; + +class chatFull final : public ChatFull { + public: + int32 flags_; + bool can_set_username_; + bool has_scheduled_; + int64 id_; + string about_; + object_ptr<ChatParticipants> participants_; + object_ptr<Photo> chat_photo_; + object_ptr<peerNotifySettings> notify_settings_; + object_ptr<ExportedChatInvite> exported_invite_; + array<object_ptr<botInfo>> bot_info_; + int32 pinned_msg_id_; + int32 folder_id_; + object_ptr<inputGroupCall> call_; + int32 ttl_period_; + object_ptr<Peer> groupcall_default_join_as_; + string theme_emoticon_; + int32 requests_pending_; + array<int64> recent_requesters_; + object_ptr<ChatReactions> available_reactions_; + enum Flags : std::int32_t { PINNED_MSG_ID_MASK = 64, FOLDER_ID_MASK = 2048, TTL_PERIOD_MASK = 16384, THEME_EMOTICON_MASK = 65536, REQUESTS_PENDING_MASK = 131072 }; + + chatFull(); + + static const std::int32_t ID = -908914376; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatFull> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channelFull final : public ChatFull { + public: + int32 flags_; + bool can_view_participants_; + bool can_set_username_; + bool can_set_stickers_; + bool hidden_prehistory_; + bool can_set_location_; + bool has_scheduled_; + bool can_view_stats_; + bool blocked_; + int32 flags2_; + bool can_delete_channel_; + int64 id_; + string about_; + int32 participants_count_; + int32 admins_count_; + int32 kicked_count_; + int32 banned_count_; + int32 online_count_; + int32 read_inbox_max_id_; + int32 read_outbox_max_id_; + int32 unread_count_; + object_ptr<Photo> chat_photo_; + object_ptr<peerNotifySettings> notify_settings_; + object_ptr<ExportedChatInvite> exported_invite_; + array<object_ptr<botInfo>> bot_info_; + int64 migrated_from_chat_id_; + int32 migrated_from_max_id_; + int32 pinned_msg_id_; + object_ptr<stickerSet> stickerset_; + int32 available_min_id_; + int32 folder_id_; + int64 linked_chat_id_; + object_ptr<ChannelLocation> location_; + int32 slowmode_seconds_; + int32 slowmode_next_send_date_; + int32 stats_dc_; + int32 pts_; + object_ptr<inputGroupCall> call_; + int32 ttl_period_; + array<string> pending_suggestions_; + object_ptr<Peer> groupcall_default_join_as_; + string theme_emoticon_; + int32 requests_pending_; + array<int64> recent_requesters_; + object_ptr<Peer> default_send_as_; + object_ptr<ChatReactions> available_reactions_; + enum Flags : std::int32_t { PARTICIPANTS_COUNT_MASK = 1, ADMINS_COUNT_MASK = 2, KICKED_COUNT_MASK = 4, BANNED_COUNT_MASK = 4, ONLINE_COUNT_MASK = 8192, MIGRATED_FROM_CHAT_ID_MASK = 16, MIGRATED_FROM_MAX_ID_MASK = 16, PINNED_MSG_ID_MASK = 32, AVAILABLE_MIN_ID_MASK = 512, FOLDER_ID_MASK = 2048, LINKED_CHAT_ID_MASK = 16384, SLOWMODE_SECONDS_MASK = 131072, SLOWMODE_NEXT_SEND_DATE_MASK = 262144, STATS_DC_MASK = 4096, TTL_PERIOD_MASK = 16777216, THEME_EMOTICON_MASK = 134217728, REQUESTS_PENDING_MASK = 268435456 }; + + channelFull(); + + static const std::int32_t ID = -231385849; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatFull> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatInvite: public Object { + public: + + static object_ptr<ChatInvite> fetch(TlBufferParser &p); +}; + +class chatInviteAlready final : public ChatInvite { + public: + object_ptr<Chat> chat_; + + static const std::int32_t ID = 1516793212; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatInvite> fetch(TlBufferParser &p); + + explicit chatInviteAlready(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInvite final : public ChatInvite { + public: + int32 flags_; + bool channel_; + bool broadcast_; + bool public_; + bool megagroup_; + bool request_needed_; + string title_; + string about_; + object_ptr<Photo> photo_; + int32 participants_count_; + array<object_ptr<User>> participants_; + enum Flags : std::int32_t { ABOUT_MASK = 32 }; + + chatInvite(); + + static const std::int32_t ID = 806110401; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatInvite> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInvitePeek final : public ChatInvite { + public: + object_ptr<Chat> chat_; + int32 expires_; + + static const std::int32_t ID = 1634294960; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatInvite> fetch(TlBufferParser &p); + + explicit chatInvitePeek(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInviteImporter final : public Object { + public: + int32 flags_; + bool requested_; + int64 user_id_; + int32 date_; + string about_; + int64 approved_by_; + enum Flags : std::int32_t { ABOUT_MASK = 4, APPROVED_BY_MASK = 2 }; + + chatInviteImporter(); + + static const std::int32_t ID = -1940201511; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<chatInviteImporter> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatOnlines final : public Object { + public: + int32 onlines_; + + static const std::int32_t ID = -264117680; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<chatOnlines> fetch(TlBufferParser &p); + + explicit chatOnlines(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatParticipant: public Object { + public: + + static object_ptr<ChatParticipant> fetch(TlBufferParser &p); +}; + +class chatParticipant final : public ChatParticipant { + public: + int64 user_id_; + int64 inviter_id_; + int32 date_; + + static const std::int32_t ID = -1070776313; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatParticipant> fetch(TlBufferParser &p); + + explicit chatParticipant(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatParticipantCreator final : public ChatParticipant { + public: + int64 user_id_; + + static const std::int32_t ID = -462696732; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatParticipant> fetch(TlBufferParser &p); + + explicit chatParticipantCreator(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatParticipantAdmin final : public ChatParticipant { + public: + int64 user_id_; + int64 inviter_id_; + int32 date_; + + static const std::int32_t ID = -1600962725; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatParticipant> fetch(TlBufferParser &p); + + explicit chatParticipantAdmin(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatParticipants: public Object { + public: + + static object_ptr<ChatParticipants> fetch(TlBufferParser &p); +}; + +class chatParticipantsForbidden final : public ChatParticipants { + public: + int32 flags_; + int64 chat_id_; + object_ptr<ChatParticipant> self_participant_; + + chatParticipantsForbidden(); + + static const std::int32_t ID = -2023500831; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatParticipants> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatParticipants final : public ChatParticipants { + public: + int64 chat_id_; + array<object_ptr<ChatParticipant>> participants_; + int32 version_; + + static const std::int32_t ID = 1018991608; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatParticipants> fetch(TlBufferParser &p); + + explicit chatParticipants(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatPhoto: public Object { + public: + + static object_ptr<ChatPhoto> fetch(TlBufferParser &p); +}; + +class chatPhotoEmpty final : public ChatPhoto { + public: + + static const std::int32_t ID = 935395612; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatPhoto> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatPhoto final : public ChatPhoto { + public: + int32 flags_; + bool has_video_; + int64 photo_id_; + bytes stripped_thumb_; + int32 dc_id_; + enum Flags : std::int32_t { STRIPPED_THUMB_MASK = 2 }; + + chatPhoto(); + + static const std::int32_t ID = 476978193; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatPhoto> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ChatReactions: public Object { + public: + + static object_ptr<ChatReactions> fetch(TlBufferParser &p); +}; + +class chatReactionsNone final : public ChatReactions { + public: + + static const std::int32_t ID = -352570692; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatReactions> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReactionsAll final : public ChatReactions { + public: + int32 flags_; + bool allow_custom_; + enum Flags : std::int32_t { ALLOW_CUSTOM_MASK = 1 }; + + chatReactionsAll(); + + chatReactionsAll(int32 flags_, bool allow_custom_); + + static const std::int32_t ID = 1385335754; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatReactions> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatReactionsSome final : public ChatReactions { + public: + array<object_ptr<Reaction>> reactions_; + + explicit chatReactionsSome(array<object_ptr<Reaction>> &&reactions_); + + static const std::int32_t ID = 1713193015; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ChatReactions> fetch(TlBufferParser &p); + + explicit chatReactionsSome(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class codeSettings final : public Object { + public: + int32 flags_; + bool allow_flashcall_; + bool current_number_; + bool allow_app_hash_; + bool allow_missed_call_; + array<bytes> logout_tokens_; + enum Flags : std::int32_t { ALLOW_FLASHCALL_MASK = 1, CURRENT_NUMBER_MASK = 2, ALLOW_APP_HASH_MASK = 16, ALLOW_MISSED_CALL_MASK = 32, LOGOUT_TOKENS_MASK = 64 }; + + codeSettings(int32 flags_, bool allow_flashcall_, bool current_number_, bool allow_app_hash_, bool allow_missed_call_, array<bytes> &&logout_tokens_); + + static const std::int32_t ID = -1973130814; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class config final : public Object { + public: + int32 flags_; + bool phonecalls_enabled_; + bool default_p2p_contacts_; + bool preload_featured_stickers_; + bool ignore_phone_entities_; + bool revoke_pm_inbox_; + bool blocked_mode_; + bool pfs_enabled_; + bool force_try_ipv6_; + int32 date_; + int32 expires_; + bool test_mode_; + int32 this_dc_; + array<object_ptr<dcOption>> dc_options_; + string dc_txt_domain_name_; + int32 chat_size_max_; + int32 megagroup_size_max_; + int32 forwarded_count_max_; + int32 online_update_period_ms_; + int32 offline_blur_timeout_ms_; + int32 offline_idle_timeout_ms_; + int32 online_cloud_timeout_ms_; + int32 notify_cloud_delay_ms_; + int32 notify_default_delay_ms_; + int32 push_chat_period_ms_; + int32 push_chat_limit_; + int32 saved_gifs_limit_; + int32 edit_time_limit_; + int32 revoke_time_limit_; + int32 revoke_pm_time_limit_; + int32 rating_e_decay_; + int32 stickers_recent_limit_; + int32 stickers_faved_limit_; + int32 channels_read_media_period_; + int32 tmp_sessions_; + int32 pinned_dialogs_count_max_; + int32 pinned_infolder_count_max_; + int32 call_receive_timeout_ms_; + int32 call_ring_timeout_ms_; + int32 call_connect_timeout_ms_; + int32 call_packet_timeout_ms_; + string me_url_prefix_; + string autoupdate_url_prefix_; + string gif_search_username_; + string venue_search_username_; + string img_search_username_; + string static_maps_provider_; + int32 caption_length_max_; + int32 message_length_max_; + int32 webfile_dc_id_; + string suggested_lang_code_; + int32 lang_pack_version_; + int32 base_lang_pack_version_; + object_ptr<Reaction> reactions_default_; + enum Flags : std::int32_t { TMP_SESSIONS_MASK = 1, AUTOUPDATE_URL_PREFIX_MASK = 128, GIF_SEARCH_USERNAME_MASK = 512, VENUE_SEARCH_USERNAME_MASK = 1024, IMG_SEARCH_USERNAME_MASK = 2048, STATIC_MAPS_PROVIDER_MASK = 4096, SUGGESTED_LANG_CODE_MASK = 4, LANG_PACK_VERSION_MASK = 4, BASE_LANG_PACK_VERSION_MASK = 4 }; + + config(); + + static const std::int32_t ID = 589653676; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<config> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contact final : public Object { + public: + int64 user_id_; + bool mutual_; + + static const std::int32_t ID = 341499403; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contact> fetch(TlBufferParser &p); + + explicit contact(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contactStatus final : public Object { + public: + int64 user_id_; + object_ptr<UserStatus> status_; + + static const std::int32_t ID = 383348795; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contactStatus> fetch(TlBufferParser &p); + + explicit contactStatus(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dataJSON final : public Object { + public: + string data_; + + explicit dataJSON(string const &data_); + + static const std::int32_t ID = 2104790276; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<dataJSON> fetch(TlBufferParser &p); + + explicit dataJSON(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dcOption final : public Object { + public: + int32 flags_; + bool ipv6_; + bool media_only_; + bool tcpo_only_; + bool cdn_; + bool static_; + bool this_port_only_; + int32 id_; + string ip_address_; + int32 port_; + bytes secret_; + enum Flags : std::int32_t { SECRET_MASK = 1024 }; + + dcOption(); + + static const std::int32_t ID = 414687501; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<dcOption> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Dialog: public Object { + public: + + static object_ptr<Dialog> fetch(TlBufferParser &p); +}; + +class dialog final : public Dialog { + public: + int32 flags_; + bool pinned_; + bool unread_mark_; + object_ptr<Peer> peer_; + int32 top_message_; + int32 read_inbox_max_id_; + int32 read_outbox_max_id_; + int32 unread_count_; + int32 unread_mentions_count_; + int32 unread_reactions_count_; + object_ptr<peerNotifySettings> notify_settings_; + int32 pts_; + object_ptr<DraftMessage> draft_; + int32 folder_id_; + enum Flags : std::int32_t { PTS_MASK = 1, FOLDER_ID_MASK = 16 }; + + dialog(); + + static const std::int32_t ID = -1460809483; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Dialog> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dialogFolder final : public Dialog { + public: + int32 flags_; + bool pinned_; + object_ptr<folder> folder_; + object_ptr<Peer> peer_; + int32 top_message_; + int32 unread_muted_peers_count_; + int32 unread_unmuted_peers_count_; + int32 unread_muted_messages_count_; + int32 unread_unmuted_messages_count_; + + dialogFolder(); + + static const std::int32_t ID = 1908216652; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Dialog> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DialogFilter: public Object { + public: + + static object_ptr<DialogFilter> fetch(TlBufferParser &p); +}; + +class dialogFilter final : public DialogFilter { + public: + int32 flags_; + bool contacts_; + bool non_contacts_; + bool groups_; + bool broadcasts_; + bool bots_; + bool exclude_muted_; + bool exclude_read_; + bool exclude_archived_; + int32 id_; + string title_; + string emoticon_; + array<object_ptr<InputPeer>> pinned_peers_; + array<object_ptr<InputPeer>> include_peers_; + array<object_ptr<InputPeer>> exclude_peers_; + enum Flags : std::int32_t { CONTACTS_MASK = 1, NON_CONTACTS_MASK = 2, GROUPS_MASK = 4, BROADCASTS_MASK = 8, BOTS_MASK = 16, EXCLUDE_MUTED_MASK = 2048, EXCLUDE_READ_MASK = 4096, EXCLUDE_ARCHIVED_MASK = 8192, EMOTICON_MASK = 33554432 }; + + dialogFilter(); + + dialogFilter(int32 flags_, bool contacts_, bool non_contacts_, bool groups_, bool broadcasts_, bool bots_, bool exclude_muted_, bool exclude_read_, bool exclude_archived_, int32 id_, string const &title_, string const &emoticon_, array<object_ptr<InputPeer>> &&pinned_peers_, array<object_ptr<InputPeer>> &&include_peers_, array<object_ptr<InputPeer>> &&exclude_peers_); + + static const std::int32_t ID = 1949890536; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DialogFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dialogFilterDefault final : public DialogFilter { + public: + + static const std::int32_t ID = 909284270; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DialogFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dialogFilterSuggested final : public Object { + public: + object_ptr<DialogFilter> filter_; + string description_; + + static const std::int32_t ID = 2004110666; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<dialogFilterSuggested> fetch(TlBufferParser &p); + + explicit dialogFilterSuggested(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DialogPeer: public Object { + public: + + static object_ptr<DialogPeer> fetch(TlBufferParser &p); +}; + +class dialogPeer final : public DialogPeer { + public: + object_ptr<Peer> peer_; + + static const std::int32_t ID = -445792507; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DialogPeer> fetch(TlBufferParser &p); + + explicit dialogPeer(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class dialogPeerFolder final : public DialogPeer { + public: + int32 folder_id_; + + static const std::int32_t ID = 1363483106; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DialogPeer> fetch(TlBufferParser &p); + + explicit dialogPeerFolder(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Document: public Object { + public: + + static object_ptr<Document> fetch(TlBufferParser &p); +}; + +class documentEmpty final : public Document { + public: + int64 id_; + + static const std::int32_t ID = 922273905; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Document> fetch(TlBufferParser &p); + + explicit documentEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class document final : public Document { + public: + int32 flags_; + int64 id_; + int64 access_hash_; + bytes file_reference_; + int32 date_; + string mime_type_; + int64 size_; + array<object_ptr<PhotoSize>> thumbs_; + array<object_ptr<videoSize>> video_thumbs_; + int32 dc_id_; + array<object_ptr<DocumentAttribute>> attributes_; + + document(); + + document(int32 flags_, int64 id_, int64 access_hash_, bytes &&file_reference_, int32 date_, string const &mime_type_, int64 size_, array<object_ptr<PhotoSize>> &&thumbs_, array<object_ptr<videoSize>> &&video_thumbs_, int32 dc_id_, array<object_ptr<DocumentAttribute>> &&attributes_); + + static const std::int32_t ID = -1881881384; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Document> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DocumentAttribute: public Object { + public: + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); +}; + +class documentAttributeImageSize final : public DocumentAttribute { + public: + int32 w_; + int32 h_; + + documentAttributeImageSize(int32 w_, int32 h_); + + static const std::int32_t ID = 1815593308; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + explicit documentAttributeImageSize(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAnimated final : public DocumentAttribute { + public: + + static const std::int32_t ID = 297109817; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeSticker final : public DocumentAttribute { + public: + int32 flags_; + bool mask_; + string alt_; + object_ptr<InputStickerSet> stickerset_; + object_ptr<maskCoords> mask_coords_; + enum Flags : std::int32_t { MASK_MASK = 2, MASK_COORDS_MASK = 1 }; + + documentAttributeSticker(); + + documentAttributeSticker(int32 flags_, bool mask_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_, object_ptr<maskCoords> &&mask_coords_); + + static const std::int32_t ID = 1662637586; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeVideo final : public DocumentAttribute { + public: + int32 flags_; + bool round_message_; + bool supports_streaming_; + int32 duration_; + int32 w_; + int32 h_; + enum Flags : std::int32_t { ROUND_MESSAGE_MASK = 1, SUPPORTS_STREAMING_MASK = 2 }; + + documentAttributeVideo(); + + documentAttributeVideo(int32 flags_, bool round_message_, bool supports_streaming_, int32 duration_, int32 w_, int32 h_); + + static const std::int32_t ID = 250621158; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeAudio final : public DocumentAttribute { + public: + int32 flags_; + bool voice_; + int32 duration_; + string title_; + string performer_; + bytes waveform_; + enum Flags : std::int32_t { VOICE_MASK = 1024, TITLE_MASK = 1, PERFORMER_MASK = 2, WAVEFORM_MASK = 4 }; + + documentAttributeAudio(); + + documentAttributeAudio(int32 flags_, bool voice_, int32 duration_, string const &title_, string const &performer_, bytes &&waveform_); + + static const std::int32_t ID = -1739392570; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeFilename final : public DocumentAttribute { + public: + string file_name_; + + explicit documentAttributeFilename(string const &file_name_); + + static const std::int32_t ID = 358154344; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + explicit documentAttributeFilename(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeHasStickers final : public DocumentAttribute { + public: + + static const std::int32_t ID = -1744710921; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class documentAttributeCustomEmoji final : public DocumentAttribute { + public: + int32 flags_; + bool free_; + string alt_; + object_ptr<InputStickerSet> stickerset_; + enum Flags : std::int32_t { FREE_MASK = 1 }; + + documentAttributeCustomEmoji(); + + documentAttributeCustomEmoji(int32 flags_, bool free_, string const &alt_, object_ptr<InputStickerSet> &&stickerset_); + + static const std::int32_t ID = -48981863; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DocumentAttribute> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class DraftMessage: public Object { + public: + + static object_ptr<DraftMessage> fetch(TlBufferParser &p); +}; + +class draftMessageEmpty final : public DraftMessage { + public: + int32 flags_; + int32 date_; + enum Flags : std::int32_t { DATE_MASK = 1 }; + + draftMessageEmpty(); + + static const std::int32_t ID = 453805082; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DraftMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class draftMessage final : public DraftMessage { + public: + int32 flags_; + bool no_webpage_; + int32 reply_to_msg_id_; + string message_; + array<object_ptr<MessageEntity>> entities_; + int32 date_; + enum Flags : std::int32_t { REPLY_TO_MSG_ID_MASK = 1 }; + + draftMessage(); + + static const std::int32_t ID = -40996577; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<DraftMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmailVerification: public Object { + public: +}; + +class emailVerificationCode final : public EmailVerification { + public: + string code_; + + explicit emailVerificationCode(string const &code_); + + static const std::int32_t ID = -1842457175; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailVerificationGoogle final : public EmailVerification { + public: + string token_; + + explicit emailVerificationGoogle(string const &token_); + + static const std::int32_t ID = -611279166; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailVerificationApple final : public EmailVerification { + public: + string token_; + + explicit emailVerificationApple(string const &token_); + + static const std::int32_t ID = -1764723459; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmailVerifyPurpose: public Object { + public: +}; + +class emailVerifyPurposeLoginSetup final : public EmailVerifyPurpose { + public: + string phone_number_; + string phone_code_hash_; + + emailVerifyPurposeLoginSetup(string const &phone_number_, string const &phone_code_hash_); + + static const std::int32_t ID = 1128644211; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailVerifyPurposeLoginChange final : public EmailVerifyPurpose { + public: + + static const std::int32_t ID = 1383932651; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emailVerifyPurposePassport final : public EmailVerifyPurpose { + public: + + static const std::int32_t ID = -1141565819; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmojiKeyword: public Object { + public: + + static object_ptr<EmojiKeyword> fetch(TlBufferParser &p); +}; + +class emojiKeyword final : public EmojiKeyword { + public: + string keyword_; + array<string> emoticons_; + + static const std::int32_t ID = -709641735; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EmojiKeyword> fetch(TlBufferParser &p); + + explicit emojiKeyword(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiKeywordDeleted final : public EmojiKeyword { + public: + string keyword_; + array<string> emoticons_; + + static const std::int32_t ID = 594408994; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EmojiKeyword> fetch(TlBufferParser &p); + + explicit emojiKeywordDeleted(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiKeywordsDifference final : public Object { + public: + string lang_code_; + int32 from_version_; + int32 version_; + array<object_ptr<EmojiKeyword>> keywords_; + + static const std::int32_t ID = 1556570557; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<emojiKeywordsDifference> fetch(TlBufferParser &p); + + explicit emojiKeywordsDifference(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiLanguage final : public Object { + public: + string lang_code_; + + static const std::int32_t ID = -1275374751; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<emojiLanguage> fetch(TlBufferParser &p); + + explicit emojiLanguage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EmojiStatus: public Object { + public: + + static object_ptr<EmojiStatus> fetch(TlBufferParser &p); +}; + +class emojiStatusEmpty final : public EmojiStatus { + public: + + static const std::int32_t ID = 769727150; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EmojiStatus> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiStatus final : public EmojiStatus { + public: + int64 document_id_; + + explicit emojiStatus(int64 document_id_); + + static const std::int32_t ID = -1835310691; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EmojiStatus> fetch(TlBufferParser &p); + + explicit emojiStatus(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiStatusUntil final : public EmojiStatus { + public: + int64 document_id_; + int32 until_; + + emojiStatusUntil(int64 document_id_, int32 until_); + + static const std::int32_t ID = -97474361; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EmojiStatus> fetch(TlBufferParser &p); + + explicit emojiStatusUntil(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class emojiURL final : public Object { + public: + string url_; + + static const std::int32_t ID = -1519029347; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<emojiURL> fetch(TlBufferParser &p); + + explicit emojiURL(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EncryptedChat: public Object { + public: + + static object_ptr<EncryptedChat> fetch(TlBufferParser &p); +}; + +class encryptedChatEmpty final : public EncryptedChat { + public: + int32 id_; + + static const std::int32_t ID = -1417756512; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedChat> fetch(TlBufferParser &p); + + explicit encryptedChatEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedChatWaiting final : public EncryptedChat { + public: + int32 id_; + int64 access_hash_; + int32 date_; + int64 admin_id_; + int64 participant_id_; + + encryptedChatWaiting(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_); + + static const std::int32_t ID = 1722964307; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedChat> fetch(TlBufferParser &p); + + explicit encryptedChatWaiting(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedChatRequested final : public EncryptedChat { + public: + int32 flags_; + int32 folder_id_; + int32 id_; + int64 access_hash_; + int32 date_; + int64 admin_id_; + int64 participant_id_; + bytes g_a_; + enum Flags : std::int32_t { FOLDER_ID_MASK = 1 }; + + encryptedChatRequested(); + + encryptedChatRequested(int32 flags_, int32 folder_id_, int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_); + + static const std::int32_t ID = 1223809356; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedChat> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedChat final : public EncryptedChat { + public: + int32 id_; + int64 access_hash_; + int32 date_; + int64 admin_id_; + int64 participant_id_; + bytes g_a_or_b_; + int64 key_fingerprint_; + + encryptedChat(int32 id_, int64 access_hash_, int32 date_, int64 admin_id_, int64 participant_id_, bytes &&g_a_or_b_, int64 key_fingerprint_); + + static const std::int32_t ID = 1643173063; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedChat> fetch(TlBufferParser &p); + + explicit encryptedChat(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedChatDiscarded final : public EncryptedChat { + public: + int32 flags_; + bool history_deleted_; + int32 id_; + + encryptedChatDiscarded(); + + static const std::int32_t ID = 505183301; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedChat> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EncryptedFile: public Object { + public: + + static object_ptr<EncryptedFile> fetch(TlBufferParser &p); +}; + +class encryptedFileEmpty final : public EncryptedFile { + public: + + static const std::int32_t ID = -1038136962; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedFile> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedFile final : public EncryptedFile { + public: + int64 id_; + int64 access_hash_; + int64 size_; + int32 dc_id_; + int32 key_fingerprint_; + + static const std::int32_t ID = -1476358952; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedFile> fetch(TlBufferParser &p); + + explicit encryptedFile(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class EncryptedMessage: public Object { + public: + + static object_ptr<EncryptedMessage> fetch(TlBufferParser &p); +}; + +class encryptedMessage final : public EncryptedMessage { + public: + int64 random_id_; + int32 chat_id_; + int32 date_; + bytes bytes_; + object_ptr<EncryptedFile> file_; + + static const std::int32_t ID = -317144808; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedMessage> fetch(TlBufferParser &p); + + explicit encryptedMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class encryptedMessageService final : public EncryptedMessage { + public: + int64 random_id_; + int32 chat_id_; + int32 date_; + bytes bytes_; + + static const std::int32_t ID = 594758406; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<EncryptedMessage> fetch(TlBufferParser &p); + + explicit encryptedMessageService(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class error final : public Object { + public: + int32 code_; + string text_; + + static const std::int32_t ID = -994444869; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<error> fetch(TlBufferParser &p); + + explicit error(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ExportedChatInvite: public Object { + public: + + static object_ptr<ExportedChatInvite> fetch(TlBufferParser &p); +}; + +class chatInviteExported final : public ExportedChatInvite { + public: + int32 flags_; + bool revoked_; + bool permanent_; + bool request_needed_; + string link_; + int64 admin_id_; + int32 date_; + int32 start_date_; + int32 expire_date_; + int32 usage_limit_; + int32 usage_; + int32 requested_; + string title_; + enum Flags : std::int32_t { START_DATE_MASK = 16, EXPIRE_DATE_MASK = 2, USAGE_LIMIT_MASK = 4, USAGE_MASK = 8, REQUESTED_MASK = 128, TITLE_MASK = 256 }; + + chatInviteExported(); + + static const std::int32_t ID = 179611673; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ExportedChatInvite> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class chatInvitePublicJoinRequests final : public ExportedChatInvite { + public: + + static const std::int32_t ID = -317687113; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ExportedChatInvite> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class exportedMessageLink final : public Object { + public: + string link_; + string html_; + + static const std::int32_t ID = 1571494644; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<exportedMessageLink> fetch(TlBufferParser &p); + + explicit exportedMessageLink(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class fileHash final : public Object { + public: + int64 offset_; + int32 limit_; + bytes hash_; + + static const std::int32_t ID = -207944868; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<fileHash> fetch(TlBufferParser &p); + + explicit fileHash(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class folder final : public Object { + public: + int32 flags_; + bool autofill_new_broadcasts_; + bool autofill_public_groups_; + bool autofill_new_correspondents_; + int32 id_; + string title_; + object_ptr<ChatPhoto> photo_; + + folder(); + + static const std::int32_t ID = -11252123; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<folder> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class folderPeer final : public Object { + public: + object_ptr<Peer> peer_; + int32 folder_id_; + + static const std::int32_t ID = -373643672; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<folderPeer> fetch(TlBufferParser &p); + + explicit folderPeer(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ForumTopic: public Object { + public: + + static object_ptr<ForumTopic> fetch(TlBufferParser &p); +}; + +class forumTopicDeleted final : public ForumTopic { + public: + int32 id_; + + static const std::int32_t ID = 37687451; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ForumTopic> fetch(TlBufferParser &p); + + explicit forumTopicDeleted(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class forumTopic final : public ForumTopic { + public: + int32 flags_; + bool my_; + bool closed_; + bool pinned_; + int32 id_; + int32 date_; + string title_; + int32 icon_color_; + int64 icon_emoji_id_; + int32 top_message_; + int32 read_inbox_max_id_; + int32 read_outbox_max_id_; + int32 unread_count_; + int32 unread_mentions_count_; + int32 unread_reactions_count_; + object_ptr<Peer> from_id_; + object_ptr<peerNotifySettings> notify_settings_; + object_ptr<DraftMessage> draft_; + enum Flags : std::int32_t { ICON_EMOJI_ID_MASK = 1 }; + + forumTopic(); + + static const std::int32_t ID = 1903173033; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ForumTopic> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class game final : public Object { + public: + int32 flags_; + int64 id_; + int64 access_hash_; + string short_name_; + string title_; + string description_; + object_ptr<Photo> photo_; + object_ptr<Document> document_; + + game(); + + static const std::int32_t ID = -1107729093; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<game> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class GeoPoint: public Object { + public: + + static object_ptr<GeoPoint> fetch(TlBufferParser &p); +}; + +class geoPointEmpty final : public GeoPoint { + public: + + static const std::int32_t ID = 286776671; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<GeoPoint> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class geoPoint final : public GeoPoint { + public: + int32 flags_; + double long_; + double lat_; + int64 access_hash_; + int32 accuracy_radius_; + enum Flags : std::int32_t { ACCURACY_RADIUS_MASK = 1 }; + + geoPoint(); + + static const std::int32_t ID = -1297942941; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<GeoPoint> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class globalPrivacySettings final : public Object { + public: + int32 flags_; + bool archive_and_mute_new_noncontact_peers_; + enum Flags : std::int32_t { ARCHIVE_AND_MUTE_NEW_NONCONTACT_PEERS_MASK = 1 }; + + globalPrivacySettings(); + + globalPrivacySettings(int32 flags_, bool archive_and_mute_new_noncontact_peers_); + + static const std::int32_t ID = -1096616924; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<globalPrivacySettings> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class GroupCall: public Object { + public: + + static object_ptr<GroupCall> fetch(TlBufferParser &p); +}; + +class groupCallDiscarded final : public GroupCall { + public: + int64 id_; + int64 access_hash_; + int32 duration_; + + static const std::int32_t ID = 2004925620; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<GroupCall> fetch(TlBufferParser &p); + + explicit groupCallDiscarded(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCall final : public GroupCall { + public: + int32 flags_; + bool join_muted_; + bool can_change_join_muted_; + bool join_date_asc_; + bool schedule_start_subscribed_; + bool can_start_video_; + bool record_video_active_; + bool rtmp_stream_; + bool listeners_hidden_; + int64 id_; + int64 access_hash_; + int32 participants_count_; + string title_; + int32 stream_dc_id_; + int32 record_start_date_; + int32 schedule_date_; + int32 unmuted_video_count_; + int32 unmuted_video_limit_; + int32 version_; + enum Flags : std::int32_t { TITLE_MASK = 8, STREAM_DC_ID_MASK = 16, RECORD_START_DATE_MASK = 32, SCHEDULE_DATE_MASK = 128, UNMUTED_VIDEO_COUNT_MASK = 1024 }; + + groupCall(); + + static const std::int32_t ID = -711498484; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<GroupCall> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallParticipant final : public Object { + public: + int32 flags_; + bool muted_; + bool left_; + bool can_self_unmute_; + bool just_joined_; + bool versioned_; + bool min_; + bool muted_by_you_; + bool volume_by_admin_; + bool self_; + bool video_joined_; + object_ptr<Peer> peer_; + int32 date_; + int32 active_date_; + int32 source_; + int32 volume_; + string about_; + int64 raise_hand_rating_; + object_ptr<groupCallParticipantVideo> video_; + object_ptr<groupCallParticipantVideo> presentation_; + enum Flags : std::int32_t { ACTIVE_DATE_MASK = 8, VOLUME_MASK = 128, ABOUT_MASK = 2048, RAISE_HAND_RATING_MASK = 8192 }; + + groupCallParticipant(); + + static const std::int32_t ID = -341428482; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<groupCallParticipant> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallParticipantVideo final : public Object { + public: + int32 flags_; + bool paused_; + string endpoint_; + array<object_ptr<groupCallParticipantVideoSourceGroup>> source_groups_; + int32 audio_source_; + enum Flags : std::int32_t { AUDIO_SOURCE_MASK = 2 }; + + groupCallParticipantVideo(); + + static const std::int32_t ID = 1735736008; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<groupCallParticipantVideo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallParticipantVideoSourceGroup final : public Object { + public: + string semantics_; + array<int32> sources_; + + static const std::int32_t ID = -592373577; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<groupCallParticipantVideoSourceGroup> fetch(TlBufferParser &p); + + explicit groupCallParticipantVideoSourceGroup(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class groupCallStreamChannel final : public Object { + public: + int32 channel_; + int32 scale_; + int64 last_timestamp_ms_; + + static const std::int32_t ID = -2132064081; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<groupCallStreamChannel> fetch(TlBufferParser &p); + + explicit groupCallStreamChannel(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class highScore final : public Object { + public: + int32 pos_; + int64 user_id_; + int32 score_; + + static const std::int32_t ID = 1940093419; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<highScore> fetch(TlBufferParser &p); + + explicit highScore(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class importedContact final : public Object { + public: + int64 user_id_; + int64 client_id_; + + static const std::int32_t ID = -1052885936; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<importedContact> fetch(TlBufferParser &p); + + explicit importedContact(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineBotSwitchPM final : public Object { + public: + string text_; + string start_param_; + + inlineBotSwitchPM(string const &text_, string const &start_param_); + + static const std::int32_t ID = 1008755359; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<inlineBotSwitchPM> fetch(TlBufferParser &p); + + explicit inlineBotSwitchPM(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InlineQueryPeerType: public Object { + public: + + static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p); +}; + +class inlineQueryPeerTypeSameBotPM final : public InlineQueryPeerType { + public: + + static const std::int32_t ID = 813821341; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryPeerTypePM final : public InlineQueryPeerType { + public: + + static const std::int32_t ID = -2093215828; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryPeerTypeChat final : public InlineQueryPeerType { + public: + + static const std::int32_t ID = -681130742; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryPeerTypeMegagroup final : public InlineQueryPeerType { + public: + + static const std::int32_t ID = 1589952067; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inlineQueryPeerTypeBroadcast final : public InlineQueryPeerType { + public: + + static const std::int32_t ID = 1664413338; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InlineQueryPeerType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputAppEvent final : public Object { + public: + double time_; + string type_; + int64 peer_; + object_ptr<JSONValue> data_; + + inputAppEvent(double time_, string const &type_, int64 peer_, object_ptr<JSONValue> &&data_); + + static const std::int32_t ID = 488313413; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<inputAppEvent> fetch(TlBufferParser &p); + + explicit inputAppEvent(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputBotInlineMessage: public Object { + public: +}; + +class inputBotInlineMessageMediaAuto final : public InputBotInlineMessage { + public: + int32 flags_; + string message_; + array<object_ptr<MessageEntity>> entities_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { ENTITIES_MASK = 2, REPLY_MARKUP_MASK = 4 }; + + inputBotInlineMessageMediaAuto(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = 864077702; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineMessageText final : public InputBotInlineMessage { + public: + int32 flags_; + bool no_webpage_; + string message_; + array<object_ptr<MessageEntity>> entities_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { NO_WEBPAGE_MASK = 1, ENTITIES_MASK = 2, REPLY_MARKUP_MASK = 4 }; + + inputBotInlineMessageText(int32 flags_, bool no_webpage_, string const &message_, array<object_ptr<MessageEntity>> &&entities_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = 1036876423; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineMessageMediaGeo final : public InputBotInlineMessage { + public: + int32 flags_; + object_ptr<InputGeoPoint> geo_point_; + int32 heading_; + int32 period_; + int32 proximity_notification_radius_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { HEADING_MASK = 1, PERIOD_MASK = 2, PROXIMITY_NOTIFICATION_RADIUS_MASK = 8, REPLY_MARKUP_MASK = 4 }; + + inputBotInlineMessageMediaGeo(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = -1768777083; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineMessageMediaVenue final : public InputBotInlineMessage { + public: + int32 flags_; + object_ptr<InputGeoPoint> geo_point_; + string title_; + string address_; + string provider_; + string venue_id_; + string venue_type_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { REPLY_MARKUP_MASK = 4 }; + + inputBotInlineMessageMediaVenue(int32 flags_, object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = 1098628881; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineMessageMediaContact final : public InputBotInlineMessage { + public: + int32 flags_; + string phone_number_; + string first_name_; + string last_name_; + string vcard_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { REPLY_MARKUP_MASK = 4 }; + + inputBotInlineMessageMediaContact(int32 flags_, string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = -1494368259; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineMessageGame final : public InputBotInlineMessage { + public: + int32 flags_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { REPLY_MARKUP_MASK = 4 }; + + inputBotInlineMessageGame(int32 flags_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = 1262639204; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineMessageMediaInvoice final : public InputBotInlineMessage { + public: + int32 flags_; + string title_; + string description_; + object_ptr<inputWebDocument> photo_; + object_ptr<invoice> invoice_; + bytes payload_; + string provider_; + object_ptr<dataJSON> provider_data_; + object_ptr<ReplyMarkup> reply_markup_; + enum Flags : std::int32_t { PHOTO_MASK = 1, REPLY_MARKUP_MASK = 4 }; + + inputBotInlineMessageMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, object_ptr<ReplyMarkup> &&reply_markup_); + + static const std::int32_t ID = -672693723; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputBotInlineMessageID: public Object { + public: + + static object_ptr<InputBotInlineMessageID> fetch(TlBufferParser &p); +}; + +class inputBotInlineMessageID final : public InputBotInlineMessageID { + public: + int32 dc_id_; + int64 id_; + int64 access_hash_; + + inputBotInlineMessageID(int32 dc_id_, int64 id_, int64 access_hash_); + + static const std::int32_t ID = -1995686519; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputBotInlineMessageID> fetch(TlBufferParser &p); + + explicit inputBotInlineMessageID(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineMessageID64 final : public InputBotInlineMessageID { + public: + int32 dc_id_; + int64 owner_id_; + int32 id_; + int64 access_hash_; + + inputBotInlineMessageID64(int32 dc_id_, int64 owner_id_, int32 id_, int64 access_hash_); + + static const std::int32_t ID = -1227287081; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputBotInlineMessageID> fetch(TlBufferParser &p); + + explicit inputBotInlineMessageID64(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputBotInlineResult: public Object { + public: +}; + +class inputBotInlineResult final : public InputBotInlineResult { + public: + int32 flags_; + string id_; + string type_; + string title_; + string description_; + string url_; + object_ptr<inputWebDocument> thumb_; + object_ptr<inputWebDocument> content_; + object_ptr<InputBotInlineMessage> send_message_; + enum Flags : std::int32_t { TITLE_MASK = 2, DESCRIPTION_MASK = 4, URL_MASK = 8, THUMB_MASK = 16, CONTENT_MASK = 32 }; + + inputBotInlineResult(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, string const &url_, object_ptr<inputWebDocument> &&thumb_, object_ptr<inputWebDocument> &&content_, object_ptr<InputBotInlineMessage> &&send_message_); + + static const std::int32_t ID = -2000710887; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineResultPhoto final : public InputBotInlineResult { + public: + string id_; + string type_; + object_ptr<InputPhoto> photo_; + object_ptr<InputBotInlineMessage> send_message_; + + inputBotInlineResultPhoto(string const &id_, string const &type_, object_ptr<InputPhoto> &&photo_, object_ptr<InputBotInlineMessage> &&send_message_); + + static const std::int32_t ID = -1462213465; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineResultDocument final : public InputBotInlineResult { + public: + int32 flags_; + string id_; + string type_; + string title_; + string description_; + object_ptr<InputDocument> document_; + object_ptr<InputBotInlineMessage> send_message_; + enum Flags : std::int32_t { TITLE_MASK = 2, DESCRIPTION_MASK = 4 }; + + inputBotInlineResultDocument(int32 flags_, string const &id_, string const &type_, string const &title_, string const &description_, object_ptr<InputDocument> &&document_, object_ptr<InputBotInlineMessage> &&send_message_); + + static const std::int32_t ID = -459324; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputBotInlineResultGame final : public InputBotInlineResult { + public: + string id_; + string short_name_; + object_ptr<InputBotInlineMessage> send_message_; + + inputBotInlineResultGame(string const &id_, string const &short_name_, object_ptr<InputBotInlineMessage> &&send_message_); + + static const std::int32_t ID = 1336154098; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputChannel: public Object { + public: + + static object_ptr<InputChannel> fetch(TlBufferParser &p); +}; + +class inputChannelEmpty final : public InputChannel { + public: + + static const std::int32_t ID = -292807034; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputChannel> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputChannel final : public InputChannel { + public: + int64 channel_id_; + int64 access_hash_; + + inputChannel(int64 channel_id_, int64 access_hash_); + + static const std::int32_t ID = -212145112; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputChannel> fetch(TlBufferParser &p); + + explicit inputChannel(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputChannelFromMessage final : public InputChannel { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + int64 channel_id_; + + inputChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_); + + static const std::int32_t ID = 1536380829; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputChannel> fetch(TlBufferParser &p); + + explicit inputChannelFromMessage(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputChatPhoto: public Object { + public: +}; + +class inputChatPhotoEmpty final : public InputChatPhoto { + public: + + static const std::int32_t ID = 480546647; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputChatUploadedPhoto final : public InputChatPhoto { + public: + int32 flags_; + object_ptr<InputFile> file_; + object_ptr<InputFile> video_; + double video_start_ts_; + enum Flags : std::int32_t { FILE_MASK = 1, VIDEO_MASK = 2, VIDEO_START_TS_MASK = 4 }; + + inputChatUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_); + + static const std::int32_t ID = -968723890; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputChatPhoto final : public InputChatPhoto { + public: + object_ptr<InputPhoto> id_; + + explicit inputChatPhoto(object_ptr<InputPhoto> &&id_); + + static const std::int32_t ID = -1991004873; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputCheckPasswordSRP: public Object { + public: +}; + +class inputCheckPasswordEmpty final : public InputCheckPasswordSRP { + public: + + static const std::int32_t ID = -1736378792; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputCheckPasswordSRP final : public InputCheckPasswordSRP { + public: + int64 srp_id_; + bytes A_; + bytes M1_; + + inputCheckPasswordSRP(int64 srp_id_, bytes &&A_, bytes &&M1_); + + static const std::int32_t ID = -763367294; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputClientProxy final : public Object { + public: + string address_; + int32 port_; + + static const std::int32_t ID = 1968737087; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPhoneContact final : public Object { + public: + int64 client_id_; + string phone_; + string first_name_; + string last_name_; + + inputPhoneContact(int64 client_id_, string const &phone_, string const &first_name_, string const &last_name_); + + static const std::int32_t ID = -208488460; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputDialogPeer: public Object { + public: +}; + +class inputDialogPeer final : public InputDialogPeer { + public: + object_ptr<InputPeer> peer_; + + explicit inputDialogPeer(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = -55902537; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputDialogPeerFolder final : public InputDialogPeer { + public: + int32 folder_id_; + + explicit inputDialogPeerFolder(int32 folder_id_); + + static const std::int32_t ID = 1684014375; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputDocument: public Object { + public: +}; + +class inputDocumentEmpty final : public InputDocument { + public: + + static const std::int32_t ID = 1928391342; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputDocument final : public InputDocument { + public: + int64 id_; + int64 access_hash_; + bytes file_reference_; + + inputDocument(int64 id_, int64 access_hash_, bytes &&file_reference_); + + static const std::int32_t ID = 448771445; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputEncryptedChat final : public Object { + public: + int32 chat_id_; + int64 access_hash_; + + inputEncryptedChat(int32 chat_id_, int64 access_hash_); + + static const std::int32_t ID = -247351839; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputEncryptedFile: public Object { + public: +}; + +class inputEncryptedFileEmpty final : public InputEncryptedFile { + public: + + static const std::int32_t ID = 406307684; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputEncryptedFileUploaded final : public InputEncryptedFile { + public: + int64 id_; + int32 parts_; + string md5_checksum_; + int32 key_fingerprint_; + + inputEncryptedFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, int32 key_fingerprint_); + + static const std::int32_t ID = 1690108678; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputEncryptedFile final : public InputEncryptedFile { + public: + int64 id_; + int64 access_hash_; + + inputEncryptedFile(int64 id_, int64 access_hash_); + + static const std::int32_t ID = 1511503333; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputEncryptedFileBigUploaded final : public InputEncryptedFile { + public: + int64 id_; + int32 parts_; + int32 key_fingerprint_; + + inputEncryptedFileBigUploaded(int64 id_, int32 parts_, int32 key_fingerprint_); + + static const std::int32_t ID = 767652808; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputFile: public Object { + public: +}; + +class inputFile final : public InputFile { + public: + int64 id_; + int32 parts_; + string name_; + string md5_checksum_; + + inputFile(int64 id_, int32 parts_, string const &name_, string const &md5_checksum_); + + static const std::int32_t ID = -181407105; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputFileBig final : public InputFile { + public: + int64 id_; + int32 parts_; + string name_; + + inputFileBig(int64 id_, int32 parts_, string const &name_); + + static const std::int32_t ID = -95482955; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputFileLocation: public Object { + public: +}; + +class inputPeerPhotoFileLocationLegacy final : public InputFileLocation { + public: + int32 flags_; + bool big_; + object_ptr<InputPeer> peer_; + int64 volume_id_; + int32 local_id_; + enum Flags : std::int32_t { BIG_MASK = 1 }; + + inputPeerPhotoFileLocationLegacy(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 volume_id_, int32 local_id_); + + static const std::int32_t ID = 668375447; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetThumbLegacy final : public InputFileLocation { + public: + object_ptr<InputStickerSet> stickerset_; + int64 volume_id_; + int32 local_id_; + + inputStickerSetThumbLegacy(object_ptr<InputStickerSet> &&stickerset_, int64 volume_id_, int32 local_id_); + + static const std::int32_t ID = 230353641; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputFileLocation final : public InputFileLocation { + public: + int64 volume_id_; + int32 local_id_; + int64 secret_; + bytes file_reference_; + + inputFileLocation(int64 volume_id_, int32 local_id_, int64 secret_, bytes &&file_reference_); + + static const std::int32_t ID = -539317279; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputEncryptedFileLocation final : public InputFileLocation { + public: + int64 id_; + int64 access_hash_; + + inputEncryptedFileLocation(int64 id_, int64 access_hash_); + + static const std::int32_t ID = -182231723; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputDocumentFileLocation final : public InputFileLocation { + public: + int64 id_; + int64 access_hash_; + bytes file_reference_; + string thumb_size_; + + inputDocumentFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_); + + static const std::int32_t ID = -1160743548; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputSecureFileLocation final : public InputFileLocation { + public: + int64 id_; + int64 access_hash_; + + inputSecureFileLocation(int64 id_, int64 access_hash_); + + static const std::int32_t ID = -876089816; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputTakeoutFileLocation final : public InputFileLocation { + public: + + static const std::int32_t ID = 700340377; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPhotoFileLocation final : public InputFileLocation { + public: + int64 id_; + int64 access_hash_; + bytes file_reference_; + string thumb_size_; + + inputPhotoFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, string const &thumb_size_); + + static const std::int32_t ID = 1075322878; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPhotoLegacyFileLocation final : public InputFileLocation { + public: + int64 id_; + int64 access_hash_; + bytes file_reference_; + int64 volume_id_; + int32 local_id_; + int64 secret_; + + inputPhotoLegacyFileLocation(int64 id_, int64 access_hash_, bytes &&file_reference_, int64 volume_id_, int32 local_id_, int64 secret_); + + static const std::int32_t ID = -667654413; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerPhotoFileLocation final : public InputFileLocation { + public: + int32 flags_; + bool big_; + object_ptr<InputPeer> peer_; + int64 photo_id_; + enum Flags : std::int32_t { BIG_MASK = 1 }; + + inputPeerPhotoFileLocation(int32 flags_, bool big_, object_ptr<InputPeer> &&peer_, int64 photo_id_); + + static const std::int32_t ID = 925204121; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetThumb final : public InputFileLocation { + public: + object_ptr<InputStickerSet> stickerset_; + int32 thumb_version_; + + inputStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, int32 thumb_version_); + + static const std::int32_t ID = -1652231205; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputGroupCallStream final : public InputFileLocation { + public: + int32 flags_; + object_ptr<inputGroupCall> call_; + int64 time_ms_; + int32 scale_; + int32 video_channel_; + int32 video_quality_; + enum Flags : std::int32_t { VIDEO_CHANNEL_MASK = 1, VIDEO_QUALITY_MASK = 1 }; + + inputGroupCallStream(int32 flags_, object_ptr<inputGroupCall> &&call_, int64 time_ms_, int32 scale_, int32 video_channel_, int32 video_quality_); + + static const std::int32_t ID = 93890858; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputFolderPeer final : public Object { + public: + object_ptr<InputPeer> peer_; + int32 folder_id_; + + inputFolderPeer(object_ptr<InputPeer> &&peer_, int32 folder_id_); + + static const std::int32_t ID = -70073706; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputGame: public Object { + public: +}; + +class inputGameID final : public InputGame { + public: + int64 id_; + int64 access_hash_; + + inputGameID(int64 id_, int64 access_hash_); + + static const std::int32_t ID = 53231223; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputGameShortName final : public InputGame { + public: + object_ptr<InputUser> bot_id_; + string short_name_; + + inputGameShortName(object_ptr<InputUser> &&bot_id_, string const &short_name_); + + static const std::int32_t ID = -1020139510; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputGeoPoint: public Object { + public: +}; + +class inputGeoPointEmpty final : public InputGeoPoint { + public: + + static const std::int32_t ID = -457104426; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputGeoPoint final : public InputGeoPoint { + public: + int32 flags_; + double lat_; + double long_; + int32 accuracy_radius_; + enum Flags : std::int32_t { ACCURACY_RADIUS_MASK = 1 }; + + inputGeoPoint(int32 flags_, double lat_, double long_, int32 accuracy_radius_); + + static const std::int32_t ID = 1210199983; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputGroupCall final : public Object { + public: + int64 id_; + int64 access_hash_; + + inputGroupCall(int64 id_, int64 access_hash_); + + static const std::int32_t ID = -659913713; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<inputGroupCall> fetch(TlBufferParser &p); + + explicit inputGroupCall(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputInvoice: public Object { + public: +}; + +class inputInvoiceMessage final : public InputInvoice { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + + inputInvoiceMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_); + + static const std::int32_t ID = -977967015; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputInvoiceSlug final : public InputInvoice { + public: + string slug_; + + explicit inputInvoiceSlug(string const &slug_); + + static const std::int32_t ID = -1020867857; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputMedia: public Object { + public: +}; + +class inputMediaEmpty final : public InputMedia { + public: + + static const std::int32_t ID = -1771768449; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaUploadedPhoto final : public InputMedia { + public: + int32 flags_; + object_ptr<InputFile> file_; + array<object_ptr<InputDocument>> stickers_; + int32 ttl_seconds_; + enum Flags : std::int32_t { STICKERS_MASK = 1, TTL_SECONDS_MASK = 2 }; + + inputMediaUploadedPhoto(int32 flags_, object_ptr<InputFile> &&file_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_); + + static const std::int32_t ID = 505969924; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaPhoto final : public InputMedia { + public: + int32 flags_; + object_ptr<InputPhoto> id_; + int32 ttl_seconds_; + enum Flags : std::int32_t { TTL_SECONDS_MASK = 1 }; + + inputMediaPhoto(int32 flags_, object_ptr<InputPhoto> &&id_, int32 ttl_seconds_); + + static const std::int32_t ID = -1279654347; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaGeoPoint final : public InputMedia { + public: + object_ptr<InputGeoPoint> geo_point_; + + explicit inputMediaGeoPoint(object_ptr<InputGeoPoint> &&geo_point_); + + static const std::int32_t ID = -104578748; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaContact final : public InputMedia { + public: + string phone_number_; + string first_name_; + string last_name_; + string vcard_; + + inputMediaContact(string const &phone_number_, string const &first_name_, string const &last_name_, string const &vcard_); + + static const std::int32_t ID = -122978821; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaUploadedDocument final : public InputMedia { + public: + int32 flags_; + bool nosound_video_; + bool force_file_; + object_ptr<InputFile> file_; + object_ptr<InputFile> thumb_; + string mime_type_; + array<object_ptr<DocumentAttribute>> attributes_; + array<object_ptr<InputDocument>> stickers_; + int32 ttl_seconds_; + enum Flags : std::int32_t { NOSOUND_VIDEO_MASK = 8, FORCE_FILE_MASK = 16, THUMB_MASK = 4, STICKERS_MASK = 1, TTL_SECONDS_MASK = 2 }; + + inputMediaUploadedDocument(int32 flags_, bool nosound_video_, bool force_file_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_, array<object_ptr<InputDocument>> &&stickers_, int32 ttl_seconds_); + + static const std::int32_t ID = 1530447553; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaDocument final : public InputMedia { + public: + int32 flags_; + object_ptr<InputDocument> id_; + int32 ttl_seconds_; + string query_; + enum Flags : std::int32_t { TTL_SECONDS_MASK = 1, QUERY_MASK = 2 }; + + inputMediaDocument(int32 flags_, object_ptr<InputDocument> &&id_, int32 ttl_seconds_, string const &query_); + + static const std::int32_t ID = 860303448; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaVenue final : public InputMedia { + public: + object_ptr<InputGeoPoint> geo_point_; + string title_; + string address_; + string provider_; + string venue_id_; + string venue_type_; + + inputMediaVenue(object_ptr<InputGeoPoint> &&geo_point_, string const &title_, string const &address_, string const &provider_, string const &venue_id_, string const &venue_type_); + + static const std::int32_t ID = -1052959727; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaPhotoExternal final : public InputMedia { + public: + int32 flags_; + string url_; + int32 ttl_seconds_; + enum Flags : std::int32_t { TTL_SECONDS_MASK = 1 }; + + inputMediaPhotoExternal(int32 flags_, string const &url_, int32 ttl_seconds_); + + static const std::int32_t ID = -440664550; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaDocumentExternal final : public InputMedia { + public: + int32 flags_; + string url_; + int32 ttl_seconds_; + enum Flags : std::int32_t { TTL_SECONDS_MASK = 1 }; + + inputMediaDocumentExternal(int32 flags_, string const &url_, int32 ttl_seconds_); + + static const std::int32_t ID = -78455655; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaGame final : public InputMedia { + public: + object_ptr<InputGame> id_; + + explicit inputMediaGame(object_ptr<InputGame> &&id_); + + static const std::int32_t ID = -750828557; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaInvoice final : public InputMedia { + public: + int32 flags_; + string title_; + string description_; + object_ptr<inputWebDocument> photo_; + object_ptr<invoice> invoice_; + bytes payload_; + string provider_; + object_ptr<dataJSON> provider_data_; + string start_param_; + object_ptr<InputMedia> extended_media_; + enum Flags : std::int32_t { PHOTO_MASK = 1, START_PARAM_MASK = 2, EXTENDED_MEDIA_MASK = 4 }; + + inputMediaInvoice(int32 flags_, string const &title_, string const &description_, object_ptr<inputWebDocument> &&photo_, object_ptr<invoice> &&invoice_, bytes &&payload_, string const &provider_, object_ptr<dataJSON> &&provider_data_, string const &start_param_, object_ptr<InputMedia> &&extended_media_); + + static const std::int32_t ID = -1900697899; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaGeoLive final : public InputMedia { + public: + int32 flags_; + bool stopped_; + object_ptr<InputGeoPoint> geo_point_; + int32 heading_; + int32 period_; + int32 proximity_notification_radius_; + enum Flags : std::int32_t { STOPPED_MASK = 1, HEADING_MASK = 4, PERIOD_MASK = 2, PROXIMITY_NOTIFICATION_RADIUS_MASK = 8 }; + + inputMediaGeoLive(int32 flags_, bool stopped_, object_ptr<InputGeoPoint> &&geo_point_, int32 heading_, int32 period_, int32 proximity_notification_radius_); + + static const std::int32_t ID = -1759532989; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaPoll final : public InputMedia { + public: + int32 flags_; + object_ptr<poll> poll_; + array<bytes> correct_answers_; + string solution_; + array<object_ptr<MessageEntity>> solution_entities_; + enum Flags : std::int32_t { CORRECT_ANSWERS_MASK = 1, SOLUTION_MASK = 2, SOLUTION_ENTITIES_MASK = 2 }; + + inputMediaPoll(int32 flags_, object_ptr<poll> &&poll_, array<bytes> &&correct_answers_, string const &solution_, array<object_ptr<MessageEntity>> &&solution_entities_); + + static const std::int32_t ID = 261416433; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMediaDice final : public InputMedia { + public: + string emoticon_; + + explicit inputMediaDice(string const &emoticon_); + + static const std::int32_t ID = -428884101; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputMessage: public Object { + public: +}; + +class inputMessageID final : public InputMessage { + public: + int32 id_; + + explicit inputMessageID(int32 id_); + + static const std::int32_t ID = -1502174430; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageReplyTo final : public InputMessage { + public: + int32 id_; + + explicit inputMessageReplyTo(int32 id_); + + static const std::int32_t ID = -1160215659; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagePinned final : public InputMessage { + public: + + static const std::int32_t ID = -2037963464; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageCallbackQuery final : public InputMessage { + public: + int32 id_; + int64 query_id_; + + inputMessageCallbackQuery(int32 id_, int64 query_id_); + + static const std::int32_t ID = -1392895362; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputNotifyPeer: public Object { + public: +}; + +class inputNotifyPeer final : public InputNotifyPeer { + public: + object_ptr<InputPeer> peer_; + + explicit inputNotifyPeer(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = -1195615476; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputNotifyUsers final : public InputNotifyPeer { + public: + + static const std::int32_t ID = 423314455; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputNotifyChats final : public InputNotifyPeer { + public: + + static const std::int32_t ID = 1251338318; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputNotifyBroadcasts final : public InputNotifyPeer { + public: + + static const std::int32_t ID = -1311015810; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputNotifyForumTopic final : public InputNotifyPeer { + public: + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + + inputNotifyForumTopic(object_ptr<InputPeer> &&peer_, int32 top_msg_id_); + + static const std::int32_t ID = 1548122514; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputPaymentCredentials: public Object { + public: +}; + +class inputPaymentCredentialsSaved final : public InputPaymentCredentials { + public: + string id_; + bytes tmp_password_; + + inputPaymentCredentialsSaved(string const &id_, bytes &&tmp_password_); + + static const std::int32_t ID = -1056001329; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPaymentCredentials final : public InputPaymentCredentials { + public: + int32 flags_; + bool save_; + object_ptr<dataJSON> data_; + enum Flags : std::int32_t { SAVE_MASK = 1 }; + + inputPaymentCredentials(int32 flags_, bool save_, object_ptr<dataJSON> &&data_); + + static const std::int32_t ID = 873977640; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPaymentCredentialsApplePay final : public InputPaymentCredentials { + public: + object_ptr<dataJSON> payment_data_; + + explicit inputPaymentCredentialsApplePay(object_ptr<dataJSON> &&payment_data_); + + static const std::int32_t ID = 178373535; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPaymentCredentialsGooglePay final : public InputPaymentCredentials { + public: + object_ptr<dataJSON> payment_token_; + + explicit inputPaymentCredentialsGooglePay(object_ptr<dataJSON> &&payment_token_); + + static const std::int32_t ID = -1966921727; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputPeer: public Object { + public: + + static object_ptr<InputPeer> fetch(TlBufferParser &p); +}; + +class inputPeerEmpty final : public InputPeer { + public: + + static const std::int32_t ID = 2134579434; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputPeer> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerSelf final : public InputPeer { + public: + + static const std::int32_t ID = 2107670217; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputPeer> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerChat final : public InputPeer { + public: + int64 chat_id_; + + explicit inputPeerChat(int64 chat_id_); + + static const std::int32_t ID = 900291769; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputPeer> fetch(TlBufferParser &p); + + explicit inputPeerChat(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerUser final : public InputPeer { + public: + int64 user_id_; + int64 access_hash_; + + inputPeerUser(int64 user_id_, int64 access_hash_); + + static const std::int32_t ID = -571955892; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputPeer> fetch(TlBufferParser &p); + + explicit inputPeerUser(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerChannel final : public InputPeer { + public: + int64 channel_id_; + int64 access_hash_; + + inputPeerChannel(int64 channel_id_, int64 access_hash_); + + static const std::int32_t ID = 666680316; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputPeer> fetch(TlBufferParser &p); + + explicit inputPeerChannel(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerUserFromMessage final : public InputPeer { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + int64 user_id_; + + inputPeerUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_); + + static const std::int32_t ID = -1468331492; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputPeer> fetch(TlBufferParser &p); + + explicit inputPeerUserFromMessage(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerChannelFromMessage final : public InputPeer { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + int64 channel_id_; + + inputPeerChannelFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 channel_id_); + + static const std::int32_t ID = -1121318848; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputPeer> fetch(TlBufferParser &p); + + explicit inputPeerChannelFromMessage(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPeerNotifySettings final : public Object { + public: + int32 flags_; + bool show_previews_; + bool silent_; + int32 mute_until_; + object_ptr<NotificationSound> sound_; + enum Flags : std::int32_t { SHOW_PREVIEWS_MASK = 1, SILENT_MASK = 2, MUTE_UNTIL_MASK = 4, SOUND_MASK = 8 }; + + inputPeerNotifySettings(int32 flags_, bool show_previews_, bool silent_, int32 mute_until_, object_ptr<NotificationSound> &&sound_); + + static const std::int32_t ID = -551616469; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPhoneCall final : public Object { + public: + int64 id_; + int64 access_hash_; + + inputPhoneCall(int64 id_, int64 access_hash_); + + static const std::int32_t ID = 506920429; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputPhoto: public Object { + public: +}; + +class inputPhotoEmpty final : public InputPhoto { + public: + + static const std::int32_t ID = 483901197; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPhoto final : public InputPhoto { + public: + int64 id_; + int64 access_hash_; + bytes file_reference_; + + inputPhoto(int64 id_, int64 access_hash_, bytes &&file_reference_); + + static const std::int32_t ID = 1001634122; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputPrivacyKey: public Object { + public: +}; + +class inputPrivacyKeyStatusTimestamp final : public InputPrivacyKey { + public: + + static const std::int32_t ID = 1335282456; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyChatInvite final : public InputPrivacyKey { + public: + + static const std::int32_t ID = -1107622874; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyPhoneCall final : public InputPrivacyKey { + public: + + static const std::int32_t ID = -88417185; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyPhoneP2P final : public InputPrivacyKey { + public: + + static const std::int32_t ID = -610373422; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyForwards final : public InputPrivacyKey { + public: + + static const std::int32_t ID = -1529000952; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyProfilePhoto final : public InputPrivacyKey { + public: + + static const std::int32_t ID = 1461304012; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyPhoneNumber final : public InputPrivacyKey { + public: + + static const std::int32_t ID = 55761658; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyAddedByPhone final : public InputPrivacyKey { + public: + + static const std::int32_t ID = -786326563; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyKeyVoiceMessages final : public InputPrivacyKey { + public: + + static const std::int32_t ID = -1360618136; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputPrivacyRule: public Object { + public: +}; + +class inputPrivacyValueAllowContacts final : public InputPrivacyRule { + public: + + static const std::int32_t ID = 218751099; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyValueAllowAll final : public InputPrivacyRule { + public: + + static const std::int32_t ID = 407582158; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyValueAllowUsers final : public InputPrivacyRule { + public: + array<object_ptr<InputUser>> users_; + + explicit inputPrivacyValueAllowUsers(array<object_ptr<InputUser>> &&users_); + + static const std::int32_t ID = 320652927; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyValueDisallowContacts final : public InputPrivacyRule { + public: + + static const std::int32_t ID = 195371015; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyValueDisallowAll final : public InputPrivacyRule { + public: + + static const std::int32_t ID = -697604407; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyValueDisallowUsers final : public InputPrivacyRule { + public: + array<object_ptr<InputUser>> users_; + + explicit inputPrivacyValueDisallowUsers(array<object_ptr<InputUser>> &&users_); + + static const std::int32_t ID = -1877932953; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyValueAllowChatParticipants final : public InputPrivacyRule { + public: + array<int64> chats_; + + explicit inputPrivacyValueAllowChatParticipants(array<int64> &&chats_); + + static const std::int32_t ID = -2079962673; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputPrivacyValueDisallowChatParticipants final : public InputPrivacyRule { + public: + array<int64> chats_; + + explicit inputPrivacyValueDisallowChatParticipants(array<int64> &&chats_); + + static const std::int32_t ID = -380694650; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputSecureFile: public Object { + public: +}; + +class inputSecureFileUploaded final : public InputSecureFile { + public: + int64 id_; + int32 parts_; + string md5_checksum_; + bytes file_hash_; + bytes secret_; + + inputSecureFileUploaded(int64 id_, int32 parts_, string const &md5_checksum_, bytes &&file_hash_, bytes &&secret_); + + static const std::int32_t ID = 859091184; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputSecureFile final : public InputSecureFile { + public: + int64 id_; + int64 access_hash_; + + inputSecureFile(int64 id_, int64 access_hash_); + + static const std::int32_t ID = 1399317950; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputSecureValue final : public Object { + public: + int32 flags_; + object_ptr<SecureValueType> type_; + object_ptr<secureData> data_; + object_ptr<InputSecureFile> front_side_; + object_ptr<InputSecureFile> reverse_side_; + object_ptr<InputSecureFile> selfie_; + array<object_ptr<InputSecureFile>> translation_; + array<object_ptr<InputSecureFile>> files_; + object_ptr<SecurePlainData> plain_data_; + enum Flags : std::int32_t { DATA_MASK = 1, FRONT_SIDE_MASK = 2, REVERSE_SIDE_MASK = 4, SELFIE_MASK = 8, TRANSLATION_MASK = 64, FILES_MASK = 16, PLAIN_DATA_MASK = 32 }; + + inputSecureValue(int32 flags_, object_ptr<SecureValueType> &&type_, object_ptr<secureData> &&data_, object_ptr<InputSecureFile> &&front_side_, object_ptr<InputSecureFile> &&reverse_side_, object_ptr<InputSecureFile> &&selfie_, array<object_ptr<InputSecureFile>> &&translation_, array<object_ptr<InputSecureFile>> &&files_, object_ptr<SecurePlainData> &&plain_data_); + + static const std::int32_t ID = -618540889; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputSingleMedia final : public Object { + public: + int32 flags_; + object_ptr<InputMedia> media_; + int64 random_id_; + string message_; + array<object_ptr<MessageEntity>> entities_; + enum Flags : std::int32_t { ENTITIES_MASK = 1 }; + + inputSingleMedia(int32 flags_, object_ptr<InputMedia> &&media_, int64 random_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_); + + static const std::int32_t ID = 482797855; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputStickerSet: public Object { + public: + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); +}; + +class inputStickerSetEmpty final : public InputStickerSet { + public: + + static const std::int32_t ID = -4838507; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetID final : public InputStickerSet { + public: + int64 id_; + int64 access_hash_; + + inputStickerSetID(int64 id_, int64 access_hash_); + + static const std::int32_t ID = -1645763991; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + explicit inputStickerSetID(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetShortName final : public InputStickerSet { + public: + string short_name_; + + explicit inputStickerSetShortName(string const &short_name_); + + static const std::int32_t ID = -2044933984; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + explicit inputStickerSetShortName(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetAnimatedEmoji final : public InputStickerSet { + public: + + static const std::int32_t ID = 42402760; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetDice final : public InputStickerSet { + public: + string emoticon_; + + explicit inputStickerSetDice(string const &emoticon_); + + static const std::int32_t ID = -427863538; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + explicit inputStickerSetDice(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetAnimatedEmojiAnimations final : public InputStickerSet { + public: + + static const std::int32_t ID = 215889721; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetPremiumGifts final : public InputStickerSet { + public: + + static const std::int32_t ID = -930399486; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetEmojiGenericAnimations final : public InputStickerSet { + public: + + static const std::int32_t ID = 80008398; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetEmojiDefaultStatuses final : public InputStickerSet { + public: + + static const std::int32_t ID = 701560302; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetEmojiDefaultTopicIcons final : public InputStickerSet { + public: + + static const std::int32_t ID = 1153562857; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputStickerSet> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickerSetItem final : public Object { + public: + int32 flags_; + object_ptr<InputDocument> document_; + string emoji_; + object_ptr<maskCoords> mask_coords_; + enum Flags : std::int32_t { MASK_COORDS_MASK = 1 }; + + inputStickerSetItem(int32 flags_, object_ptr<InputDocument> &&document_, string const &emoji_, object_ptr<maskCoords> &&mask_coords_); + + static const std::int32_t ID = -6249322; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputStickeredMedia: public Object { + public: +}; + +class inputStickeredMediaPhoto final : public InputStickeredMedia { + public: + object_ptr<InputPhoto> id_; + + explicit inputStickeredMediaPhoto(object_ptr<InputPhoto> &&id_); + + static const std::int32_t ID = 1251549527; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStickeredMediaDocument final : public InputStickeredMedia { + public: + object_ptr<InputDocument> id_; + + explicit inputStickeredMediaDocument(object_ptr<InputDocument> &&id_); + + static const std::int32_t ID = 70813275; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputStorePaymentPurpose: public Object { + public: +}; + +class inputStorePaymentPremiumSubscription final : public InputStorePaymentPurpose { + public: + int32 flags_; + bool restore_; + enum Flags : std::int32_t { RESTORE_MASK = 1 }; + + inputStorePaymentPremiumSubscription(int32 flags_, bool restore_); + + static const std::int32_t ID = -1502273946; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputStorePaymentGiftPremium final : public InputStorePaymentPurpose { + public: + object_ptr<InputUser> user_id_; + string currency_; + int64 amount_; + + inputStorePaymentGiftPremium(object_ptr<InputUser> &&user_id_, string const ¤cy_, int64 amount_); + + static const std::int32_t ID = 1634697192; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputTheme: public Object { + public: +}; + +class inputTheme final : public InputTheme { + public: + int64 id_; + int64 access_hash_; + + inputTheme(int64 id_, int64 access_hash_); + + static const std::int32_t ID = 1012306921; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputThemeSlug final : public InputTheme { + public: + string slug_; + + explicit inputThemeSlug(string const &slug_); + + static const std::int32_t ID = -175567375; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputThemeSettings final : public Object { + public: + int32 flags_; + bool message_colors_animated_; + object_ptr<BaseTheme> base_theme_; + int32 accent_color_; + int32 outbox_accent_color_; + array<int32> message_colors_; + object_ptr<InputWallPaper> wallpaper_; + object_ptr<wallPaperSettings> wallpaper_settings_; + enum Flags : std::int32_t { MESSAGE_COLORS_ANIMATED_MASK = 4, OUTBOX_ACCENT_COLOR_MASK = 8, MESSAGE_COLORS_MASK = 1, WALLPAPER_MASK = 2, WALLPAPER_SETTINGS_MASK = 2 }; + + inputThemeSettings(int32 flags_, bool message_colors_animated_, object_ptr<BaseTheme> &&base_theme_, int32 accent_color_, int32 outbox_accent_color_, array<int32> &&message_colors_, object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&wallpaper_settings_); + + static const std::int32_t ID = -1881255857; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputUser: public Object { + public: + + static object_ptr<InputUser> fetch(TlBufferParser &p); +}; + +class inputUserEmpty final : public InputUser { + public: + + static const std::int32_t ID = -1182234929; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputUser> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputUserSelf final : public InputUser { + public: + + static const std::int32_t ID = -138301121; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputUser> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputUser final : public InputUser { + public: + int64 user_id_; + int64 access_hash_; + + inputUser(int64 user_id_, int64 access_hash_); + + static const std::int32_t ID = -233744186; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputUser> fetch(TlBufferParser &p); + + explicit inputUser(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputUserFromMessage final : public InputUser { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + int64 user_id_; + + inputUserFromMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 user_id_); + + static const std::int32_t ID = 497305826; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<InputUser> fetch(TlBufferParser &p); + + explicit inputUserFromMessage(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputWallPaper: public Object { + public: +}; + +class inputWallPaper final : public InputWallPaper { + public: + int64 id_; + int64 access_hash_; + + inputWallPaper(int64 id_, int64 access_hash_); + + static const std::int32_t ID = -433014407; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputWallPaperSlug final : public InputWallPaper { + public: + string slug_; + + explicit inputWallPaperSlug(string const &slug_); + + static const std::int32_t ID = 1913199744; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputWallPaperNoFile final : public InputWallPaper { + public: + int64 id_; + + explicit inputWallPaperNoFile(int64 id_); + + static const std::int32_t ID = -1770371538; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputWebDocument final : public Object { + public: + string url_; + int32 size_; + string mime_type_; + array<object_ptr<DocumentAttribute>> attributes_; + + inputWebDocument(string const &url_, int32 size_, string const &mime_type_, array<object_ptr<DocumentAttribute>> &&attributes_); + + static const std::int32_t ID = -1678949555; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class InputWebFileLocation: public Object { + public: +}; + +class inputWebFileLocation final : public InputWebFileLocation { + public: + string url_; + int64 access_hash_; + + inputWebFileLocation(string const &url_, int64 access_hash_); + + static const std::int32_t ID = -1036396922; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputWebFileGeoPointLocation final : public InputWebFileLocation { + public: + object_ptr<InputGeoPoint> geo_point_; + int64 access_hash_; + int32 w_; + int32 h_; + int32 zoom_; + int32 scale_; + + inputWebFileGeoPointLocation(object_ptr<InputGeoPoint> &&geo_point_, int64 access_hash_, int32 w_, int32 h_, int32 zoom_, int32 scale_); + + static const std::int32_t ID = -1625153079; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputWebFileAudioAlbumThumbLocation final : public InputWebFileLocation { + public: + int32 flags_; + bool small_; + object_ptr<InputDocument> document_; + string title_; + string performer_; + enum Flags : std::int32_t { SMALL_MASK = 4, DOCUMENT_MASK = 1, TITLE_MASK = 2, PERFORMER_MASK = 2 }; + + inputWebFileAudioAlbumThumbLocation(int32 flags_, bool small_, object_ptr<InputDocument> &&document_, string const &title_, string const &performer_); + + static const std::int32_t ID = -193992412; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class invoice final : public Object { + public: + int32 flags_; + bool test_; + bool name_requested_; + bool phone_requested_; + bool email_requested_; + bool shipping_address_requested_; + bool flexible_; + bool phone_to_provider_; + bool email_to_provider_; + bool recurring_; + string currency_; + array<object_ptr<labeledPrice>> prices_; + int64 max_tip_amount_; + array<int64> suggested_tip_amounts_; + string recurring_terms_url_; + enum Flags : std::int32_t { TEST_MASK = 1, NAME_REQUESTED_MASK = 2, PHONE_REQUESTED_MASK = 4, EMAIL_REQUESTED_MASK = 8, SHIPPING_ADDRESS_REQUESTED_MASK = 16, FLEXIBLE_MASK = 32, PHONE_TO_PROVIDER_MASK = 64, EMAIL_TO_PROVIDER_MASK = 128, RECURRING_MASK = 512, MAX_TIP_AMOUNT_MASK = 256, SUGGESTED_TIP_AMOUNTS_MASK = 256, RECURRING_TERMS_URL_MASK = 512 }; + + invoice(); + + invoice(int32 flags_, bool test_, bool name_requested_, bool phone_requested_, bool email_requested_, bool shipping_address_requested_, bool flexible_, bool phone_to_provider_, bool email_to_provider_, bool recurring_, string const ¤cy_, array<object_ptr<labeledPrice>> &&prices_, int64 max_tip_amount_, array<int64> &&suggested_tip_amounts_, string const &recurring_terms_url_); + + static const std::int32_t ID = 1048946971; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<invoice> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class IpPort: public Object { + public: + + static object_ptr<IpPort> fetch(TlBufferParser &p); +}; + +class ipPort final : public IpPort { + public: + int32 ipv4_; + int32 port_; + + static const std::int32_t ID = -734810765; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<IpPort> fetch(TlBufferParser &p); + + explicit ipPort(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ipPortSecret final : public IpPort { + public: + int32 ipv4_; + int32 port_; + bytes secret_; + + static const std::int32_t ID = 932718150; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<IpPort> fetch(TlBufferParser &p); + + explicit ipPortSecret(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonObjectValue final : public Object { + public: + string key_; + object_ptr<JSONValue> value_; + + jsonObjectValue(string const &key_, object_ptr<JSONValue> &&value_); + + static const std::int32_t ID = -1059185703; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<jsonObjectValue> fetch(TlBufferParser &p); + + explicit jsonObjectValue(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class JSONValue: public Object { + public: + + static object_ptr<JSONValue> fetch(TlBufferParser &p); +}; + +class jsonNull final : public JSONValue { + public: + + static const std::int32_t ID = 1064139624; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<JSONValue> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonBool final : public JSONValue { + public: + bool value_; + + explicit jsonBool(bool value_); + + static const std::int32_t ID = -952869270; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<JSONValue> fetch(TlBufferParser &p); + + explicit jsonBool(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonNumber final : public JSONValue { + public: + double value_; + + explicit jsonNumber(double value_); + + static const std::int32_t ID = 736157604; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<JSONValue> fetch(TlBufferParser &p); + + explicit jsonNumber(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonString final : public JSONValue { + public: + string value_; + + explicit jsonString(string const &value_); + + static const std::int32_t ID = -1222740358; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<JSONValue> fetch(TlBufferParser &p); + + explicit jsonString(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonArray final : public JSONValue { + public: + array<object_ptr<JSONValue>> value_; + + explicit jsonArray(array<object_ptr<JSONValue>> &&value_); + + static const std::int32_t ID = -146520221; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<JSONValue> fetch(TlBufferParser &p); + + explicit jsonArray(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class jsonObject final : public JSONValue { + public: + array<object_ptr<jsonObjectValue>> value_; + + explicit jsonObject(array<object_ptr<jsonObjectValue>> &&value_); + + static const std::int32_t ID = -1715350371; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<JSONValue> fetch(TlBufferParser &p); + + explicit jsonObject(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class KeyboardButton: public Object { + public: + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); +}; + +class keyboardButton final : public KeyboardButton { + public: + string text_; + + explicit keyboardButton(string const &text_); + + static const std::int32_t ID = -1560655744; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButton(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonUrl final : public KeyboardButton { + public: + string text_; + string url_; + + keyboardButtonUrl(string const &text_, string const &url_); + + static const std::int32_t ID = 629866245; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonUrl(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonCallback final : public KeyboardButton { + public: + int32 flags_; + bool requires_password_; + string text_; + bytes data_; + enum Flags : std::int32_t { REQUIRES_PASSWORD_MASK = 1 }; + + keyboardButtonCallback(); + + keyboardButtonCallback(int32 flags_, bool requires_password_, string const &text_, bytes &&data_); + + static const std::int32_t ID = 901503851; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonRequestPhone final : public KeyboardButton { + public: + string text_; + + explicit keyboardButtonRequestPhone(string const &text_); + + static const std::int32_t ID = -1318425559; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonRequestPhone(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonRequestGeoLocation final : public KeyboardButton { + public: + string text_; + + explicit keyboardButtonRequestGeoLocation(string const &text_); + + static const std::int32_t ID = -59151553; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonRequestGeoLocation(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonSwitchInline final : public KeyboardButton { + public: + int32 flags_; + bool same_peer_; + string text_; + string query_; + enum Flags : std::int32_t { SAME_PEER_MASK = 1 }; + + keyboardButtonSwitchInline(); + + keyboardButtonSwitchInline(int32 flags_, bool same_peer_, string const &text_, string const &query_); + + static const std::int32_t ID = 90744648; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonGame final : public KeyboardButton { + public: + string text_; + + explicit keyboardButtonGame(string const &text_); + + static const std::int32_t ID = 1358175439; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonGame(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonBuy final : public KeyboardButton { + public: + string text_; + + explicit keyboardButtonBuy(string const &text_); + + static const std::int32_t ID = -1344716869; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonBuy(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonUrlAuth final : public KeyboardButton { + public: + int32 flags_; + string text_; + string fwd_text_; + string url_; + int32 button_id_; + enum Flags : std::int32_t { FWD_TEXT_MASK = 1 }; + + keyboardButtonUrlAuth(); + + keyboardButtonUrlAuth(int32 flags_, string const &text_, string const &fwd_text_, string const &url_, int32 button_id_); + + static const std::int32_t ID = 280464681; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputKeyboardButtonUrlAuth final : public KeyboardButton { + public: + int32 flags_; + bool request_write_access_; + string text_; + string fwd_text_; + string url_; + object_ptr<InputUser> bot_; + enum Flags : std::int32_t { REQUEST_WRITE_ACCESS_MASK = 1, FWD_TEXT_MASK = 2 }; + + inputKeyboardButtonUrlAuth(); + + inputKeyboardButtonUrlAuth(int32 flags_, bool request_write_access_, string const &text_, string const &fwd_text_, string const &url_, object_ptr<InputUser> &&bot_); + + static const std::int32_t ID = -802258988; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonRequestPoll final : public KeyboardButton { + public: + int32 flags_; + bool quiz_; + string text_; + enum Flags : std::int32_t { QUIZ_MASK = 1 }; + + keyboardButtonRequestPoll(); + + keyboardButtonRequestPoll(int32 flags_, bool quiz_, string const &text_); + + static const std::int32_t ID = -1144565411; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputKeyboardButtonUserProfile final : public KeyboardButton { + public: + string text_; + object_ptr<InputUser> user_id_; + + inputKeyboardButtonUserProfile(string const &text_, object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = -376962181; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit inputKeyboardButtonUserProfile(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonUserProfile final : public KeyboardButton { + public: + string text_; + int64 user_id_; + + keyboardButtonUserProfile(string const &text_, int64 user_id_); + + static const std::int32_t ID = 814112961; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonUserProfile(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonWebView final : public KeyboardButton { + public: + string text_; + string url_; + + keyboardButtonWebView(string const &text_, string const &url_); + + static const std::int32_t ID = 326529584; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonWebView(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonSimpleWebView final : public KeyboardButton { + public: + string text_; + string url_; + + keyboardButtonSimpleWebView(string const &text_, string const &url_); + + static const std::int32_t ID = -1598009252; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<KeyboardButton> fetch(TlBufferParser &p); + + explicit keyboardButtonSimpleWebView(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class keyboardButtonRow final : public Object { + public: + array<object_ptr<KeyboardButton>> buttons_; + + explicit keyboardButtonRow(array<object_ptr<KeyboardButton>> &&buttons_); + + static const std::int32_t ID = 2002815875; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<keyboardButtonRow> fetch(TlBufferParser &p); + + explicit keyboardButtonRow(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class labeledPrice final : public Object { + public: + string label_; + int64 amount_; + + labeledPrice(string const &label_, int64 amount_); + + static const std::int32_t ID = -886477832; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<labeledPrice> fetch(TlBufferParser &p); + + explicit labeledPrice(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class langPackDifference final : public Object { + public: + string lang_code_; + int32 from_version_; + int32 version_; + array<object_ptr<LangPackString>> strings_; + + static const std::int32_t ID = -209337866; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<langPackDifference> fetch(TlBufferParser &p); + + explicit langPackDifference(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class langPackLanguage final : public Object { + public: + int32 flags_; + bool official_; + bool rtl_; + bool beta_; + string name_; + string native_name_; + string lang_code_; + string base_lang_code_; + string plural_code_; + int32 strings_count_; + int32 translated_count_; + string translations_url_; + enum Flags : std::int32_t { BASE_LANG_CODE_MASK = 2 }; + + langPackLanguage(); + + static const std::int32_t ID = -288727837; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<langPackLanguage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class LangPackString: public Object { + public: + + static object_ptr<LangPackString> fetch(TlBufferParser &p); +}; + +class langPackString final : public LangPackString { + public: + string key_; + string value_; + + langPackString(string const &key_, string const &value_); + + static const std::int32_t ID = -892239370; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<LangPackString> fetch(TlBufferParser &p); + + explicit langPackString(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class langPackStringPluralized final : public LangPackString { + public: + int32 flags_; + string key_; + string zero_value_; + string one_value_; + string two_value_; + string few_value_; + string many_value_; + string other_value_; + enum Flags : std::int32_t { ZERO_VALUE_MASK = 1, ONE_VALUE_MASK = 2, TWO_VALUE_MASK = 4, FEW_VALUE_MASK = 8, MANY_VALUE_MASK = 16 }; + + langPackStringPluralized(); + + langPackStringPluralized(int32 flags_, string const &key_, string const &zero_value_, string const &one_value_, string const &two_value_, string const &few_value_, string const &many_value_, string const &other_value_); + + static const std::int32_t ID = 1816636575; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<LangPackString> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class langPackStringDeleted final : public LangPackString { + public: + string key_; + + explicit langPackStringDeleted(string const &key_); + + static const std::int32_t ID = 695856818; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<LangPackString> fetch(TlBufferParser &p); + + explicit langPackStringDeleted(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class maskCoords final : public Object { + public: + int32 n_; + double x_; + double y_; + double zoom_; + + maskCoords(int32 n_, double x_, double y_, double zoom_); + + static const std::int32_t ID = -1361650766; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<maskCoords> fetch(TlBufferParser &p); + + explicit maskCoords(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Message: public Object { + public: + + static object_ptr<Message> fetch(TlBufferParser &p); +}; + +class messageEmpty final : public Message { + public: + int32 flags_; + int32 id_; + object_ptr<Peer> peer_id_; + + messageEmpty(); + + static const std::int32_t ID = -1868117372; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Message> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class message final : public Message { + public: + int32 flags_; + bool out_; + bool mentioned_; + bool media_unread_; + bool silent_; + bool post_; + bool from_scheduled_; + bool legacy_; + bool edit_hide_; + bool pinned_; + bool noforwards_; + int32 id_; + object_ptr<Peer> from_id_; + object_ptr<Peer> peer_id_; + object_ptr<messageFwdHeader> fwd_from_; + int64 via_bot_id_; + object_ptr<messageReplyHeader> reply_to_; + int32 date_; + string message_; + object_ptr<MessageMedia> media_; + object_ptr<ReplyMarkup> reply_markup_; + array<object_ptr<MessageEntity>> entities_; + int32 views_; + int32 forwards_; + object_ptr<messageReplies> replies_; + int32 edit_date_; + string post_author_; + int64 grouped_id_; + object_ptr<messageReactions> reactions_; + array<object_ptr<restrictionReason>> restriction_reason_; + int32 ttl_period_; + enum Flags : std::int32_t { VIA_BOT_ID_MASK = 2048, VIEWS_MASK = 1024, FORWARDS_MASK = 1024, EDIT_DATE_MASK = 32768, POST_AUTHOR_MASK = 65536, GROUPED_ID_MASK = 131072, TTL_PERIOD_MASK = 33554432 }; + + message(); + + message(int32 flags_, bool out_, bool mentioned_, bool media_unread_, bool silent_, bool post_, bool from_scheduled_, bool legacy_, bool edit_hide_, bool pinned_, bool noforwards_, int32 id_, object_ptr<Peer> &&from_id_, object_ptr<Peer> &&peer_id_, object_ptr<messageFwdHeader> &&fwd_from_, int64 via_bot_id_, object_ptr<messageReplyHeader> &&reply_to_, int32 date_, string const &message_, object_ptr<MessageMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 views_, int32 forwards_, object_ptr<messageReplies> &&replies_, int32 edit_date_, string const &post_author_, int64 grouped_id_, object_ptr<messageReactions> &&reactions_, array<object_ptr<restrictionReason>> &&restriction_reason_, int32 ttl_period_); + + static const std::int32_t ID = 940666592; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Message> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageService final : public Message { + public: + int32 flags_; + bool out_; + bool mentioned_; + bool media_unread_; + bool silent_; + bool post_; + bool legacy_; + int32 id_; + object_ptr<Peer> from_id_; + object_ptr<Peer> peer_id_; + object_ptr<messageReplyHeader> reply_to_; + int32 date_; + object_ptr<MessageAction> action_; + int32 ttl_period_; + enum Flags : std::int32_t { TTL_PERIOD_MASK = 33554432 }; + + messageService(); + + static const std::int32_t ID = 721967202; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Message> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageAction: public Object { + public: + + static object_ptr<MessageAction> fetch(TlBufferParser &p); +}; + +class messageActionEmpty final : public MessageAction { + public: + + static const std::int32_t ID = -1230047312; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatCreate final : public MessageAction { + public: + string title_; + array<int64> users_; + + static const std::int32_t ID = -1119368275; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChatCreate(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatEditTitle final : public MessageAction { + public: + string title_; + + static const std::int32_t ID = -1247687078; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChatEditTitle(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatEditPhoto final : public MessageAction { + public: + object_ptr<Photo> photo_; + + static const std::int32_t ID = 2144015272; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChatEditPhoto(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatDeletePhoto final : public MessageAction { + public: + + static const std::int32_t ID = -1780220945; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatAddUser final : public MessageAction { + public: + array<int64> users_; + + static const std::int32_t ID = 365886720; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChatAddUser(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatDeleteUser final : public MessageAction { + public: + int64 user_id_; + + static const std::int32_t ID = -1539362612; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChatDeleteUser(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatJoinedByLink final : public MessageAction { + public: + int64 inviter_id_; + + static const std::int32_t ID = 51520707; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChatJoinedByLink(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChannelCreate final : public MessageAction { + public: + string title_; + + static const std::int32_t ID = -1781355374; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChannelCreate(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatMigrateTo final : public MessageAction { + public: + int64 channel_id_; + + static const std::int32_t ID = -519864430; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChatMigrateTo(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChannelMigrateFrom final : public MessageAction { + public: + string title_; + int64 chat_id_; + + static const std::int32_t ID = -365344535; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionChannelMigrateFrom(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionPinMessage final : public MessageAction { + public: + + static const std::int32_t ID = -1799538451; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionHistoryClear final : public MessageAction { + public: + + static const std::int32_t ID = -1615153660; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionGameScore final : public MessageAction { + public: + int64 game_id_; + int32 score_; + + static const std::int32_t ID = -1834538890; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionGameScore(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionPaymentSentMe final : public MessageAction { + public: + int32 flags_; + bool recurring_init_; + bool recurring_used_; + string currency_; + int64 total_amount_; + bytes payload_; + object_ptr<paymentRequestedInfo> info_; + string shipping_option_id_; + object_ptr<paymentCharge> charge_; + enum Flags : std::int32_t { SHIPPING_OPTION_ID_MASK = 2 }; + + messageActionPaymentSentMe(); + + static const std::int32_t ID = -1892568281; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionPaymentSent final : public MessageAction { + public: + int32 flags_; + bool recurring_init_; + bool recurring_used_; + string currency_; + int64 total_amount_; + string invoice_slug_; + enum Flags : std::int32_t { INVOICE_SLUG_MASK = 1 }; + + messageActionPaymentSent(); + + static const std::int32_t ID = -1776926890; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionPhoneCall final : public MessageAction { + public: + int32 flags_; + bool video_; + int64 call_id_; + object_ptr<PhoneCallDiscardReason> reason_; + int32 duration_; + enum Flags : std::int32_t { DURATION_MASK = 2 }; + + messageActionPhoneCall(); + + static const std::int32_t ID = -2132731265; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionScreenshotTaken final : public MessageAction { + public: + + static const std::int32_t ID = 1200788123; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionCustomAction final : public MessageAction { + public: + string message_; + + static const std::int32_t ID = -85549226; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionCustomAction(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionBotAllowed final : public MessageAction { + public: + string domain_; + + static const std::int32_t ID = -1410748418; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionBotAllowed(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionSecureValuesSentMe final : public MessageAction { + public: + array<object_ptr<secureValue>> values_; + object_ptr<secureCredentialsEncrypted> credentials_; + + static const std::int32_t ID = 455635795; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionSecureValuesSentMe(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionSecureValuesSent final : public MessageAction { + public: + array<object_ptr<SecureValueType>> types_; + + static const std::int32_t ID = -648257196; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionSecureValuesSent(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionContactSignUp final : public MessageAction { + public: + + static const std::int32_t ID = -202219658; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionGeoProximityReached final : public MessageAction { + public: + object_ptr<Peer> from_id_; + object_ptr<Peer> to_id_; + int32 distance_; + + static const std::int32_t ID = -1730095465; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionGeoProximityReached(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionGroupCall final : public MessageAction { + public: + int32 flags_; + object_ptr<inputGroupCall> call_; + int32 duration_; + enum Flags : std::int32_t { DURATION_MASK = 1 }; + + messageActionGroupCall(); + + static const std::int32_t ID = 2047704898; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionInviteToGroupCall final : public MessageAction { + public: + object_ptr<inputGroupCall> call_; + array<int64> users_; + + static const std::int32_t ID = 1345295095; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionInviteToGroupCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionSetMessagesTTL final : public MessageAction { + public: + int32 period_; + + static const std::int32_t ID = -1441072131; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionSetMessagesTTL(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionGroupCallScheduled final : public MessageAction { + public: + object_ptr<inputGroupCall> call_; + int32 schedule_date_; + + static const std::int32_t ID = -1281329567; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionGroupCallScheduled(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionSetChatTheme final : public MessageAction { + public: + string emoticon_; + + static const std::int32_t ID = -1434950843; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionSetChatTheme(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionChatJoinedByRequest final : public MessageAction { + public: + + static const std::int32_t ID = -339958837; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionWebViewDataSentMe final : public MessageAction { + public: + string text_; + string data_; + + static const std::int32_t ID = 1205698681; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionWebViewDataSentMe(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionWebViewDataSent final : public MessageAction { + public: + string text_; + + static const std::int32_t ID = -1262252875; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionWebViewDataSent(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionGiftPremium final : public MessageAction { + public: + string currency_; + int64 amount_; + int32 months_; + + static const std::int32_t ID = -1415514682; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + explicit messageActionGiftPremium(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionTopicCreate final : public MessageAction { + public: + int32 flags_; + string title_; + int32 icon_color_; + int64 icon_emoji_id_; + enum Flags : std::int32_t { ICON_EMOJI_ID_MASK = 1 }; + + messageActionTopicCreate(); + + static const std::int32_t ID = 228168278; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageActionTopicEdit final : public MessageAction { + public: + int32 flags_; + string title_; + int64 icon_emoji_id_; + bool closed_; + enum Flags : std::int32_t { TITLE_MASK = 1, ICON_EMOJI_ID_MASK = 2, CLOSED_MASK = 4 }; + + messageActionTopicEdit(); + + static const std::int32_t ID = -1316338916; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageAction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageEntity: public Object { + public: + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); +}; + +class messageEntityUnknown final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityUnknown(int32 offset_, int32 length_); + + static const std::int32_t ID = -1148011883; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityUnknown(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityMention final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityMention(int32 offset_, int32 length_); + + static const std::int32_t ID = -100378723; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityMention(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityHashtag final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityHashtag(int32 offset_, int32 length_); + + static const std::int32_t ID = 1868782349; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityHashtag(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBotCommand final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBotCommand(int32 offset_, int32 length_); + + static const std::int32_t ID = 1827637959; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityBotCommand(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityUrl final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityUrl(int32 offset_, int32 length_); + + static const std::int32_t ID = 1859134776; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityUrl(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityEmail final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityEmail(int32 offset_, int32 length_); + + static const std::int32_t ID = 1692693954; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityEmail(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBold final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBold(int32 offset_, int32 length_); + + static const std::int32_t ID = -1117713463; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityBold(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityItalic final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityItalic(int32 offset_, int32 length_); + + static const std::int32_t ID = -2106619040; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityItalic(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCode final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityCode(int32 offset_, int32 length_); + + static const std::int32_t ID = 681706865; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityCode(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityPre final : public MessageEntity { + public: + int32 offset_; + int32 length_; + string language_; + + messageEntityPre(int32 offset_, int32 length_, string const &language_); + + static const std::int32_t ID = 1938967520; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityPre(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityTextUrl final : public MessageEntity { + public: + int32 offset_; + int32 length_; + string url_; + + messageEntityTextUrl(int32 offset_, int32 length_, string const &url_); + + static const std::int32_t ID = 1990644519; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityTextUrl(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityMentionName final : public MessageEntity { + public: + int32 offset_; + int32 length_; + int64 user_id_; + + messageEntityMentionName(int32 offset_, int32 length_, int64 user_id_); + + static const std::int32_t ID = -595914432; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityMentionName(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessageEntityMentionName final : public MessageEntity { + public: + int32 offset_; + int32 length_; + object_ptr<InputUser> user_id_; + + inputMessageEntityMentionName(int32 offset_, int32 length_, object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = 546203849; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit inputMessageEntityMentionName(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityPhone final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityPhone(int32 offset_, int32 length_); + + static const std::int32_t ID = -1687559349; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityPhone(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCashtag final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityCashtag(int32 offset_, int32 length_); + + static const std::int32_t ID = 1280209983; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityCashtag(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityUnderline final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityUnderline(int32 offset_, int32 length_); + + static const std::int32_t ID = -1672577397; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityUnderline(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityStrike final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityStrike(int32 offset_, int32 length_); + + static const std::int32_t ID = -1090087980; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityStrike(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBlockquote final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBlockquote(int32 offset_, int32 length_); + + static const std::int32_t ID = 34469328; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityBlockquote(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityBankCard final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntityBankCard(int32 offset_, int32 length_); + + static const std::int32_t ID = 1981704948; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityBankCard(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntitySpoiler final : public MessageEntity { + public: + int32 offset_; + int32 length_; + + messageEntitySpoiler(int32 offset_, int32 length_); + + static const std::int32_t ID = 852137487; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntitySpoiler(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageEntityCustomEmoji final : public MessageEntity { + public: + int32 offset_; + int32 length_; + int64 document_id_; + + messageEntityCustomEmoji(int32 offset_, int32 length_, int64 document_id_); + + static const std::int32_t ID = -925956616; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageEntity> fetch(TlBufferParser &p); + + explicit messageEntityCustomEmoji(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageExtendedMedia: public Object { + public: + + static object_ptr<MessageExtendedMedia> fetch(TlBufferParser &p); +}; + +class messageExtendedMediaPreview final : public MessageExtendedMedia { + public: + int32 flags_; + int32 w_; + int32 h_; + object_ptr<PhotoSize> thumb_; + int32 video_duration_; + enum Flags : std::int32_t { W_MASK = 1, H_MASK = 1, VIDEO_DURATION_MASK = 4 }; + + messageExtendedMediaPreview(); + + static const std::int32_t ID = -1386050360; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageExtendedMedia> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageExtendedMedia final : public MessageExtendedMedia { + public: + object_ptr<MessageMedia> media_; + + static const std::int32_t ID = -297296796; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageExtendedMedia> fetch(TlBufferParser &p); + + explicit messageExtendedMedia(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageFwdHeader final : public Object { + public: + int32 flags_; + bool imported_; + object_ptr<Peer> from_id_; + string from_name_; + int32 date_; + int32 channel_post_; + string post_author_; + object_ptr<Peer> saved_from_peer_; + int32 saved_from_msg_id_; + string psa_type_; + enum Flags : std::int32_t { FROM_NAME_MASK = 32, CHANNEL_POST_MASK = 4, POST_AUTHOR_MASK = 8, SAVED_FROM_MSG_ID_MASK = 16, PSA_TYPE_MASK = 64 }; + + messageFwdHeader(); + + static const std::int32_t ID = 1601666510; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messageFwdHeader> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageInteractionCounters final : public Object { + public: + int32 msg_id_; + int32 views_; + int32 forwards_; + + static const std::int32_t ID = -1387279939; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messageInteractionCounters> fetch(TlBufferParser &p); + + explicit messageInteractionCounters(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageMedia: public Object { + public: + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); +}; + +class messageMediaEmpty final : public MessageMedia { + public: + + static const std::int32_t ID = 1038967584; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaPhoto final : public MessageMedia { + public: + int32 flags_; + object_ptr<Photo> photo_; + int32 ttl_seconds_; + enum Flags : std::int32_t { TTL_SECONDS_MASK = 4 }; + + messageMediaPhoto(); + + static const std::int32_t ID = 1766936791; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaGeo final : public MessageMedia { + public: + object_ptr<GeoPoint> geo_; + + static const std::int32_t ID = 1457575028; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + explicit messageMediaGeo(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaContact final : public MessageMedia { + public: + string phone_number_; + string first_name_; + string last_name_; + string vcard_; + int64 user_id_; + + static const std::int32_t ID = 1882335561; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + explicit messageMediaContact(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaUnsupported final : public MessageMedia { + public: + + static const std::int32_t ID = -1618676578; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaDocument final : public MessageMedia { + public: + int32 flags_; + bool nopremium_; + object_ptr<Document> document_; + int32 ttl_seconds_; + enum Flags : std::int32_t { TTL_SECONDS_MASK = 4 }; + + messageMediaDocument(); + + static const std::int32_t ID = -1666158377; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaWebPage final : public MessageMedia { + public: + object_ptr<WebPage> webpage_; + + static const std::int32_t ID = -1557277184; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + explicit messageMediaWebPage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaVenue final : public MessageMedia { + public: + object_ptr<GeoPoint> geo_; + string title_; + string address_; + string provider_; + string venue_id_; + string venue_type_; + + static const std::int32_t ID = 784356159; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + explicit messageMediaVenue(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaGame final : public MessageMedia { + public: + object_ptr<game> game_; + + static const std::int32_t ID = -38694904; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + explicit messageMediaGame(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaInvoice final : public MessageMedia { + public: + int32 flags_; + bool shipping_address_requested_; + bool test_; + string title_; + string description_; + object_ptr<WebDocument> photo_; + int32 receipt_msg_id_; + string currency_; + int64 total_amount_; + string start_param_; + object_ptr<MessageExtendedMedia> extended_media_; + enum Flags : std::int32_t { RECEIPT_MSG_ID_MASK = 4 }; + + messageMediaInvoice(); + + static const std::int32_t ID = -156940077; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaGeoLive final : public MessageMedia { + public: + int32 flags_; + object_ptr<GeoPoint> geo_; + int32 heading_; + int32 period_; + int32 proximity_notification_radius_; + enum Flags : std::int32_t { HEADING_MASK = 1, PROXIMITY_NOTIFICATION_RADIUS_MASK = 2 }; + + messageMediaGeoLive(); + + static const std::int32_t ID = -1186937242; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaPoll final : public MessageMedia { + public: + object_ptr<poll> poll_; + object_ptr<pollResults> results_; + + static const std::int32_t ID = 1272375192; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + explicit messageMediaPoll(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageMediaDice final : public MessageMedia { + public: + int32 value_; + string emoticon_; + + static const std::int32_t ID = 1065280907; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageMedia> fetch(TlBufferParser &p); + + explicit messageMediaDice(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messagePeerReaction final : public Object { + public: + int32 flags_; + bool big_; + bool unread_; + object_ptr<Peer> peer_id_; + object_ptr<Reaction> reaction_; + + messagePeerReaction(); + + static const std::int32_t ID = -1319698788; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messagePeerReaction> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageRange final : public Object { + public: + int32 min_id_; + int32 max_id_; + + messageRange(int32 min_id_, int32 max_id_); + + static const std::int32_t ID = 182649427; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messageRange> fetch(TlBufferParser &p); + + explicit messageRange(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageReactions final : public Object { + public: + int32 flags_; + bool min_; + bool can_see_list_; + array<object_ptr<reactionCount>> results_; + array<object_ptr<messagePeerReaction>> recent_reactions_; + + messageReactions(); + + static const std::int32_t ID = 1328256121; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messageReactions> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageReplies final : public Object { + public: + int32 flags_; + bool comments_; + int32 replies_; + int32 replies_pts_; + array<object_ptr<Peer>> recent_repliers_; + int64 channel_id_; + int32 max_id_; + int32 read_max_id_; + enum Flags : std::int32_t { CHANNEL_ID_MASK = 1, MAX_ID_MASK = 4, READ_MAX_ID_MASK = 8 }; + + messageReplies(); + + static const std::int32_t ID = -2083123262; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messageReplies> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageReplyHeader final : public Object { + public: + int32 flags_; + bool reply_to_scheduled_; + bool forum_topic_; + int32 reply_to_msg_id_; + object_ptr<Peer> reply_to_peer_id_; + int32 reply_to_top_id_; + enum Flags : std::int32_t { REPLY_TO_TOP_ID_MASK = 2 }; + + messageReplyHeader(); + + static const std::int32_t ID = -1495959709; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messageReplyHeader> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessageUserVote: public Object { + public: + + static object_ptr<MessageUserVote> fetch(TlBufferParser &p); +}; + +class messageUserVote final : public MessageUserVote { + public: + int64 user_id_; + bytes option_; + int32 date_; + + static const std::int32_t ID = 886196148; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageUserVote> fetch(TlBufferParser &p); + + explicit messageUserVote(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageUserVoteInputOption final : public MessageUserVote { + public: + int64 user_id_; + int32 date_; + + static const std::int32_t ID = 1017491692; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageUserVote> fetch(TlBufferParser &p); + + explicit messageUserVoteInputOption(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageUserVoteMultiple final : public MessageUserVote { + public: + int64 user_id_; + array<bytes> options_; + int32 date_; + + static const std::int32_t ID = -1973033641; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessageUserVote> fetch(TlBufferParser &p); + + explicit messageUserVoteMultiple(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messageViews final : public Object { + public: + int32 flags_; + int32 views_; + int32 forwards_; + object_ptr<messageReplies> replies_; + enum Flags : std::int32_t { VIEWS_MASK = 1, FORWARDS_MASK = 2 }; + + messageViews(); + + static const std::int32_t ID = 1163625789; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messageViews> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class MessagesFilter: public Object { + public: + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); +}; + +class inputMessagesFilterEmpty final : public MessagesFilter { + public: + + static const std::int32_t ID = 1474492012; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterPhotos final : public MessagesFilter { + public: + + static const std::int32_t ID = -1777752804; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterVideo final : public MessagesFilter { + public: + + static const std::int32_t ID = -1614803355; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterPhotoVideo final : public MessagesFilter { + public: + + static const std::int32_t ID = 1458172132; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterDocument final : public MessagesFilter { + public: + + static const std::int32_t ID = -1629621880; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterUrl final : public MessagesFilter { + public: + + static const std::int32_t ID = 2129714567; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterGif final : public MessagesFilter { + public: + + static const std::int32_t ID = -3644025; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterVoice final : public MessagesFilter { + public: + + static const std::int32_t ID = 1358283666; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterMusic final : public MessagesFilter { + public: + + static const std::int32_t ID = 928101534; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterChatPhotos final : public MessagesFilter { + public: + + static const std::int32_t ID = 975236280; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterPhoneCalls final : public MessagesFilter { + public: + int32 flags_; + bool missed_; + enum Flags : std::int32_t { MISSED_MASK = 1 }; + + inputMessagesFilterPhoneCalls(); + + inputMessagesFilterPhoneCalls(int32 flags_, bool missed_); + + static const std::int32_t ID = -2134272152; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterRoundVoice final : public MessagesFilter { + public: + + static const std::int32_t ID = 2054952868; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterRoundVideo final : public MessagesFilter { + public: + + static const std::int32_t ID = -1253451181; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterMyMentions final : public MessagesFilter { + public: + + static const std::int32_t ID = -1040652646; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterGeo final : public MessagesFilter { + public: + + static const std::int32_t ID = -419271411; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterContacts final : public MessagesFilter { + public: + + static const std::int32_t ID = -530392189; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputMessagesFilterPinned final : public MessagesFilter { + public: + + static const std::int32_t ID = 464520273; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<MessagesFilter> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class nearestDc final : public Object { + public: + string country_; + int32 this_dc_; + int32 nearest_dc_; + + static const std::int32_t ID = -1910892683; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<nearestDc> fetch(TlBufferParser &p); + + explicit nearestDc(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class NotificationSound: public Object { + public: + + static object_ptr<NotificationSound> fetch(TlBufferParser &p); +}; + +class notificationSoundDefault final : public NotificationSound { + public: + + static const std::int32_t ID = -1746354498; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotificationSound> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationSoundNone final : public NotificationSound { + public: + + static const std::int32_t ID = 1863070943; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotificationSound> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationSoundLocal final : public NotificationSound { + public: + string title_; + string data_; + + notificationSoundLocal(string const &title_, string const &data_); + + static const std::int32_t ID = -2096391452; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotificationSound> fetch(TlBufferParser &p); + + explicit notificationSoundLocal(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notificationSoundRingtone final : public NotificationSound { + public: + int64 id_; + + explicit notificationSoundRingtone(int64 id_); + + static const std::int32_t ID = -9666487; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotificationSound> fetch(TlBufferParser &p); + + explicit notificationSoundRingtone(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class NotifyPeer: public Object { + public: + + static object_ptr<NotifyPeer> fetch(TlBufferParser &p); +}; + +class notifyPeer final : public NotifyPeer { + public: + object_ptr<Peer> peer_; + + static const std::int32_t ID = -1613493288; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotifyPeer> fetch(TlBufferParser &p); + + explicit notifyPeer(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notifyUsers final : public NotifyPeer { + public: + + static const std::int32_t ID = -1261946036; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotifyPeer> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notifyChats final : public NotifyPeer { + public: + + static const std::int32_t ID = -1073230141; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotifyPeer> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notifyBroadcasts final : public NotifyPeer { + public: + + static const std::int32_t ID = -703403793; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotifyPeer> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class notifyForumTopic final : public NotifyPeer { + public: + object_ptr<Peer> peer_; + int32 top_msg_id_; + + static const std::int32_t ID = 577659656; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<NotifyPeer> fetch(TlBufferParser &p); + + explicit notifyForumTopic(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class page final : public Object { + public: + int32 flags_; + bool part_; + bool rtl_; + bool v2_; + string url_; + array<object_ptr<PageBlock>> blocks_; + array<object_ptr<Photo>> photos_; + array<object_ptr<Document>> documents_; + int32 views_; + enum Flags : std::int32_t { VIEWS_MASK = 8 }; + + page(); + + static const std::int32_t ID = -1738178803; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<page> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PageBlock: public Object { + public: + + static object_ptr<PageBlock> fetch(TlBufferParser &p); +}; + +class pageBlockUnsupported final : public PageBlock { + public: + + static const std::int32_t ID = 324435594; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockTitle final : public PageBlock { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = 1890305021; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockTitle(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockSubtitle final : public PageBlock { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -1879401953; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockSubtitle(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockAuthorDate final : public PageBlock { + public: + object_ptr<RichText> author_; + int32 published_date_; + + static const std::int32_t ID = -1162877472; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockAuthorDate(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockHeader final : public PageBlock { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -1076861716; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockHeader(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockSubheader final : public PageBlock { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -248793375; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockSubheader(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockParagraph final : public PageBlock { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = 1182402406; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockParagraph(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockPreformatted final : public PageBlock { + public: + object_ptr<RichText> text_; + string language_; + + static const std::int32_t ID = -1066346178; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockPreformatted(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockFooter final : public PageBlock { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = 1216809369; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockFooter(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockDivider final : public PageBlock { + public: + + static const std::int32_t ID = -618614392; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockAnchor final : public PageBlock { + public: + string name_; + + static const std::int32_t ID = -837994576; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockAnchor(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockList final : public PageBlock { + public: + array<object_ptr<PageListItem>> items_; + + static const std::int32_t ID = -454524911; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockList(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockBlockquote final : public PageBlock { + public: + object_ptr<RichText> text_; + object_ptr<RichText> caption_; + + static const std::int32_t ID = 641563686; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockBlockquote(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockPullquote final : public PageBlock { + public: + object_ptr<RichText> text_; + object_ptr<RichText> caption_; + + static const std::int32_t ID = 1329878739; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockPullquote(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockPhoto final : public PageBlock { + public: + int32 flags_; + int64 photo_id_; + object_ptr<pageCaption> caption_; + string url_; + int64 webpage_id_; + enum Flags : std::int32_t { URL_MASK = 1, WEBPAGE_ID_MASK = 1 }; + + pageBlockPhoto(); + + static const std::int32_t ID = 391759200; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockVideo final : public PageBlock { + public: + int32 flags_; + bool autoplay_; + bool loop_; + int64 video_id_; + object_ptr<pageCaption> caption_; + + pageBlockVideo(); + + static const std::int32_t ID = 2089805750; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockCover final : public PageBlock { + public: + object_ptr<PageBlock> cover_; + + static const std::int32_t ID = 972174080; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockCover(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockEmbed final : public PageBlock { + public: + int32 flags_; + bool full_width_; + bool allow_scrolling_; + string url_; + string html_; + int64 poster_photo_id_; + int32 w_; + int32 h_; + object_ptr<pageCaption> caption_; + enum Flags : std::int32_t { URL_MASK = 2, HTML_MASK = 4, POSTER_PHOTO_ID_MASK = 16, W_MASK = 32, H_MASK = 32 }; + + pageBlockEmbed(); + + static const std::int32_t ID = -1468953147; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockEmbedPost final : public PageBlock { + public: + string url_; + int64 webpage_id_; + int64 author_photo_id_; + string author_; + int32 date_; + array<object_ptr<PageBlock>> blocks_; + object_ptr<pageCaption> caption_; + + static const std::int32_t ID = -229005301; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockEmbedPost(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockCollage final : public PageBlock { + public: + array<object_ptr<PageBlock>> items_; + object_ptr<pageCaption> caption_; + + static const std::int32_t ID = 1705048653; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockCollage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockSlideshow final : public PageBlock { + public: + array<object_ptr<PageBlock>> items_; + object_ptr<pageCaption> caption_; + + static const std::int32_t ID = 52401552; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockSlideshow(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockChannel final : public PageBlock { + public: + object_ptr<Chat> channel_; + + static const std::int32_t ID = -283684427; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockChannel(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockAudio final : public PageBlock { + public: + int64 audio_id_; + object_ptr<pageCaption> caption_; + + static const std::int32_t ID = -2143067670; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockAudio(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockKicker final : public PageBlock { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = 504660880; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockKicker(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockTable final : public PageBlock { + public: + int32 flags_; + bool bordered_; + bool striped_; + object_ptr<RichText> title_; + array<object_ptr<pageTableRow>> rows_; + + pageBlockTable(); + + static const std::int32_t ID = -1085412734; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockOrderedList final : public PageBlock { + public: + array<object_ptr<PageListOrderedItem>> items_; + + static const std::int32_t ID = -1702174239; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockOrderedList(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockDetails final : public PageBlock { + public: + int32 flags_; + bool open_; + array<object_ptr<PageBlock>> blocks_; + object_ptr<RichText> title_; + + pageBlockDetails(); + + static const std::int32_t ID = 1987480557; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockRelatedArticles final : public PageBlock { + public: + object_ptr<RichText> title_; + array<object_ptr<pageRelatedArticle>> articles_; + + static const std::int32_t ID = 370236054; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockRelatedArticles(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageBlockMap final : public PageBlock { + public: + object_ptr<GeoPoint> geo_; + int32 zoom_; + int32 w_; + int32 h_; + object_ptr<pageCaption> caption_; + + static const std::int32_t ID = -1538310410; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageBlock> fetch(TlBufferParser &p); + + explicit pageBlockMap(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageCaption final : public Object { + public: + object_ptr<RichText> text_; + object_ptr<RichText> credit_; + + static const std::int32_t ID = 1869903447; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pageCaption> fetch(TlBufferParser &p); + + explicit pageCaption(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PageListItem: public Object { + public: + + static object_ptr<PageListItem> fetch(TlBufferParser &p); +}; + +class pageListItemText final : public PageListItem { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -1188055347; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageListItem> fetch(TlBufferParser &p); + + explicit pageListItemText(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageListItemBlocks final : public PageListItem { + public: + array<object_ptr<PageBlock>> blocks_; + + static const std::int32_t ID = 635466748; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageListItem> fetch(TlBufferParser &p); + + explicit pageListItemBlocks(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PageListOrderedItem: public Object { + public: + + static object_ptr<PageListOrderedItem> fetch(TlBufferParser &p); +}; + +class pageListOrderedItemText final : public PageListOrderedItem { + public: + string num_; + object_ptr<RichText> text_; + + static const std::int32_t ID = 1577484359; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageListOrderedItem> fetch(TlBufferParser &p); + + explicit pageListOrderedItemText(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageListOrderedItemBlocks final : public PageListOrderedItem { + public: + string num_; + array<object_ptr<PageBlock>> blocks_; + + static const std::int32_t ID = -1730311882; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PageListOrderedItem> fetch(TlBufferParser &p); + + explicit pageListOrderedItemBlocks(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageRelatedArticle final : public Object { + public: + int32 flags_; + string url_; + int64 webpage_id_; + string title_; + string description_; + int64 photo_id_; + string author_; + int32 published_date_; + enum Flags : std::int32_t { TITLE_MASK = 1, DESCRIPTION_MASK = 2, PHOTO_ID_MASK = 4, AUTHOR_MASK = 8, PUBLISHED_DATE_MASK = 16 }; + + pageRelatedArticle(); + + static const std::int32_t ID = -1282352120; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pageRelatedArticle> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageTableCell final : public Object { + public: + int32 flags_; + bool header_; + bool align_center_; + bool align_right_; + bool valign_middle_; + bool valign_bottom_; + object_ptr<RichText> text_; + int32 colspan_; + int32 rowspan_; + enum Flags : std::int32_t { COLSPAN_MASK = 2, ROWSPAN_MASK = 4 }; + + pageTableCell(); + + static const std::int32_t ID = 878078826; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pageTableCell> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pageTableRow final : public Object { + public: + array<object_ptr<pageTableCell>> cells_; + + static const std::int32_t ID = -524237339; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pageTableRow> fetch(TlBufferParser &p); + + explicit pageTableRow(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PasswordKdfAlgo: public Object { + public: + + static object_ptr<PasswordKdfAlgo> fetch(TlBufferParser &p); +}; + +class passwordKdfAlgoUnknown final : public PasswordKdfAlgo { + public: + + static const std::int32_t ID = -732254058; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PasswordKdfAlgo> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow final : public PasswordKdfAlgo { + public: + bytes salt1_; + bytes salt2_; + int32 g_; + bytes p_; + + passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(bytes &&salt1_, bytes &&salt2_, int32 g_, bytes &&p_); + + static const std::int32_t ID = 982592842; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PasswordKdfAlgo> fetch(TlBufferParser &p); + + explicit passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentCharge final : public Object { + public: + string id_; + string provider_charge_id_; + + static const std::int32_t ID = -368917890; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<paymentCharge> fetch(TlBufferParser &p); + + explicit paymentCharge(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentFormMethod final : public Object { + public: + string url_; + string title_; + + static const std::int32_t ID = -1996951013; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<paymentFormMethod> fetch(TlBufferParser &p); + + explicit paymentFormMethod(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentRequestedInfo final : public Object { + public: + int32 flags_; + string name_; + string phone_; + string email_; + object_ptr<postAddress> shipping_address_; + enum Flags : std::int32_t { NAME_MASK = 1, PHONE_MASK = 2, EMAIL_MASK = 4, SHIPPING_ADDRESS_MASK = 8 }; + + paymentRequestedInfo(); + + paymentRequestedInfo(int32 flags_, string const &name_, string const &phone_, string const &email_, object_ptr<postAddress> &&shipping_address_); + + static const std::int32_t ID = -1868808300; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<paymentRequestedInfo> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class paymentSavedCredentialsCard final : public Object { + public: + string id_; + string title_; + + static const std::int32_t ID = -842892769; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<paymentSavedCredentialsCard> fetch(TlBufferParser &p); + + explicit paymentSavedCredentialsCard(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Peer: public Object { + public: + + static object_ptr<Peer> fetch(TlBufferParser &p); +}; + +class peerUser final : public Peer { + public: + int64 user_id_; + + explicit peerUser(int64 user_id_); + + static const std::int32_t ID = 1498486562; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Peer> fetch(TlBufferParser &p); + + explicit peerUser(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class peerChat final : public Peer { + public: + int64 chat_id_; + + explicit peerChat(int64 chat_id_); + + static const std::int32_t ID = 918946202; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Peer> fetch(TlBufferParser &p); + + explicit peerChat(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class peerChannel final : public Peer { + public: + int64 channel_id_; + + static const std::int32_t ID = -1566230754; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Peer> fetch(TlBufferParser &p); + + explicit peerChannel(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class peerBlocked final : public Object { + public: + object_ptr<Peer> peer_id_; + int32 date_; + + static const std::int32_t ID = -386039788; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<peerBlocked> fetch(TlBufferParser &p); + + explicit peerBlocked(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PeerLocated: public Object { + public: + + static object_ptr<PeerLocated> fetch(TlBufferParser &p); +}; + +class peerLocated final : public PeerLocated { + public: + object_ptr<Peer> peer_; + int32 expires_; + int32 distance_; + + static const std::int32_t ID = -901375139; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PeerLocated> fetch(TlBufferParser &p); + + explicit peerLocated(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class peerSelfLocated final : public PeerLocated { + public: + int32 expires_; + + static const std::int32_t ID = -118740917; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PeerLocated> fetch(TlBufferParser &p); + + explicit peerSelfLocated(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class peerNotifySettings final : public Object { + public: + int32 flags_; + bool show_previews_; + bool silent_; + int32 mute_until_; + object_ptr<NotificationSound> ios_sound_; + object_ptr<NotificationSound> android_sound_; + object_ptr<NotificationSound> other_sound_; + enum Flags : std::int32_t { SHOW_PREVIEWS_MASK = 1, SILENT_MASK = 2, MUTE_UNTIL_MASK = 4 }; + + peerNotifySettings(); + + static const std::int32_t ID = -1472527322; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<peerNotifySettings> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class peerSettings final : public Object { + public: + int32 flags_; + bool report_spam_; + bool add_contact_; + bool block_contact_; + bool share_contact_; + bool need_contacts_exception_; + bool report_geo_; + bool autoarchived_; + bool invite_members_; + bool request_chat_broadcast_; + int32 geo_distance_; + string request_chat_title_; + int32 request_chat_date_; + enum Flags : std::int32_t { GEO_DISTANCE_MASK = 64, REQUEST_CHAT_TITLE_MASK = 512, REQUEST_CHAT_DATE_MASK = 512 }; + + peerSettings(); + + static const std::int32_t ID = -1525149427; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<peerSettings> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PhoneCall: public Object { + public: + + static object_ptr<PhoneCall> fetch(TlBufferParser &p); +}; + +class phoneCallEmpty final : public PhoneCall { + public: + int64 id_; + + static const std::int32_t ID = 1399245077; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCall> fetch(TlBufferParser &p); + + explicit phoneCallEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallWaiting final : public PhoneCall { + public: + int32 flags_; + bool video_; + int64 id_; + int64 access_hash_; + int32 date_; + int64 admin_id_; + int64 participant_id_; + object_ptr<phoneCallProtocol> protocol_; + int32 receive_date_; + enum Flags : std::int32_t { RECEIVE_DATE_MASK = 1 }; + + phoneCallWaiting(); + + static const std::int32_t ID = -987599081; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCall> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallRequested final : public PhoneCall { + public: + int32 flags_; + bool video_; + int64 id_; + int64 access_hash_; + int32 date_; + int64 admin_id_; + int64 participant_id_; + bytes g_a_hash_; + object_ptr<phoneCallProtocol> protocol_; + + phoneCallRequested(); + + static const std::int32_t ID = 347139340; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCall> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallAccepted final : public PhoneCall { + public: + int32 flags_; + bool video_; + int64 id_; + int64 access_hash_; + int32 date_; + int64 admin_id_; + int64 participant_id_; + bytes g_b_; + object_ptr<phoneCallProtocol> protocol_; + + phoneCallAccepted(); + + static const std::int32_t ID = 912311057; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCall> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCall final : public PhoneCall { + public: + int32 flags_; + bool p2p_allowed_; + bool video_; + int64 id_; + int64 access_hash_; + int32 date_; + int64 admin_id_; + int64 participant_id_; + bytes g_a_or_b_; + int64 key_fingerprint_; + object_ptr<phoneCallProtocol> protocol_; + array<object_ptr<PhoneConnection>> connections_; + int32 start_date_; + + phoneCall(); + + static const std::int32_t ID = -1770029977; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCall> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallDiscarded final : public PhoneCall { + public: + int32 flags_; + bool need_rating_; + bool need_debug_; + bool video_; + int64 id_; + object_ptr<PhoneCallDiscardReason> reason_; + int32 duration_; + enum Flags : std::int32_t { DURATION_MASK = 2 }; + + phoneCallDiscarded(); + + static const std::int32_t ID = 1355435489; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCall> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PhoneCallDiscardReason: public Object { + public: + + static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p); +}; + +class phoneCallDiscardReasonMissed final : public PhoneCallDiscardReason { + public: + + static const std::int32_t ID = -2048646399; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallDiscardReasonDisconnect final : public PhoneCallDiscardReason { + public: + + static const std::int32_t ID = -527056480; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallDiscardReasonHangup final : public PhoneCallDiscardReason { + public: + + static const std::int32_t ID = 1471006352; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallDiscardReasonBusy final : public PhoneCallDiscardReason { + public: + + static const std::int32_t ID = -84416311; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneCallDiscardReason> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneCallProtocol final : public Object { + public: + int32 flags_; + bool udp_p2p_; + bool udp_reflector_; + int32 min_layer_; + int32 max_layer_; + array<string> library_versions_; + enum Flags : std::int32_t { UDP_P2P_MASK = 1, UDP_REFLECTOR_MASK = 2 }; + + phoneCallProtocol(); + + phoneCallProtocol(int32 flags_, bool udp_p2p_, bool udp_reflector_, int32 min_layer_, int32 max_layer_, array<string> &&library_versions_); + + static const std::int32_t ID = -58224696; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phoneCallProtocol> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PhoneConnection: public Object { + public: + + static object_ptr<PhoneConnection> fetch(TlBufferParser &p); +}; + +class phoneConnection final : public PhoneConnection { + public: + int32 flags_; + bool tcp_; + int64 id_; + string ip_; + string ipv6_; + int32 port_; + bytes peer_tag_; + + phoneConnection(); + + static const std::int32_t ID = -1665063993; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneConnection> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phoneConnectionWebrtc final : public PhoneConnection { + public: + int32 flags_; + bool turn_; + bool stun_; + int64 id_; + string ip_; + string ipv6_; + int32 port_; + string username_; + string password_; + + phoneConnectionWebrtc(); + + static const std::int32_t ID = 1667228533; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhoneConnection> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Photo: public Object { + public: + + static object_ptr<Photo> fetch(TlBufferParser &p); +}; + +class photoEmpty final : public Photo { + public: + int64 id_; + + static const std::int32_t ID = 590459437; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Photo> fetch(TlBufferParser &p); + + explicit photoEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photo final : public Photo { + public: + int32 flags_; + bool has_stickers_; + int64 id_; + int64 access_hash_; + bytes file_reference_; + int32 date_; + array<object_ptr<PhotoSize>> sizes_; + array<object_ptr<videoSize>> video_sizes_; + int32 dc_id_; + + photo(); + + static const std::int32_t ID = -82216347; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Photo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PhotoSize: public Object { + public: + + static object_ptr<PhotoSize> fetch(TlBufferParser &p); +}; + +class photoSizeEmpty final : public PhotoSize { + public: + string type_; + + explicit photoSizeEmpty(string const &type_); + + static const std::int32_t ID = 236446268; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlBufferParser &p); + + explicit photoSizeEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoSize final : public PhotoSize { + public: + string type_; + int32 w_; + int32 h_; + int32 size_; + + photoSize(string const &type_, int32 w_, int32 h_, int32 size_); + + static const std::int32_t ID = 1976012384; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlBufferParser &p); + + explicit photoSize(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoCachedSize final : public PhotoSize { + public: + string type_; + int32 w_; + int32 h_; + bytes bytes_; + + photoCachedSize(string const &type_, int32 w_, int32 h_, bytes &&bytes_); + + static const std::int32_t ID = 35527382; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlBufferParser &p); + + explicit photoCachedSize(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoStrippedSize final : public PhotoSize { + public: + string type_; + bytes bytes_; + + static const std::int32_t ID = -525288402; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlBufferParser &p); + + explicit photoStrippedSize(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoSizeProgressive final : public PhotoSize { + public: + string type_; + int32 w_; + int32 h_; + array<int32> sizes_; + + static const std::int32_t ID = -96535659; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlBufferParser &p); + + explicit photoSizeProgressive(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photoPathSize final : public PhotoSize { + public: + string type_; + bytes bytes_; + + static const std::int32_t ID = -668906175; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PhotoSize> fetch(TlBufferParser &p); + + explicit photoPathSize(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class poll final : public Object { + public: + int64 id_; + int32 flags_; + bool closed_; + bool public_voters_; + bool multiple_choice_; + bool quiz_; + string question_; + array<object_ptr<pollAnswer>> answers_; + int32 close_period_; + int32 close_date_; + enum Flags : std::int32_t { CLOSED_MASK = 1, PUBLIC_VOTERS_MASK = 2, MULTIPLE_CHOICE_MASK = 4, QUIZ_MASK = 8, CLOSE_PERIOD_MASK = 16, CLOSE_DATE_MASK = 32 }; + + poll(); + + poll(int64 id_, int32 flags_, bool closed_, bool public_voters_, bool multiple_choice_, bool quiz_, string const &question_, array<object_ptr<pollAnswer>> &&answers_, int32 close_period_, int32 close_date_); + + static const std::int32_t ID = -2032041631; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<poll> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pollAnswer final : public Object { + public: + string text_; + bytes option_; + + pollAnswer(string const &text_, bytes &&option_); + + static const std::int32_t ID = 1823064809; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pollAnswer> fetch(TlBufferParser &p); + + explicit pollAnswer(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pollAnswerVoters final : public Object { + public: + int32 flags_; + bool chosen_; + bool correct_; + bytes option_; + int32 voters_; + + pollAnswerVoters(); + + static const std::int32_t ID = 997055186; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pollAnswerVoters> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class pollResults final : public Object { + public: + int32 flags_; + bool min_; + array<object_ptr<pollAnswerVoters>> results_; + int32 total_voters_; + array<int64> recent_voters_; + string solution_; + array<object_ptr<MessageEntity>> solution_entities_; + enum Flags : std::int32_t { TOTAL_VOTERS_MASK = 4, SOLUTION_MASK = 16 }; + + pollResults(); + + static const std::int32_t ID = -591909213; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<pollResults> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class popularContact final : public Object { + public: + int64 client_id_; + int32 importers_; + + static const std::int32_t ID = 1558266229; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<popularContact> fetch(TlBufferParser &p); + + explicit popularContact(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class postAddress final : public Object { + public: + string street_line1_; + string street_line2_; + string city_; + string state_; + string country_iso2_; + string post_code_; + + postAddress(string const &street_line1_, string const &street_line2_, string const &city_, string const &state_, string const &country_iso2_, string const &post_code_); + + static const std::int32_t ID = 512535275; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<postAddress> fetch(TlBufferParser &p); + + explicit postAddress(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumGiftOption final : public Object { + public: + int32 flags_; + int32 months_; + string currency_; + int64 amount_; + string bot_url_; + string store_product_; + enum Flags : std::int32_t { STORE_PRODUCT_MASK = 1 }; + + premiumGiftOption(); + + static const std::int32_t ID = 1958953753; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<premiumGiftOption> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class premiumSubscriptionOption final : public Object { + public: + int32 flags_; + bool current_; + bool can_purchase_upgrade_; + int32 months_; + string currency_; + int64 amount_; + string bot_url_; + string store_product_; + enum Flags : std::int32_t { STORE_PRODUCT_MASK = 1 }; + + premiumSubscriptionOption(); + + static const std::int32_t ID = -1225711938; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<premiumSubscriptionOption> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PrivacyKey: public Object { + public: + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); +}; + +class privacyKeyStatusTimestamp final : public PrivacyKey { + public: + + static const std::int32_t ID = -1137792208; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyChatInvite final : public PrivacyKey { + public: + + static const std::int32_t ID = 1343122938; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyPhoneCall final : public PrivacyKey { + public: + + static const std::int32_t ID = 1030105979; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyPhoneP2P final : public PrivacyKey { + public: + + static const std::int32_t ID = 961092808; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyForwards final : public PrivacyKey { + public: + + static const std::int32_t ID = 1777096355; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyProfilePhoto final : public PrivacyKey { + public: + + static const std::int32_t ID = -1777000467; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyPhoneNumber final : public PrivacyKey { + public: + + static const std::int32_t ID = -778378131; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyAddedByPhone final : public PrivacyKey { + public: + + static const std::int32_t ID = 1124062251; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyKeyVoiceMessages final : public PrivacyKey { + public: + + static const std::int32_t ID = 110621716; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyKey> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class PrivacyRule: public Object { + public: + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); +}; + +class privacyValueAllowContacts final : public PrivacyRule { + public: + + static const std::int32_t ID = -123988; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyValueAllowAll final : public PrivacyRule { + public: + + static const std::int32_t ID = 1698855810; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyValueAllowUsers final : public PrivacyRule { + public: + array<int64> users_; + + static const std::int32_t ID = -1198497870; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + explicit privacyValueAllowUsers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyValueDisallowContacts final : public PrivacyRule { + public: + + static const std::int32_t ID = -125240806; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyValueDisallowAll final : public PrivacyRule { + public: + + static const std::int32_t ID = -1955338397; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyValueDisallowUsers final : public PrivacyRule { + public: + array<int64> users_; + + static const std::int32_t ID = -463335103; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + explicit privacyValueDisallowUsers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyValueAllowChatParticipants final : public PrivacyRule { + public: + array<int64> chats_; + + static const std::int32_t ID = 1796427406; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + explicit privacyValueAllowChatParticipants(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class privacyValueDisallowChatParticipants final : public PrivacyRule { + public: + array<int64> chats_; + + static const std::int32_t ID = 1103656293; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<PrivacyRule> fetch(TlBufferParser &p); + + explicit privacyValueDisallowChatParticipants(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Reaction: public Object { + public: + + static object_ptr<Reaction> fetch(TlBufferParser &p); +}; + +class reactionEmpty final : public Reaction { + public: + + static const std::int32_t ID = 2046153753; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Reaction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reactionEmoji final : public Reaction { + public: + string emoticon_; + + explicit reactionEmoji(string const &emoticon_); + + static const std::int32_t ID = 455247544; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Reaction> fetch(TlBufferParser &p); + + explicit reactionEmoji(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reactionCustomEmoji final : public Reaction { + public: + int64 document_id_; + + explicit reactionCustomEmoji(int64 document_id_); + + static const std::int32_t ID = -1992950669; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Reaction> fetch(TlBufferParser &p); + + explicit reactionCustomEmoji(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class reactionCount final : public Object { + public: + int32 flags_; + int32 chosen_order_; + object_ptr<Reaction> reaction_; + int32 count_; + enum Flags : std::int32_t { CHOSEN_ORDER_MASK = 1 }; + + reactionCount(); + + static const std::int32_t ID = -1546531968; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<reactionCount> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class receivedNotifyMessage final : public Object { + public: + int32 id_; + int32 flags_; + + static const std::int32_t ID = -1551583367; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<receivedNotifyMessage> fetch(TlBufferParser &p); + + explicit receivedNotifyMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class RecentMeUrl: public Object { + public: + + static object_ptr<RecentMeUrl> fetch(TlBufferParser &p); +}; + +class recentMeUrlUnknown final : public RecentMeUrl { + public: + string url_; + + static const std::int32_t ID = 1189204285; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RecentMeUrl> fetch(TlBufferParser &p); + + explicit recentMeUrlUnknown(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recentMeUrlUser final : public RecentMeUrl { + public: + string url_; + int64 user_id_; + + static const std::int32_t ID = -1188296222; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RecentMeUrl> fetch(TlBufferParser &p); + + explicit recentMeUrlUser(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recentMeUrlChat final : public RecentMeUrl { + public: + string url_; + int64 chat_id_; + + static const std::int32_t ID = -1294306862; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RecentMeUrl> fetch(TlBufferParser &p); + + explicit recentMeUrlChat(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recentMeUrlChatInvite final : public RecentMeUrl { + public: + string url_; + object_ptr<ChatInvite> chat_invite_; + + static const std::int32_t ID = -347535331; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RecentMeUrl> fetch(TlBufferParser &p); + + explicit recentMeUrlChatInvite(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class recentMeUrlStickerSet final : public RecentMeUrl { + public: + string url_; + object_ptr<StickerSetCovered> set_; + + static const std::int32_t ID = -1140172836; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RecentMeUrl> fetch(TlBufferParser &p); + + explicit recentMeUrlStickerSet(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ReplyMarkup: public Object { + public: + + static object_ptr<ReplyMarkup> fetch(TlBufferParser &p); +}; + +class replyKeyboardHide final : public ReplyMarkup { + public: + int32 flags_; + bool selective_; + enum Flags : std::int32_t { SELECTIVE_MASK = 4 }; + + replyKeyboardHide(); + + replyKeyboardHide(int32 flags_, bool selective_); + + static const std::int32_t ID = -1606526075; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ReplyMarkup> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replyKeyboardForceReply final : public ReplyMarkup { + public: + int32 flags_; + bool single_use_; + bool selective_; + string placeholder_; + enum Flags : std::int32_t { SINGLE_USE_MASK = 2, SELECTIVE_MASK = 4, PLACEHOLDER_MASK = 8 }; + + replyKeyboardForceReply(); + + replyKeyboardForceReply(int32 flags_, bool single_use_, bool selective_, string const &placeholder_); + + static const std::int32_t ID = -2035021048; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ReplyMarkup> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replyKeyboardMarkup final : public ReplyMarkup { + public: + int32 flags_; + bool resize_; + bool single_use_; + bool selective_; + array<object_ptr<keyboardButtonRow>> rows_; + string placeholder_; + enum Flags : std::int32_t { RESIZE_MASK = 1, SINGLE_USE_MASK = 2, SELECTIVE_MASK = 4, PLACEHOLDER_MASK = 8 }; + + replyKeyboardMarkup(); + + replyKeyboardMarkup(int32 flags_, bool resize_, bool single_use_, bool selective_, array<object_ptr<keyboardButtonRow>> &&rows_, string const &placeholder_); + + static const std::int32_t ID = -2049074735; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ReplyMarkup> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class replyInlineMarkup final : public ReplyMarkup { + public: + array<object_ptr<keyboardButtonRow>> rows_; + + explicit replyInlineMarkup(array<object_ptr<keyboardButtonRow>> &&rows_); + + static const std::int32_t ID = 1218642516; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<ReplyMarkup> fetch(TlBufferParser &p); + + explicit replyInlineMarkup(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class ReportReason: public Object { + public: +}; + +class inputReportReasonSpam final : public ReportReason { + public: + + static const std::int32_t ID = 1490799288; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonViolence final : public ReportReason { + public: + + static const std::int32_t ID = 505595789; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonPornography final : public ReportReason { + public: + + static const std::int32_t ID = 777640226; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonChildAbuse final : public ReportReason { + public: + + static const std::int32_t ID = -1376497949; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonOther final : public ReportReason { + public: + + static const std::int32_t ID = -1041980751; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonCopyright final : public ReportReason { + public: + + static const std::int32_t ID = -1685456582; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonGeoIrrelevant final : public ReportReason { + public: + + static const std::int32_t ID = -606798099; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonFake final : public ReportReason { + public: + + static const std::int32_t ID = -170010905; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonIllegalDrugs final : public ReportReason { + public: + + static const std::int32_t ID = 177124030; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class inputReportReasonPersonalDetails final : public ReportReason { + public: + + static const std::int32_t ID = -1631091139; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class restrictionReason final : public Object { + public: + string platform_; + string reason_; + string text_; + + static const std::int32_t ID = -797791052; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<restrictionReason> fetch(TlBufferParser &p); + + explicit restrictionReason(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class RichText: public Object { + public: + + static object_ptr<RichText> fetch(TlBufferParser &p); +}; + +class textEmpty final : public RichText { + public: + + static const std::int32_t ID = -599948721; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textPlain final : public RichText { + public: + string text_; + + static const std::int32_t ID = 1950782688; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textPlain(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textBold final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = 1730456516; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textBold(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textItalic final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -653089380; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textItalic(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textUnderline final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -1054465340; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textUnderline(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textStrike final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -1678197867; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textStrike(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textFixed final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = 1816074681; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textFixed(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textUrl final : public RichText { + public: + object_ptr<RichText> text_; + string url_; + int64 webpage_id_; + + static const std::int32_t ID = 1009288385; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textUrl(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textEmail final : public RichText { + public: + object_ptr<RichText> text_; + string email_; + + static const std::int32_t ID = -564523562; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textEmail(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textConcat final : public RichText { + public: + array<object_ptr<RichText>> texts_; + + static const std::int32_t ID = 2120376535; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textConcat(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textSubscript final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -311786236; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textSubscript(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textSuperscript final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = -939827711; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textSuperscript(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textMarked final : public RichText { + public: + object_ptr<RichText> text_; + + static const std::int32_t ID = 55281185; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textMarked(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textPhone final : public RichText { + public: + object_ptr<RichText> text_; + string phone_; + + static const std::int32_t ID = 483104362; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textPhone(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textImage final : public RichText { + public: + int64 document_id_; + int32 w_; + int32 h_; + + static const std::int32_t ID = 136105807; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textImage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class textAnchor final : public RichText { + public: + object_ptr<RichText> text_; + string name_; + + static const std::int32_t ID = 894777186; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<RichText> fetch(TlBufferParser &p); + + explicit textAnchor(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class savedPhoneContact final : public Object { + public: + string phone_; + string first_name_; + string last_name_; + int32 date_; + + static const std::int32_t ID = 289586518; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<savedPhoneContact> fetch(TlBufferParser &p); + + explicit savedPhoneContact(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchResultsCalendarPeriod final : public Object { + public: + int32 date_; + int32 min_msg_id_; + int32 max_msg_id_; + int32 count_; + + static const std::int32_t ID = -911191137; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<searchResultsCalendarPeriod> fetch(TlBufferParser &p); + + explicit searchResultsCalendarPeriod(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class searchResultPosition final : public Object { + public: + int32 msg_id_; + int32 date_; + int32 offset_; + + static const std::int32_t ID = 2137295719; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<searchResultPosition> fetch(TlBufferParser &p); + + explicit searchResultPosition(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureCredentialsEncrypted final : public Object { + public: + bytes data_; + bytes hash_; + bytes secret_; + + secureCredentialsEncrypted(bytes &&data_, bytes &&hash_, bytes &&secret_); + + static const std::int32_t ID = 871426631; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<secureCredentialsEncrypted> fetch(TlBufferParser &p); + + explicit secureCredentialsEncrypted(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureData final : public Object { + public: + bytes data_; + bytes data_hash_; + bytes secret_; + + secureData(bytes &&data_, bytes &&data_hash_, bytes &&secret_); + + static const std::int32_t ID = -1964327229; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<secureData> fetch(TlBufferParser &p); + + explicit secureData(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SecureFile: public Object { + public: + + static object_ptr<SecureFile> fetch(TlBufferParser &p); +}; + +class secureFileEmpty final : public SecureFile { + public: + + static const std::int32_t ID = 1679398724; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureFile> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureFile final : public SecureFile { + public: + int64 id_; + int64 access_hash_; + int64 size_; + int32 dc_id_; + int32 date_; + bytes file_hash_; + bytes secret_; + + static const std::int32_t ID = 2097791614; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureFile> fetch(TlBufferParser &p); + + explicit secureFile(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SecurePasswordKdfAlgo: public Object { + public: + + static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p); +}; + +class securePasswordKdfAlgoUnknown final : public SecurePasswordKdfAlgo { + public: + + static const std::int32_t ID = 4883767; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 final : public SecurePasswordKdfAlgo { + public: + bytes salt_; + + explicit securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(bytes &&salt_); + + static const std::int32_t ID = -1141711456; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p); + + explicit securePasswordKdfAlgoPBKDF2HMACSHA512iter100000(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class securePasswordKdfAlgoSHA512 final : public SecurePasswordKdfAlgo { + public: + bytes salt_; + + explicit securePasswordKdfAlgoSHA512(bytes &&salt_); + + static const std::int32_t ID = -2042159726; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecurePasswordKdfAlgo> fetch(TlBufferParser &p); + + explicit securePasswordKdfAlgoSHA512(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SecurePlainData: public Object { + public: + + static object_ptr<SecurePlainData> fetch(TlBufferParser &p); +}; + +class securePlainPhone final : public SecurePlainData { + public: + string phone_; + + explicit securePlainPhone(string const &phone_); + + static const std::int32_t ID = 2103482845; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecurePlainData> fetch(TlBufferParser &p); + + explicit securePlainPhone(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class securePlainEmail final : public SecurePlainData { + public: + string email_; + + explicit securePlainEmail(string const &email_); + + static const std::int32_t ID = 569137759; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecurePlainData> fetch(TlBufferParser &p); + + explicit securePlainEmail(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SecureRequiredType: public Object { + public: + + static object_ptr<SecureRequiredType> fetch(TlBufferParser &p); +}; + +class secureRequiredType final : public SecureRequiredType { + public: + int32 flags_; + bool native_names_; + bool selfie_required_; + bool translation_required_; + object_ptr<SecureValueType> type_; + + secureRequiredType(); + + static const std::int32_t ID = -2103600678; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureRequiredType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureRequiredTypeOneOf final : public SecureRequiredType { + public: + array<object_ptr<SecureRequiredType>> types_; + + static const std::int32_t ID = 41187252; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureRequiredType> fetch(TlBufferParser &p); + + explicit secureRequiredTypeOneOf(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureSecretSettings final : public Object { + public: + object_ptr<SecurePasswordKdfAlgo> secure_algo_; + bytes secure_secret_; + int64 secure_secret_id_; + + secureSecretSettings(object_ptr<SecurePasswordKdfAlgo> &&secure_algo_, bytes &&secure_secret_, int64 secure_secret_id_); + + static const std::int32_t ID = 354925740; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<secureSecretSettings> fetch(TlBufferParser &p); + + explicit secureSecretSettings(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValue final : public Object { + public: + int32 flags_; + object_ptr<SecureValueType> type_; + object_ptr<secureData> data_; + object_ptr<SecureFile> front_side_; + object_ptr<SecureFile> reverse_side_; + object_ptr<SecureFile> selfie_; + array<object_ptr<SecureFile>> translation_; + array<object_ptr<SecureFile>> files_; + object_ptr<SecurePlainData> plain_data_; + bytes hash_; + + secureValue(); + + static const std::int32_t ID = 411017418; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<secureValue> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SecureValueError: public Object { + public: + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); +}; + +class secureValueErrorData final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + bytes data_hash_; + string field_; + string text_; + + secureValueErrorData(object_ptr<SecureValueType> &&type_, bytes &&data_hash_, string const &field_, string const &text_); + + static const std::int32_t ID = -391902247; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorData(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueErrorFrontSide final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + bytes file_hash_; + string text_; + + secureValueErrorFrontSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_); + + static const std::int32_t ID = 12467706; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorFrontSide(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueErrorReverseSide final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + bytes file_hash_; + string text_; + + secureValueErrorReverseSide(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_); + + static const std::int32_t ID = -2037765467; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorReverseSide(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueErrorSelfie final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + bytes file_hash_; + string text_; + + secureValueErrorSelfie(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_); + + static const std::int32_t ID = -449327402; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorSelfie(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueErrorFile final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + bytes file_hash_; + string text_; + + secureValueErrorFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_); + + static const std::int32_t ID = 2054162547; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorFile(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueErrorFiles final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + array<bytes> file_hash_; + string text_; + + secureValueErrorFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_); + + static const std::int32_t ID = 1717706985; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorFiles(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueError final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + bytes hash_; + string text_; + + secureValueError(object_ptr<SecureValueType> &&type_, bytes &&hash_, string const &text_); + + static const std::int32_t ID = -2036501105; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueError(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueErrorTranslationFile final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + bytes file_hash_; + string text_; + + secureValueErrorTranslationFile(object_ptr<SecureValueType> &&type_, bytes &&file_hash_, string const &text_); + + static const std::int32_t ID = -1592506512; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorTranslationFile(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueErrorTranslationFiles final : public SecureValueError { + public: + object_ptr<SecureValueType> type_; + array<bytes> file_hash_; + string text_; + + secureValueErrorTranslationFiles(object_ptr<SecureValueType> &&type_, array<bytes> &&file_hash_, string const &text_); + + static const std::int32_t ID = 878931416; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueError> fetch(TlBufferParser &p); + + explicit secureValueErrorTranslationFiles(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueHash final : public Object { + public: + object_ptr<SecureValueType> type_; + bytes hash_; + + secureValueHash(object_ptr<SecureValueType> &&type_, bytes &&hash_); + + static const std::int32_t ID = -316748368; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SecureValueType: public Object { + public: + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); +}; + +class secureValueTypePersonalDetails final : public SecureValueType { + public: + + static const std::int32_t ID = -1658158621; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypePassport final : public SecureValueType { + public: + + static const std::int32_t ID = 1034709504; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeDriverLicense final : public SecureValueType { + public: + + static const std::int32_t ID = 115615172; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeIdentityCard final : public SecureValueType { + public: + + static const std::int32_t ID = -1596951477; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeInternalPassport final : public SecureValueType { + public: + + static const std::int32_t ID = -1717268701; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeAddress final : public SecureValueType { + public: + + static const std::int32_t ID = -874308058; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeUtilityBill final : public SecureValueType { + public: + + static const std::int32_t ID = -63531698; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeBankStatement final : public SecureValueType { + public: + + static const std::int32_t ID = -1995211763; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeRentalAgreement final : public SecureValueType { + public: + + static const std::int32_t ID = -1954007928; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypePassportRegistration final : public SecureValueType { + public: + + static const std::int32_t ID = -1713143702; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeTemporaryRegistration final : public SecureValueType { + public: + + static const std::int32_t ID = -368907213; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypePhone final : public SecureValueType { + public: + + static const std::int32_t ID = -1289704741; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class secureValueTypeEmail final : public SecureValueType { + public: + + static const std::int32_t ID = -1908627474; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SecureValueType> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendAsPeer final : public Object { + public: + int32 flags_; + bool premium_required_; + object_ptr<Peer> peer_; + + sendAsPeer(); + + static const std::int32_t ID = -1206095820; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<sendAsPeer> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class SendMessageAction: public Object { + public: + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); +}; + +class sendMessageTypingAction final : public SendMessageAction { + public: + + static const std::int32_t ID = 381645902; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageCancelAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -44119819; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordVideoAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1584933265; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadVideoAction final : public SendMessageAction { + public: + int32 progress_; + + explicit sendMessageUploadVideoAction(int32 progress_); + + static const std::int32_t ID = -378127636; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageUploadVideoAction(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordAudioAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -718310409; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadAudioAction final : public SendMessageAction { + public: + int32 progress_; + + explicit sendMessageUploadAudioAction(int32 progress_); + + static const std::int32_t ID = -212740181; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageUploadAudioAction(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadPhotoAction final : public SendMessageAction { + public: + int32 progress_; + + explicit sendMessageUploadPhotoAction(int32 progress_); + + static const std::int32_t ID = -774682074; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageUploadPhotoAction(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadDocumentAction final : public SendMessageAction { + public: + int32 progress_; + + explicit sendMessageUploadDocumentAction(int32 progress_); + + static const std::int32_t ID = -1441998364; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageUploadDocumentAction(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageGeoLocationAction final : public SendMessageAction { + public: + + static const std::int32_t ID = 393186209; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageChooseContactAction final : public SendMessageAction { + public: + + static const std::int32_t ID = 1653390447; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageGamePlayAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -580219064; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageRecordRoundAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1997373508; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageUploadRoundAction final : public SendMessageAction { + public: + int32 progress_; + + explicit sendMessageUploadRoundAction(int32 progress_); + + static const std::int32_t ID = 608050278; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageUploadRoundAction(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class speakingInGroupCallAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -651419003; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageHistoryImportAction final : public SendMessageAction { + public: + int32 progress_; + + explicit sendMessageHistoryImportAction(int32 progress_); + + static const std::int32_t ID = -606432698; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageHistoryImportAction(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageChooseStickerAction final : public SendMessageAction { + public: + + static const std::int32_t ID = -1336228175; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageEmojiInteraction final : public SendMessageAction { + public: + string emoticon_; + int32 msg_id_; + object_ptr<dataJSON> interaction_; + + sendMessageEmojiInteraction(string const &emoticon_, int32 msg_id_, object_ptr<dataJSON> &&interaction_); + + static const std::int32_t ID = 630664139; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageEmojiInteraction(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sendMessageEmojiInteractionSeen final : public SendMessageAction { + public: + string emoticon_; + + explicit sendMessageEmojiInteractionSeen(string const &emoticon_); + + static const std::int32_t ID = -1234857938; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<SendMessageAction> fetch(TlBufferParser &p); + + explicit sendMessageEmojiInteractionSeen(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class shippingOption final : public Object { + public: + string id_; + string title_; + array<object_ptr<labeledPrice>> prices_; + + shippingOption(string const &id_, string const &title_, array<object_ptr<labeledPrice>> &&prices_); + + static const std::int32_t ID = -1239335713; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<shippingOption> fetch(TlBufferParser &p); + + explicit shippingOption(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class simpleWebViewResultUrl final : public Object { + public: + string url_; + + static const std::int32_t ID = -2010155333; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<simpleWebViewResultUrl> fetch(TlBufferParser &p); + + explicit simpleWebViewResultUrl(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class sponsoredMessage final : public Object { + public: + int32 flags_; + bool recommended_; + bool show_peer_photo_; + bytes random_id_; + object_ptr<Peer> from_id_; + object_ptr<ChatInvite> chat_invite_; + string chat_invite_hash_; + int32 channel_post_; + string start_param_; + string message_; + array<object_ptr<MessageEntity>> entities_; + enum Flags : std::int32_t { CHAT_INVITE_HASH_MASK = 16, CHANNEL_POST_MASK = 4, START_PARAM_MASK = 1 }; + + sponsoredMessage(); + + static const std::int32_t ID = 981691896; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<sponsoredMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsAbsValueAndPrev final : public Object { + public: + double current_; + double previous_; + + static const std::int32_t ID = -884757282; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<statsAbsValueAndPrev> fetch(TlBufferParser &p); + + explicit statsAbsValueAndPrev(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsDateRangeDays final : public Object { + public: + int32 min_date_; + int32 max_date_; + + static const std::int32_t ID = -1237848657; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<statsDateRangeDays> fetch(TlBufferParser &p); + + explicit statsDateRangeDays(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StatsGraph: public Object { + public: + + static object_ptr<StatsGraph> fetch(TlBufferParser &p); +}; + +class statsGraphAsync final : public StatsGraph { + public: + string token_; + + static const std::int32_t ID = 1244130093; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<StatsGraph> fetch(TlBufferParser &p); + + explicit statsGraphAsync(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsGraphError final : public StatsGraph { + public: + string error_; + + static const std::int32_t ID = -1092839390; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<StatsGraph> fetch(TlBufferParser &p); + + explicit statsGraphError(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsGraph final : public StatsGraph { + public: + int32 flags_; + object_ptr<dataJSON> json_; + string zoom_token_; + enum Flags : std::int32_t { ZOOM_TOKEN_MASK = 1 }; + + statsGraph(); + + static const std::int32_t ID = -1901828938; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<StatsGraph> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsGroupTopAdmin final : public Object { + public: + int64 user_id_; + int32 deleted_; + int32 kicked_; + int32 banned_; + + static const std::int32_t ID = -682079097; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<statsGroupTopAdmin> fetch(TlBufferParser &p); + + explicit statsGroupTopAdmin(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsGroupTopInviter final : public Object { + public: + int64 user_id_; + int32 invitations_; + + static const std::int32_t ID = 1398765469; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<statsGroupTopInviter> fetch(TlBufferParser &p); + + explicit statsGroupTopInviter(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsGroupTopPoster final : public Object { + public: + int64 user_id_; + int32 messages_; + int32 avg_chars_; + + static const std::int32_t ID = -1660637285; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<statsGroupTopPoster> fetch(TlBufferParser &p); + + explicit statsGroupTopPoster(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsPercentValue final : public Object { + public: + double part_; + double total_; + + static const std::int32_t ID = -875679776; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<statsPercentValue> fetch(TlBufferParser &p); + + explicit statsPercentValue(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class statsURL final : public Object { + public: + string url_; + + static const std::int32_t ID = 1202287072; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerKeyword final : public Object { + public: + int64 document_id_; + array<string> keyword_; + + static const std::int32_t ID = -50416996; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<stickerKeyword> fetch(TlBufferParser &p); + + explicit stickerKeyword(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerPack final : public Object { + public: + string emoticon_; + array<int64> documents_; + + static const std::int32_t ID = 313694676; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<stickerPack> fetch(TlBufferParser &p); + + explicit stickerPack(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerSet final : public Object { + public: + int32 flags_; + bool archived_; + bool official_; + bool masks_; + bool animated_; + bool videos_; + bool emojis_; + int32 installed_date_; + int64 id_; + int64 access_hash_; + string title_; + string short_name_; + array<object_ptr<PhotoSize>> thumbs_; + int32 thumb_dc_id_; + int32 thumb_version_; + int64 thumb_document_id_; + int32 count_; + int32 hash_; + enum Flags : std::int32_t { INSTALLED_DATE_MASK = 1, THUMB_DC_ID_MASK = 16, THUMB_VERSION_MASK = 16, THUMB_DOCUMENT_ID_MASK = 256 }; + + stickerSet(); + + static const std::int32_t ID = 768691932; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<stickerSet> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class StickerSetCovered: public Object { + public: + + static object_ptr<StickerSetCovered> fetch(TlBufferParser &p); +}; + +class stickerSetCovered final : public StickerSetCovered { + public: + object_ptr<stickerSet> set_; + object_ptr<Document> cover_; + + static const std::int32_t ID = 1678812626; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<StickerSetCovered> fetch(TlBufferParser &p); + + explicit stickerSetCovered(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerSetMultiCovered final : public StickerSetCovered { + public: + object_ptr<stickerSet> set_; + array<object_ptr<Document>> covers_; + + static const std::int32_t ID = 872932635; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<StickerSetCovered> fetch(TlBufferParser &p); + + explicit stickerSetMultiCovered(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickerSetFullCovered final : public StickerSetCovered { + public: + object_ptr<stickerSet> set_; + array<object_ptr<stickerPack>> packs_; + array<object_ptr<stickerKeyword>> keywords_; + array<object_ptr<Document>> documents_; + + static const std::int32_t ID = 1087454222; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<StickerSetCovered> fetch(TlBufferParser &p); + + explicit stickerSetFullCovered(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class theme final : public Object { + public: + int32 flags_; + bool creator_; + bool default_; + bool for_chat_; + int64 id_; + int64 access_hash_; + string slug_; + string title_; + object_ptr<Document> document_; + array<object_ptr<themeSettings>> settings_; + string emoticon_; + int32 installs_count_; + enum Flags : std::int32_t { EMOTICON_MASK = 64, INSTALLS_COUNT_MASK = 16 }; + + theme(); + + static const std::int32_t ID = -1609668650; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<theme> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class themeSettings final : public Object { + public: + int32 flags_; + bool message_colors_animated_; + object_ptr<BaseTheme> base_theme_; + int32 accent_color_; + int32 outbox_accent_color_; + array<int32> message_colors_; + object_ptr<WallPaper> wallpaper_; + enum Flags : std::int32_t { OUTBOX_ACCENT_COLOR_MASK = 8 }; + + themeSettings(); + + static const std::int32_t ID = -94849324; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<themeSettings> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeer final : public Object { + public: + object_ptr<Peer> peer_; + double rating_; + + static const std::int32_t ID = -305282981; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<topPeer> fetch(TlBufferParser &p); + + explicit topPeer(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class TopPeerCategory: public Object { + public: + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); +}; + +class topPeerCategoryBotsPM final : public TopPeerCategory { + public: + + static const std::int32_t ID = -1419371685; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryBotsInline final : public TopPeerCategory { + public: + + static const std::int32_t ID = 344356834; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryCorrespondents final : public TopPeerCategory { + public: + + static const std::int32_t ID = 104314861; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryGroups final : public TopPeerCategory { + public: + + static const std::int32_t ID = -1122524854; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryChannels final : public TopPeerCategory { + public: + + static const std::int32_t ID = 371037736; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryPhoneCalls final : public TopPeerCategory { + public: + + static const std::int32_t ID = 511092620; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryForwardUsers final : public TopPeerCategory { + public: + + static const std::int32_t ID = -1472172887; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryForwardChats final : public TopPeerCategory { + public: + + static const std::int32_t ID = -68239120; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<TopPeerCategory> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class topPeerCategoryPeers final : public Object { + public: + object_ptr<TopPeerCategory> category_; + int32 count_; + array<object_ptr<topPeer>> peers_; + + static const std::int32_t ID = -75283823; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<topPeerCategoryPeers> fetch(TlBufferParser &p); + + explicit topPeerCategoryPeers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Update: public Object { + public: + + static object_ptr<Update> fetch(TlBufferParser &p); +}; + +class updateNewMessage final : public Update { + public: + object_ptr<Message> message_; + int32 pts_; + int32 pts_count_; + + updateNewMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_); + + static const std::int32_t ID = 522914557; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateNewMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageID final : public Update { + public: + int32 id_; + int64 random_id_; + + static const std::int32_t ID = 1318109142; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateMessageID(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDeleteMessages final : public Update { + public: + array<int32> messages_; + int32 pts_; + int32 pts_count_; + + updateDeleteMessages(array<int32> &&messages_, int32 pts_, int32 pts_count_); + + static const std::int32_t ID = -1576161051; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateDeleteMessages(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserTyping final : public Update { + public: + int64 user_id_; + object_ptr<SendMessageAction> action_; + + static const std::int32_t ID = -1071741569; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateUserTyping(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatUserTyping final : public Update { + public: + int64 chat_id_; + object_ptr<Peer> from_id_; + object_ptr<SendMessageAction> action_; + + static const std::int32_t ID = -2092401936; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChatUserTyping(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatParticipants final : public Update { + public: + object_ptr<ChatParticipants> participants_; + + static const std::int32_t ID = 125178264; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChatParticipants(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserStatus final : public Update { + public: + int64 user_id_; + object_ptr<UserStatus> status_; + + static const std::int32_t ID = -440534818; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateUserStatus(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserName final : public Update { + public: + int64 user_id_; + string first_name_; + string last_name_; + array<object_ptr<username>> usernames_; + + static const std::int32_t ID = -1484486364; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateUserName(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserPhoto final : public Update { + public: + int64 user_id_; + int32 date_; + object_ptr<UserProfilePhoto> photo_; + bool previous_; + + static const std::int32_t ID = -232290676; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateUserPhoto(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewEncryptedMessage final : public Update { + public: + object_ptr<EncryptedMessage> message_; + int32 qts_; + + static const std::int32_t ID = 314359194; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateNewEncryptedMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateEncryptedChatTyping final : public Update { + public: + int32 chat_id_; + + static const std::int32_t ID = 386986326; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateEncryptedChatTyping(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateEncryption final : public Update { + public: + object_ptr<EncryptedChat> chat_; + int32 date_; + + static const std::int32_t ID = -1264392051; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateEncryption(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateEncryptedMessagesRead final : public Update { + public: + int32 chat_id_; + int32 max_date_; + int32 date_; + + static const std::int32_t ID = 956179895; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateEncryptedMessagesRead(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatParticipantAdd final : public Update { + public: + int64 chat_id_; + int64 user_id_; + int64 inviter_id_; + int32 date_; + int32 version_; + + static const std::int32_t ID = 1037718609; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChatParticipantAdd(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatParticipantDelete final : public Update { + public: + int64 chat_id_; + int64 user_id_; + int32 version_; + + static const std::int32_t ID = -483443337; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChatParticipantDelete(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDcOptions final : public Update { + public: + array<object_ptr<dcOption>> dc_options_; + + static const std::int32_t ID = -1906403213; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateDcOptions(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNotifySettings final : public Update { + public: + object_ptr<NotifyPeer> peer_; + object_ptr<peerNotifySettings> notify_settings_; + + static const std::int32_t ID = -1094555409; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateNotifySettings(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateServiceNotification final : public Update { + public: + int32 flags_; + bool popup_; + int32 inbox_date_; + string type_; + string message_; + object_ptr<MessageMedia> media_; + array<object_ptr<MessageEntity>> entities_; + enum Flags : std::int32_t { INBOX_DATE_MASK = 2 }; + + updateServiceNotification(); + + updateServiceNotification(int32 flags_, bool popup_, int32 inbox_date_, string const &type_, string const &message_, object_ptr<MessageMedia> &&media_, array<object_ptr<MessageEntity>> &&entities_); + + static const std::int32_t ID = -337352679; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePrivacy final : public Update { + public: + object_ptr<PrivacyKey> key_; + array<object_ptr<PrivacyRule>> rules_; + + static const std::int32_t ID = -298113238; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updatePrivacy(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserPhone final : public Update { + public: + int64 user_id_; + string phone_; + + static const std::int32_t ID = 88680979; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateUserPhone(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadHistoryInbox final : public Update { + public: + int32 flags_; + int32 folder_id_; + object_ptr<Peer> peer_; + int32 max_id_; + int32 still_unread_count_; + int32 pts_; + int32 pts_count_; + enum Flags : std::int32_t { FOLDER_ID_MASK = 1 }; + + updateReadHistoryInbox(); + + static const std::int32_t ID = -1667805217; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadHistoryOutbox final : public Update { + public: + object_ptr<Peer> peer_; + int32 max_id_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = 791617983; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateReadHistoryOutbox(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateWebPage final : public Update { + public: + object_ptr<WebPage> webpage_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = 2139689491; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateWebPage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadMessagesContents final : public Update { + public: + array<int32> messages_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = 1757493555; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateReadMessagesContents(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelTooLong final : public Update { + public: + int32 flags_; + int64 channel_id_; + int32 pts_; + enum Flags : std::int32_t { PTS_MASK = 1 }; + + updateChannelTooLong(); + + updateChannelTooLong(int32 flags_, int64 channel_id_, int32 pts_); + + static const std::int32_t ID = 277713951; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannel final : public Update { + public: + int64 channel_id_; + + static const std::int32_t ID = 1666927625; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChannel(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewChannelMessage final : public Update { + public: + object_ptr<Message> message_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = 1656358105; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateNewChannelMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadChannelInbox final : public Update { + public: + int32 flags_; + int32 folder_id_; + int64 channel_id_; + int32 max_id_; + int32 still_unread_count_; + int32 pts_; + enum Flags : std::int32_t { FOLDER_ID_MASK = 1 }; + + updateReadChannelInbox(); + + static const std::int32_t ID = -1842450928; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDeleteChannelMessages final : public Update { + public: + int64 channel_id_; + array<int32> messages_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = -1020437742; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateDeleteChannelMessages(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelMessageViews final : public Update { + public: + int64 channel_id_; + int32 id_; + int32 views_; + + static const std::int32_t ID = -232346616; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChannelMessageViews(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatParticipantAdmin final : public Update { + public: + int64 chat_id_; + int64 user_id_; + bool is_admin_; + int32 version_; + + static const std::int32_t ID = -674602590; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChatParticipantAdmin(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewStickerSet final : public Update { + public: + object_ptr<messages_StickerSet> stickerset_; + + static const std::int32_t ID = 1753886890; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateNewStickerSet(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateStickerSetsOrder final : public Update { + public: + int32 flags_; + bool masks_; + bool emojis_; + array<int64> order_; + + updateStickerSetsOrder(); + + static const std::int32_t ID = 196268545; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateStickerSets final : public Update { + public: + int32 flags_; + bool masks_; + bool emojis_; + + updateStickerSets(); + + static const std::int32_t ID = 834816008; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSavedGifs final : public Update { + public: + + static const std::int32_t ID = -1821035490; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotInlineQuery final : public Update { + public: + int32 flags_; + int64 query_id_; + int64 user_id_; + string query_; + object_ptr<GeoPoint> geo_; + object_ptr<InlineQueryPeerType> peer_type_; + string offset_; + + updateBotInlineQuery(); + + static const std::int32_t ID = 1232025500; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotInlineSend final : public Update { + public: + int32 flags_; + int64 user_id_; + string query_; + object_ptr<GeoPoint> geo_; + string id_; + object_ptr<InputBotInlineMessageID> msg_id_; + + updateBotInlineSend(); + + static const std::int32_t ID = 317794823; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateEditChannelMessage final : public Update { + public: + object_ptr<Message> message_; + int32 pts_; + int32 pts_count_; + + updateEditChannelMessage(object_ptr<Message> &&message_, int32 pts_, int32 pts_count_); + + static const std::int32_t ID = 457133559; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateEditChannelMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotCallbackQuery final : public Update { + public: + int32 flags_; + int64 query_id_; + int64 user_id_; + object_ptr<Peer> peer_; + int32 msg_id_; + int64 chat_instance_; + bytes data_; + string game_short_name_; + enum Flags : std::int32_t { DATA_MASK = 1, GAME_SHORT_NAME_MASK = 2 }; + + updateBotCallbackQuery(); + + static const std::int32_t ID = -1177566067; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateEditMessage final : public Update { + public: + object_ptr<Message> message_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = -469536605; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateEditMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateInlineBotCallbackQuery final : public Update { + public: + int32 flags_; + int64 query_id_; + int64 user_id_; + object_ptr<InputBotInlineMessageID> msg_id_; + int64 chat_instance_; + bytes data_; + string game_short_name_; + enum Flags : std::int32_t { DATA_MASK = 1, GAME_SHORT_NAME_MASK = 2 }; + + updateInlineBotCallbackQuery(); + + static const std::int32_t ID = 1763610706; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadChannelOutbox final : public Update { + public: + int64 channel_id_; + int32 max_id_; + + static const std::int32_t ID = -1218471511; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateReadChannelOutbox(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDraftMessage final : public Update { + public: + int32 flags_; + object_ptr<Peer> peer_; + int32 top_msg_id_; + object_ptr<DraftMessage> draft_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + + updateDraftMessage(); + + static const std::int32_t ID = 457829485; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadFeaturedStickers final : public Update { + public: + + static const std::int32_t ID = 1461528386; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateRecentStickers final : public Update { + public: + + static const std::int32_t ID = -1706939360; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateConfig final : public Update { + public: + + static const std::int32_t ID = -1574314746; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePtsChanged final : public Update { + public: + + static const std::int32_t ID = 861169551; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelWebPage final : public Update { + public: + int64 channel_id_; + object_ptr<WebPage> webpage_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = 791390623; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChannelWebPage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDialogPinned final : public Update { + public: + int32 flags_; + bool pinned_; + int32 folder_id_; + object_ptr<DialogPeer> peer_; + enum Flags : std::int32_t { FOLDER_ID_MASK = 2 }; + + updateDialogPinned(); + + static const std::int32_t ID = 1852826908; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePinnedDialogs final : public Update { + public: + int32 flags_; + int32 folder_id_; + array<object_ptr<DialogPeer>> order_; + enum Flags : std::int32_t { FOLDER_ID_MASK = 2 }; + + updatePinnedDialogs(); + + static const std::int32_t ID = -99664734; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotWebhookJSON final : public Update { + public: + object_ptr<dataJSON> data_; + + static const std::int32_t ID = -2095595325; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateBotWebhookJSON(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotWebhookJSONQuery final : public Update { + public: + int64 query_id_; + object_ptr<dataJSON> data_; + int32 timeout_; + + static const std::int32_t ID = -1684914010; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateBotWebhookJSONQuery(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotShippingQuery final : public Update { + public: + int64 query_id_; + int64 user_id_; + bytes payload_; + object_ptr<postAddress> shipping_address_; + + static const std::int32_t ID = -1246823043; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateBotShippingQuery(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotPrecheckoutQuery final : public Update { + public: + int32 flags_; + int64 query_id_; + int64 user_id_; + bytes payload_; + object_ptr<paymentRequestedInfo> info_; + string shipping_option_id_; + string currency_; + int64 total_amount_; + enum Flags : std::int32_t { SHIPPING_OPTION_ID_MASK = 2 }; + + updateBotPrecheckoutQuery(); + + static const std::int32_t ID = -1934976362; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePhoneCall final : public Update { + public: + object_ptr<PhoneCall> phone_call_; + + static const std::int32_t ID = -1425052898; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updatePhoneCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateLangPackTooLong final : public Update { + public: + string lang_code_; + + static const std::int32_t ID = 1180041828; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateLangPackTooLong(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateLangPack final : public Update { + public: + object_ptr<langPackDifference> difference_; + + static const std::int32_t ID = 1442983757; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateLangPack(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFavedStickers final : public Update { + public: + + static const std::int32_t ID = -451831443; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelReadMessagesContents final : public Update { + public: + int32 flags_; + int64 channel_id_; + int32 top_msg_id_; + array<int32> messages_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + + updateChannelReadMessagesContents(); + + static const std::int32_t ID = -366410403; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateContactsReset final : public Update { + public: + + static const std::int32_t ID = 1887741886; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelAvailableMessages final : public Update { + public: + int64 channel_id_; + int32 available_min_id_; + + static const std::int32_t ID = -1304443240; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChannelAvailableMessages(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDialogUnreadMark final : public Update { + public: + int32 flags_; + bool unread_; + object_ptr<DialogPeer> peer_; + + updateDialogUnreadMark(); + + static const std::int32_t ID = -513517117; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessagePoll final : public Update { + public: + int32 flags_; + int64 poll_id_; + object_ptr<poll> poll_; + object_ptr<pollResults> results_; + + updateMessagePoll(); + + static const std::int32_t ID = -1398708869; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatDefaultBannedRights final : public Update { + public: + object_ptr<Peer> peer_; + object_ptr<chatBannedRights> default_banned_rights_; + int32 version_; + + static const std::int32_t ID = 1421875280; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChatDefaultBannedRights(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateFolderPeers final : public Update { + public: + array<object_ptr<folderPeer>> folder_peers_; + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = 422972864; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateFolderPeers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePeerSettings final : public Update { + public: + object_ptr<Peer> peer_; + object_ptr<peerSettings> settings_; + + static const std::int32_t ID = 1786671974; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updatePeerSettings(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePeerLocated final : public Update { + public: + array<object_ptr<PeerLocated>> peers_; + + static const std::int32_t ID = -1263546448; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updatePeerLocated(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateNewScheduledMessage final : public Update { + public: + object_ptr<Message> message_; + + static const std::int32_t ID = 967122427; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateNewScheduledMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDeleteScheduledMessages final : public Update { + public: + object_ptr<Peer> peer_; + array<int32> messages_; + + static const std::int32_t ID = -1870238482; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateDeleteScheduledMessages(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateTheme final : public Update { + public: + object_ptr<theme> theme_; + + static const std::int32_t ID = -2112423005; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateTheme(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateGeoLiveViewed final : public Update { + public: + object_ptr<Peer> peer_; + int32 msg_id_; + + static const std::int32_t ID = -2027964103; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateGeoLiveViewed(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateLoginToken final : public Update { + public: + + static const std::int32_t ID = 1448076945; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessagePollVote final : public Update { + public: + int64 poll_id_; + int64 user_id_; + array<bytes> options_; + int32 qts_; + + static const std::int32_t ID = 274961865; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateMessagePollVote(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDialogFilter final : public Update { + public: + int32 flags_; + int32 id_; + object_ptr<DialogFilter> filter_; + + updateDialogFilter(); + + static const std::int32_t ID = 654302845; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDialogFilterOrder final : public Update { + public: + array<int32> order_; + + static const std::int32_t ID = -1512627963; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateDialogFilterOrder(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateDialogFilters final : public Update { + public: + + static const std::int32_t ID = 889491791; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePhoneCallSignalingData final : public Update { + public: + int64 phone_call_id_; + bytes data_; + + static const std::int32_t ID = 643940105; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updatePhoneCallSignalingData(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelMessageForwards final : public Update { + public: + int64 channel_id_; + int32 id_; + int32 forwards_; + + static const std::int32_t ID = -761649164; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChannelMessageForwards(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadChannelDiscussionInbox final : public Update { + public: + int32 flags_; + int64 channel_id_; + int32 top_msg_id_; + int32 read_max_id_; + int64 broadcast_id_; + int32 broadcast_post_; + enum Flags : std::int32_t { BROADCAST_ID_MASK = 1, BROADCAST_POST_MASK = 1 }; + + updateReadChannelDiscussionInbox(); + + static const std::int32_t ID = -693004986; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadChannelDiscussionOutbox final : public Update { + public: + int64 channel_id_; + int32 top_msg_id_; + int32 read_max_id_; + + static const std::int32_t ID = 1767677564; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateReadChannelDiscussionOutbox(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePeerBlocked final : public Update { + public: + object_ptr<Peer> peer_id_; + bool blocked_; + + static const std::int32_t ID = 610945826; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updatePeerBlocked(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelUserTyping final : public Update { + public: + int32 flags_; + int64 channel_id_; + int32 top_msg_id_; + object_ptr<Peer> from_id_; + object_ptr<SendMessageAction> action_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + + updateChannelUserTyping(); + + static const std::int32_t ID = -1937192669; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePinnedMessages final : public Update { + public: + int32 flags_; + bool pinned_; + object_ptr<Peer> peer_; + array<int32> messages_; + int32 pts_; + int32 pts_count_; + + updatePinnedMessages(); + + static const std::int32_t ID = -309990731; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePinnedChannelMessages final : public Update { + public: + int32 flags_; + bool pinned_; + int64 channel_id_; + array<int32> messages_; + int32 pts_; + int32 pts_count_; + + updatePinnedChannelMessages(); + + static const std::int32_t ID = 1538885128; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChat final : public Update { + public: + int64 chat_id_; + + static const std::int32_t ID = -124097970; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateChat(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateGroupCallParticipants final : public Update { + public: + object_ptr<inputGroupCall> call_; + array<object_ptr<groupCallParticipant>> participants_; + int32 version_; + + static const std::int32_t ID = -219423922; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateGroupCallParticipants(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateGroupCall final : public Update { + public: + int64 chat_id_; + object_ptr<GroupCall> call_; + + static const std::int32_t ID = 347227392; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateGroupCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePeerHistoryTTL final : public Update { + public: + int32 flags_; + object_ptr<Peer> peer_; + int32 ttl_period_; + enum Flags : std::int32_t { TTL_PERIOD_MASK = 1 }; + + updatePeerHistoryTTL(); + + static const std::int32_t ID = -1147422299; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChatParticipant final : public Update { + public: + int32 flags_; + int64 chat_id_; + int32 date_; + int64 actor_id_; + int64 user_id_; + object_ptr<ChatParticipant> prev_participant_; + object_ptr<ChatParticipant> new_participant_; + object_ptr<ExportedChatInvite> invite_; + int32 qts_; + + updateChatParticipant(); + + static const std::int32_t ID = -796432838; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelParticipant final : public Update { + public: + int32 flags_; + int64 channel_id_; + int32 date_; + int64 actor_id_; + int64 user_id_; + object_ptr<ChannelParticipant> prev_participant_; + object_ptr<ChannelParticipant> new_participant_; + object_ptr<ExportedChatInvite> invite_; + int32 qts_; + + updateChannelParticipant(); + + static const std::int32_t ID = -1738720581; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotStopped final : public Update { + public: + int64 user_id_; + int32 date_; + bool stopped_; + int32 qts_; + + static const std::int32_t ID = -997782967; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateBotStopped(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateGroupCallConnection final : public Update { + public: + int32 flags_; + bool presentation_; + object_ptr<dataJSON> params_; + + updateGroupCallConnection(); + + static const std::int32_t ID = 192428418; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotCommands final : public Update { + public: + object_ptr<Peer> peer_; + int64 bot_id_; + array<object_ptr<botCommand>> commands_; + + static const std::int32_t ID = 1299263278; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateBotCommands(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatePendingJoinRequests final : public Update { + public: + object_ptr<Peer> peer_; + int32 requests_pending_; + array<int64> recent_requesters_; + + static const std::int32_t ID = 1885586395; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updatePendingJoinRequests(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotChatInviteRequester final : public Update { + public: + object_ptr<Peer> peer_; + int32 date_; + int64 user_id_; + string about_; + object_ptr<ExportedChatInvite> invite_; + int32 qts_; + + static const std::int32_t ID = 299870598; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateBotChatInviteRequester(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageReactions final : public Update { + public: + int32 flags_; + object_ptr<Peer> peer_; + int32 msg_id_; + int32 top_msg_id_; + object_ptr<messageReactions> reactions_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + + updateMessageReactions(); + + static const std::int32_t ID = 1578843320; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateAttachMenuBots final : public Update { + public: + + static const std::int32_t ID = 397910539; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateWebViewResultSent final : public Update { + public: + int64 query_id_; + + static const std::int32_t ID = 361936797; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateWebViewResultSent(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateBotMenuButton final : public Update { + public: + int64 bot_id_; + object_ptr<BotMenuButton> button_; + + static const std::int32_t ID = 347625491; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateBotMenuButton(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateSavedRingtones final : public Update { + public: + + static const std::int32_t ID = 1960361625; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateTranscribedAudio final : public Update { + public: + int32 flags_; + bool pending_; + object_ptr<Peer> peer_; + int32 msg_id_; + int64 transcription_id_; + string text_; + + updateTranscribedAudio(); + + static const std::int32_t ID = 8703322; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateReadFeaturedEmojiStickers final : public Update { + public: + + static const std::int32_t ID = -78886548; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateUserEmojiStatus final : public Update { + public: + int64 user_id_; + object_ptr<EmojiStatus> emoji_status_; + + static const std::int32_t ID = 674706841; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateUserEmojiStatus(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateRecentEmojiStatuses final : public Update { + public: + + static const std::int32_t ID = 821314523; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateRecentReactions final : public Update { + public: + + static const std::int32_t ID = 1870160884; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMoveStickerSetToTop final : public Update { + public: + int32 flags_; + bool masks_; + bool emojis_; + int64 stickerset_; + + updateMoveStickerSetToTop(); + + static const std::int32_t ID = -2030252155; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateMessageExtendedMedia final : public Update { + public: + object_ptr<Peer> peer_; + int32 msg_id_; + object_ptr<MessageExtendedMedia> extended_media_; + + static const std::int32_t ID = 1517529484; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + explicit updateMessageExtendedMedia(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateChannelPinnedTopic final : public Update { + public: + int32 flags_; + int64 channel_id_; + int32 topic_id_; + enum Flags : std::int32_t { TOPIC_ID_MASK = 1 }; + + updateChannelPinnedTopic(); + + static const std::int32_t ID = -158027602; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Update> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class Updates: public Object { + public: + + static object_ptr<Updates> fetch(TlBufferParser &p); +}; + +class updatesTooLong final : public Updates { + public: + + static const std::int32_t ID = -484987010; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Updates> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateShortMessage final : public Updates { + public: + int32 flags_; + bool out_; + bool mentioned_; + bool media_unread_; + bool silent_; + int32 id_; + int64 user_id_; + string message_; + int32 pts_; + int32 pts_count_; + int32 date_; + object_ptr<messageFwdHeader> fwd_from_; + int64 via_bot_id_; + object_ptr<messageReplyHeader> reply_to_; + array<object_ptr<MessageEntity>> entities_; + int32 ttl_period_; + enum Flags : std::int32_t { VIA_BOT_ID_MASK = 2048, TTL_PERIOD_MASK = 33554432 }; + + updateShortMessage(); + + static const std::int32_t ID = 826001400; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Updates> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateShortChatMessage final : public Updates { + public: + int32 flags_; + bool out_; + bool mentioned_; + bool media_unread_; + bool silent_; + int32 id_; + int64 from_id_; + int64 chat_id_; + string message_; + int32 pts_; + int32 pts_count_; + int32 date_; + object_ptr<messageFwdHeader> fwd_from_; + int64 via_bot_id_; + object_ptr<messageReplyHeader> reply_to_; + array<object_ptr<MessageEntity>> entities_; + int32 ttl_period_; + enum Flags : std::int32_t { VIA_BOT_ID_MASK = 2048, TTL_PERIOD_MASK = 33554432 }; + + updateShortChatMessage(); + + static const std::int32_t ID = 1299050149; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Updates> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateShort final : public Updates { + public: + object_ptr<Update> update_; + int32 date_; + + static const std::int32_t ID = 2027216577; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Updates> fetch(TlBufferParser &p); + + explicit updateShort(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updatesCombined final : public Updates { + public: + array<object_ptr<Update>> updates_; + array<object_ptr<User>> users_; + array<object_ptr<Chat>> chats_; + int32 date_; + int32 seq_start_; + int32 seq_; + + static const std::int32_t ID = 1918567619; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Updates> fetch(TlBufferParser &p); + + explicit updatesCombined(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates final : public Updates { + public: + array<object_ptr<Update>> updates_; + array<object_ptr<User>> users_; + array<object_ptr<Chat>> chats_; + int32 date_; + int32 seq_; + + updates(); + + static const std::int32_t ID = 1957577280; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Updates> fetch(TlBufferParser &p); + + explicit updates(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updateShortSentMessage final : public Updates { + public: + int32 flags_; + bool out_; + int32 id_; + int32 pts_; + int32 pts_count_; + int32 date_; + object_ptr<MessageMedia> media_; + array<object_ptr<MessageEntity>> entities_; + int32 ttl_period_; + enum Flags : std::int32_t { TTL_PERIOD_MASK = 33554432 }; + + updateShortSentMessage(); + + static const std::int32_t ID = -1877614335; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<Updates> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class UrlAuthResult: public Object { + public: + + static object_ptr<UrlAuthResult> fetch(TlBufferParser &p); +}; + +class urlAuthResultRequest final : public UrlAuthResult { + public: + int32 flags_; + bool request_write_access_; + object_ptr<User> bot_; + string domain_; + + urlAuthResultRequest(); + + static const std::int32_t ID = -1831650802; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UrlAuthResult> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class urlAuthResultAccepted final : public UrlAuthResult { + public: + string url_; + + static const std::int32_t ID = -1886646706; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UrlAuthResult> fetch(TlBufferParser &p); + + explicit urlAuthResultAccepted(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class urlAuthResultDefault final : public UrlAuthResult { + public: + + static const std::int32_t ID = -1445536993; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UrlAuthResult> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class User: public Object { + public: + + static object_ptr<User> fetch(TlBufferParser &p); +}; + +class userEmpty final : public User { + public: + int64 id_; + + static const std::int32_t ID = -742634630; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<User> fetch(TlBufferParser &p); + + explicit userEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class user final : public User { + public: + int32 flags_; + bool self_; + bool contact_; + bool mutual_contact_; + bool deleted_; + bool bot_; + bool bot_chat_history_; + bool bot_nochats_; + bool verified_; + bool restricted_; + bool min_; + bool bot_inline_geo_; + bool support_; + bool scam_; + bool apply_min_photo_; + bool fake_; + bool bot_attach_menu_; + bool premium_; + bool attach_menu_enabled_; + int32 flags2_; + int64 id_; + int64 access_hash_; + string first_name_; + string last_name_; + string username_; + string phone_; + object_ptr<UserProfilePhoto> photo_; + object_ptr<UserStatus> status_; + int32 bot_info_version_; + array<object_ptr<restrictionReason>> restriction_reason_; + string bot_inline_placeholder_; + string lang_code_; + object_ptr<EmojiStatus> emoji_status_; + array<object_ptr<username>> usernames_; + enum Flags : std::int32_t { ACCESS_HASH_MASK = 1, FIRST_NAME_MASK = 2, LAST_NAME_MASK = 4, USERNAME_MASK = 8, PHONE_MASK = 16, BOT_INFO_VERSION_MASK = 16384, BOT_INLINE_PLACEHOLDER_MASK = 524288, LANG_CODE_MASK = 4194304 }; + + user(); + + user(int32 flags_, bool self_, bool contact_, bool mutual_contact_, bool deleted_, bool bot_, bool bot_chat_history_, bool bot_nochats_, bool verified_, bool restricted_, bool min_, bool bot_inline_geo_, bool support_, bool scam_, bool apply_min_photo_, bool fake_, bool bot_attach_menu_, bool premium_, bool attach_menu_enabled_, int32 flags2_, int64 id_, int64 access_hash_, string const &first_name_, string const &last_name_, string const &username_, string const &phone_, object_ptr<UserProfilePhoto> &&photo_, object_ptr<UserStatus> &&status_, int32 bot_info_version_, array<object_ptr<restrictionReason>> &&restriction_reason_, string const &bot_inline_placeholder_, string const &lang_code_, object_ptr<EmojiStatus> &&emoji_status_, array<object_ptr<username>> &&usernames_); + + static const std::int32_t ID = -1885878744; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<User> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userFull final : public Object { + public: + int32 flags_; + bool blocked_; + bool phone_calls_available_; + bool phone_calls_private_; + bool can_pin_message_; + bool has_scheduled_; + bool video_calls_available_; + bool voice_messages_forbidden_; + int64 id_; + string about_; + object_ptr<peerSettings> settings_; + object_ptr<Photo> profile_photo_; + object_ptr<peerNotifySettings> notify_settings_; + object_ptr<botInfo> bot_info_; + int32 pinned_msg_id_; + int32 common_chats_count_; + int32 folder_id_; + int32 ttl_period_; + string theme_emoticon_; + string private_forward_name_; + object_ptr<chatAdminRights> bot_group_admin_rights_; + object_ptr<chatAdminRights> bot_broadcast_admin_rights_; + array<object_ptr<premiumGiftOption>> premium_gifts_; + enum Flags : std::int32_t { ABOUT_MASK = 2, PINNED_MSG_ID_MASK = 64, FOLDER_ID_MASK = 2048, TTL_PERIOD_MASK = 16384, THEME_EMOTICON_MASK = 32768, PRIVATE_FORWARD_NAME_MASK = 65536 }; + + userFull(); + + static const std::int32_t ID = -994968513; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<userFull> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class UserProfilePhoto: public Object { + public: + + static object_ptr<UserProfilePhoto> fetch(TlBufferParser &p); +}; + +class userProfilePhotoEmpty final : public UserProfilePhoto { + public: + + static const std::int32_t ID = 1326562017; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserProfilePhoto> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userProfilePhoto final : public UserProfilePhoto { + public: + int32 flags_; + bool has_video_; + int64 photo_id_; + bytes stripped_thumb_; + int32 dc_id_; + enum Flags : std::int32_t { STRIPPED_THUMB_MASK = 2 }; + + userProfilePhoto(); + + userProfilePhoto(int32 flags_, bool has_video_, int64 photo_id_, bytes &&stripped_thumb_, int32 dc_id_); + + static const std::int32_t ID = -2100168954; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserProfilePhoto> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class UserStatus: public Object { + public: + + static object_ptr<UserStatus> fetch(TlBufferParser &p); +}; + +class userStatusEmpty final : public UserStatus { + public: + + static const std::int32_t ID = 164646985; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserStatus> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusOnline final : public UserStatus { + public: + int32 expires_; + + static const std::int32_t ID = -306628279; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserStatus> fetch(TlBufferParser &p); + + explicit userStatusOnline(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusOffline final : public UserStatus { + public: + int32 was_online_; + + static const std::int32_t ID = 9203775; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserStatus> fetch(TlBufferParser &p); + + explicit userStatusOffline(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusRecently final : public UserStatus { + public: + + static const std::int32_t ID = -496024847; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserStatus> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusLastWeek final : public UserStatus { + public: + + static const std::int32_t ID = 129960444; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserStatus> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class userStatusLastMonth final : public UserStatus { + public: + + static const std::int32_t ID = 2011940674; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<UserStatus> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class username final : public Object { + public: + int32 flags_; + bool editable_; + bool active_; + string username_; + + username(); + + static const std::int32_t ID = -1274595769; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<username> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class videoSize final : public Object { + public: + int32 flags_; + string type_; + int32 w_; + int32 h_; + int32 size_; + double video_start_ts_; + enum Flags : std::int32_t { VIDEO_START_TS_MASK = 1 }; + + videoSize(); + + static const std::int32_t ID = -567037804; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<videoSize> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class WallPaper: public Object { + public: + + static object_ptr<WallPaper> fetch(TlBufferParser &p); +}; + +class wallPaper final : public WallPaper { + public: + int64 id_; + int32 flags_; + bool creator_; + bool default_; + bool pattern_; + bool dark_; + int64 access_hash_; + string slug_; + object_ptr<Document> document_; + object_ptr<wallPaperSettings> settings_; + + wallPaper(); + + static const std::int32_t ID = -1539849235; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WallPaper> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class wallPaperNoFile final : public WallPaper { + public: + int64 id_; + int32 flags_; + bool default_; + bool dark_; + object_ptr<wallPaperSettings> settings_; + + wallPaperNoFile(); + + static const std::int32_t ID = -528465642; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WallPaper> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class wallPaperSettings final : public Object { + public: + int32 flags_; + bool blur_; + bool motion_; + int32 background_color_; + int32 second_background_color_; + int32 third_background_color_; + int32 fourth_background_color_; + int32 intensity_; + int32 rotation_; + enum Flags : std::int32_t { BLUR_MASK = 2, MOTION_MASK = 4, BACKGROUND_COLOR_MASK = 1, SECOND_BACKGROUND_COLOR_MASK = 16, THIRD_BACKGROUND_COLOR_MASK = 32, FOURTH_BACKGROUND_COLOR_MASK = 64, INTENSITY_MASK = 8, ROTATION_MASK = 16 }; + + wallPaperSettings(); + + wallPaperSettings(int32 flags_, bool blur_, bool motion_, int32 background_color_, int32 second_background_color_, int32 third_background_color_, int32 fourth_background_color_, int32 intensity_, int32 rotation_); + + static const std::int32_t ID = 499236004; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<wallPaperSettings> fetch(TlBufferParser &p); + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webAuthorization final : public Object { + public: + int64 hash_; + int64 bot_id_; + string domain_; + string browser_; + string platform_; + int32 date_created_; + int32 date_active_; + string ip_; + string region_; + + static const std::int32_t ID = -1493633966; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<webAuthorization> fetch(TlBufferParser &p); + + explicit webAuthorization(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class WebDocument: public Object { + public: + + static object_ptr<WebDocument> fetch(TlBufferParser &p); +}; + +class webDocument final : public WebDocument { + public: + string url_; + int64 access_hash_; + int32 size_; + string mime_type_; + array<object_ptr<DocumentAttribute>> attributes_; + + static const std::int32_t ID = 475467473; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WebDocument> fetch(TlBufferParser &p); + + explicit webDocument(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webDocumentNoProxy final : public WebDocument { + public: + string url_; + int32 size_; + string mime_type_; + array<object_ptr<DocumentAttribute>> attributes_; + + static const std::int32_t ID = -104284986; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WebDocument> fetch(TlBufferParser &p); + + explicit webDocumentNoProxy(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class WebPage: public Object { + public: + + static object_ptr<WebPage> fetch(TlBufferParser &p); +}; + +class webPageEmpty final : public WebPage { + public: + int64 id_; + + static const std::int32_t ID = -350980120; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WebPage> fetch(TlBufferParser &p); + + explicit webPageEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webPagePending final : public WebPage { + public: + int64 id_; + int32 date_; + + static const std::int32_t ID = -981018084; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WebPage> fetch(TlBufferParser &p); + + explicit webPagePending(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webPage final : public WebPage { + public: + int32 flags_; + int64 id_; + string url_; + string display_url_; + int32 hash_; + string type_; + string site_name_; + string title_; + string description_; + object_ptr<Photo> photo_; + string embed_url_; + string embed_type_; + int32 embed_width_; + int32 embed_height_; + int32 duration_; + string author_; + object_ptr<Document> document_; + object_ptr<page> cached_page_; + array<object_ptr<webPageAttributeTheme>> attributes_; + enum Flags : std::int32_t { TYPE_MASK = 1, SITE_NAME_MASK = 2, TITLE_MASK = 4, DESCRIPTION_MASK = 8, EMBED_URL_MASK = 32, EMBED_TYPE_MASK = 32, EMBED_WIDTH_MASK = 64, EMBED_HEIGHT_MASK = 64, DURATION_MASK = 128, AUTHOR_MASK = 256 }; + + webPage(); + + static const std::int32_t ID = -392411726; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WebPage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webPageNotModified final : public WebPage { + public: + int32 flags_; + int32 cached_page_views_; + enum Flags : std::int32_t { CACHED_PAGE_VIEWS_MASK = 1 }; + + webPageNotModified(); + + static const std::int32_t ID = 1930545681; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<WebPage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webPageAttributeTheme final : public Object { + public: + int32 flags_; + array<object_ptr<Document>> documents_; + object_ptr<themeSettings> settings_; + + webPageAttributeTheme(); + + static const std::int32_t ID = 1421174295; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<webPageAttributeTheme> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webViewMessageSent final : public Object { + public: + int32 flags_; + object_ptr<InputBotInlineMessageID> msg_id_; + + webViewMessageSent(); + + static const std::int32_t ID = 211046684; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<webViewMessageSent> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class webViewResultUrl final : public Object { + public: + int64 query_id_; + string url_; + + static const std::int32_t ID = 202659196; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<webViewResultUrl> fetch(TlBufferParser &p); + + explicit webViewResultUrl(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_authorizationForm final : public Object { + public: + int32 flags_; + array<object_ptr<SecureRequiredType>> required_types_; + array<object_ptr<secureValue>> values_; + array<object_ptr<SecureValueError>> errors_; + array<object_ptr<User>> users_; + string privacy_policy_url_; + enum Flags : std::int32_t { PRIVACY_POLICY_URL_MASK = 1 }; + + account_authorizationForm(); + + static const std::int32_t ID = -1389486888; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_authorizationForm> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_authorizations final : public Object { + public: + int32 authorization_ttl_days_; + array<object_ptr<authorization>> authorizations_; + + static const std::int32_t ID = 1275039392; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_authorizations> fetch(TlBufferParser &p); + + explicit account_authorizations(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_autoDownloadSettings final : public Object { + public: + object_ptr<autoDownloadSettings> low_; + object_ptr<autoDownloadSettings> medium_; + object_ptr<autoDownloadSettings> high_; + + static const std::int32_t ID = 1674235686; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_autoDownloadSettings> fetch(TlBufferParser &p); + + explicit account_autoDownloadSettings(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_contentSettings final : public Object { + public: + int32 flags_; + bool sensitive_enabled_; + bool sensitive_can_change_; + + account_contentSettings(); + + static const std::int32_t ID = 1474462241; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_contentSettings> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_EmailVerified: public Object { + public: + + static object_ptr<account_EmailVerified> fetch(TlBufferParser &p); +}; + +class account_emailVerified final : public account_EmailVerified { + public: + string email_; + + static const std::int32_t ID = 731303195; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_EmailVerified> fetch(TlBufferParser &p); + + explicit account_emailVerified(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_emailVerifiedLogin final : public account_EmailVerified { + public: + string email_; + object_ptr<auth_sentCode> sent_code_; + + static const std::int32_t ID = -507835039; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_EmailVerified> fetch(TlBufferParser &p); + + explicit account_emailVerifiedLogin(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_EmojiStatuses: public Object { + public: + + static object_ptr<account_EmojiStatuses> fetch(TlBufferParser &p); +}; + +class account_emojiStatusesNotModified final : public account_EmojiStatuses { + public: + + static const std::int32_t ID = -796072379; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_EmojiStatuses> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_emojiStatuses final : public account_EmojiStatuses { + public: + int64 hash_; + array<object_ptr<EmojiStatus>> statuses_; + + static const std::int32_t ID = -1866176559; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_EmojiStatuses> fetch(TlBufferParser &p); + + explicit account_emojiStatuses(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_password final : public Object { + public: + int32 flags_; + bool has_recovery_; + bool has_secure_values_; + bool has_password_; + object_ptr<PasswordKdfAlgo> current_algo_; + bytes srp_B_; + int64 srp_id_; + string hint_; + string email_unconfirmed_pattern_; + object_ptr<PasswordKdfAlgo> new_algo_; + object_ptr<SecurePasswordKdfAlgo> new_secure_algo_; + bytes secure_random_; + int32 pending_reset_date_; + string login_email_pattern_; + enum Flags : std::int32_t { SRP_B_MASK = 4, SRP_ID_MASK = 4, HINT_MASK = 8, EMAIL_UNCONFIRMED_PATTERN_MASK = 16, PENDING_RESET_DATE_MASK = 32, LOGIN_EMAIL_PATTERN_MASK = 64 }; + + account_password(); + + static const std::int32_t ID = -1787080453; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_password> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_passwordInputSettings final : public Object { + public: + int32 flags_; + object_ptr<PasswordKdfAlgo> new_algo_; + bytes new_password_hash_; + string hint_; + string email_; + object_ptr<secureSecretSettings> new_secure_settings_; + enum Flags : std::int32_t { NEW_ALGO_MASK = 1, NEW_PASSWORD_HASH_MASK = 1, HINT_MASK = 1, EMAIL_MASK = 2, NEW_SECURE_SETTINGS_MASK = 4 }; + + account_passwordInputSettings(int32 flags_, object_ptr<PasswordKdfAlgo> &&new_algo_, bytes &&new_password_hash_, string const &hint_, string const &email_, object_ptr<secureSecretSettings> &&new_secure_settings_); + + static const std::int32_t ID = -1036572727; + std::int32_t get_id() const final { + return ID; + } + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_passwordSettings final : public Object { + public: + int32 flags_; + string email_; + object_ptr<secureSecretSettings> secure_settings_; + enum Flags : std::int32_t { EMAIL_MASK = 1 }; + + account_passwordSettings(); + + static const std::int32_t ID = -1705233435; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_passwordSettings> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_privacyRules final : public Object { + public: + array<object_ptr<PrivacyRule>> rules_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 1352683077; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_privacyRules> fetch(TlBufferParser &p); + + explicit account_privacyRules(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_ResetPasswordResult: public Object { + public: + + static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p); +}; + +class account_resetPasswordFailedWait final : public account_ResetPasswordResult { + public: + int32 retry_date_; + + static const std::int32_t ID = -478701471; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p); + + explicit account_resetPasswordFailedWait(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_resetPasswordRequestedWait final : public account_ResetPasswordResult { + public: + int32 until_date_; + + static const std::int32_t ID = -370148227; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p); + + explicit account_resetPasswordRequestedWait(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_resetPasswordOk final : public account_ResetPasswordResult { + public: + + static const std::int32_t ID = -383330754; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_ResetPasswordResult> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_SavedRingtone: public Object { + public: + + static object_ptr<account_SavedRingtone> fetch(TlBufferParser &p); +}; + +class account_savedRingtone final : public account_SavedRingtone { + public: + + static const std::int32_t ID = -1222230163; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_SavedRingtone> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_savedRingtoneConverted final : public account_SavedRingtone { + public: + object_ptr<Document> document_; + + static const std::int32_t ID = 523271863; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_SavedRingtone> fetch(TlBufferParser &p); + + explicit account_savedRingtoneConverted(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_SavedRingtones: public Object { + public: + + static object_ptr<account_SavedRingtones> fetch(TlBufferParser &p); +}; + +class account_savedRingtonesNotModified final : public account_SavedRingtones { + public: + + static const std::int32_t ID = -67704655; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_SavedRingtones> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_savedRingtones final : public account_SavedRingtones { + public: + int64 hash_; + array<object_ptr<Document>> ringtones_; + + static const std::int32_t ID = -1041683259; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_SavedRingtones> fetch(TlBufferParser &p); + + explicit account_savedRingtones(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_sentEmailCode final : public Object { + public: + string email_pattern_; + int32 length_; + + static const std::int32_t ID = -2128640689; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_sentEmailCode> fetch(TlBufferParser &p); + + explicit account_sentEmailCode(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_takeout final : public Object { + public: + int64 id_; + + static const std::int32_t ID = 1304052993; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_takeout> fetch(TlBufferParser &p); + + explicit account_takeout(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_Themes: public Object { + public: + + static object_ptr<account_Themes> fetch(TlBufferParser &p); +}; + +class account_themesNotModified final : public account_Themes { + public: + + static const std::int32_t ID = -199313886; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_Themes> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_themes final : public account_Themes { + public: + int64 hash_; + array<object_ptr<theme>> themes_; + + static const std::int32_t ID = -1707242387; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_Themes> fetch(TlBufferParser &p); + + explicit account_themes(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_tmpPassword final : public Object { + public: + bytes tmp_password_; + int32 valid_until_; + + static const std::int32_t ID = -614138572; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_tmpPassword> fetch(TlBufferParser &p); + + explicit account_tmpPassword(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_WallPapers: public Object { + public: + + static object_ptr<account_WallPapers> fetch(TlBufferParser &p); +}; + +class account_wallPapersNotModified final : public account_WallPapers { + public: + + static const std::int32_t ID = 471437699; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_WallPapers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_wallPapers final : public account_WallPapers { + public: + int64 hash_; + array<object_ptr<WallPaper>> wallpapers_; + + static const std::int32_t ID = -842824308; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_WallPapers> fetch(TlBufferParser &p); + + explicit account_wallPapers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_webAuthorizations final : public Object { + public: + array<object_ptr<webAuthorization>> authorizations_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -313079300; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<account_webAuthorizations> fetch(TlBufferParser &p); + + explicit account_webAuthorizations(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_Authorization: public Object { + public: + + static object_ptr<auth_Authorization> fetch(TlBufferParser &p); +}; + +class auth_authorization final : public auth_Authorization { + public: + int32 flags_; + bool setup_password_required_; + int32 otherwise_relogin_days_; + int32 tmp_sessions_; + object_ptr<User> user_; + enum Flags : std::int32_t { OTHERWISE_RELOGIN_DAYS_MASK = 2, TMP_SESSIONS_MASK = 1 }; + + auth_authorization(); + + static const std::int32_t ID = 872119224; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_Authorization> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_authorizationSignUpRequired final : public auth_Authorization { + public: + int32 flags_; + object_ptr<help_termsOfService> terms_of_service_; + + auth_authorizationSignUpRequired(); + + static const std::int32_t ID = 1148485274; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_Authorization> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_CodeType: public Object { + public: + + static object_ptr<auth_CodeType> fetch(TlBufferParser &p); +}; + +class auth_codeTypeSms final : public auth_CodeType { + public: + + static const std::int32_t ID = 1923290508; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_CodeType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_codeTypeCall final : public auth_CodeType { + public: + + static const std::int32_t ID = 1948046307; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_CodeType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_codeTypeFlashCall final : public auth_CodeType { + public: + + static const std::int32_t ID = 577556219; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_CodeType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_codeTypeMissedCall final : public auth_CodeType { + public: + + static const std::int32_t ID = -702884114; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_CodeType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_exportedAuthorization final : public Object { + public: + int64 id_; + bytes bytes_; + + static const std::int32_t ID = -1271602504; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_exportedAuthorization> fetch(TlBufferParser &p); + + explicit auth_exportedAuthorization(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_loggedOut final : public Object { + public: + int32 flags_; + bytes future_auth_token_; + enum Flags : std::int32_t { FUTURE_AUTH_TOKEN_MASK = 1 }; + + auth_loggedOut(); + + static const std::int32_t ID = -1012759713; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_loggedOut> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_LoginToken: public Object { + public: + + static object_ptr<auth_LoginToken> fetch(TlBufferParser &p); +}; + +class auth_loginToken final : public auth_LoginToken { + public: + int32 expires_; + bytes token_; + + static const std::int32_t ID = 1654593920; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_LoginToken> fetch(TlBufferParser &p); + + explicit auth_loginToken(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_loginTokenMigrateTo final : public auth_LoginToken { + public: + int32 dc_id_; + bytes token_; + + static const std::int32_t ID = 110008598; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_LoginToken> fetch(TlBufferParser &p); + + explicit auth_loginTokenMigrateTo(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_loginTokenSuccess final : public auth_LoginToken { + public: + object_ptr<auth_Authorization> authorization_; + + static const std::int32_t ID = 957176926; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_LoginToken> fetch(TlBufferParser &p); + + explicit auth_loginTokenSuccess(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_passwordRecovery final : public Object { + public: + string email_pattern_; + + static const std::int32_t ID = 326715557; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_passwordRecovery> fetch(TlBufferParser &p); + + explicit auth_passwordRecovery(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_sentCode final : public Object { + public: + int32 flags_; + object_ptr<auth_SentCodeType> type_; + string phone_code_hash_; + object_ptr<auth_CodeType> next_type_; + int32 timeout_; + enum Flags : std::int32_t { TIMEOUT_MASK = 4 }; + + auth_sentCode(); + + static const std::int32_t ID = 1577067778; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_sentCode> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_SentCodeType: public Object { + public: + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); +}; + +class auth_sentCodeTypeApp final : public auth_SentCodeType { + public: + int32 length_; + + static const std::int32_t ID = 1035688326; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); + + explicit auth_sentCodeTypeApp(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_sentCodeTypeSms final : public auth_SentCodeType { + public: + int32 length_; + + static const std::int32_t ID = -1073693790; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); + + explicit auth_sentCodeTypeSms(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_sentCodeTypeCall final : public auth_SentCodeType { + public: + int32 length_; + + static const std::int32_t ID = 1398007207; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); + + explicit auth_sentCodeTypeCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_sentCodeTypeFlashCall final : public auth_SentCodeType { + public: + string pattern_; + + static const std::int32_t ID = -1425815847; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); + + explicit auth_sentCodeTypeFlashCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_sentCodeTypeMissedCall final : public auth_SentCodeType { + public: + string prefix_; + int32 length_; + + static const std::int32_t ID = -2113903484; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); + + explicit auth_sentCodeTypeMissedCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_sentCodeTypeEmailCode final : public auth_SentCodeType { + public: + int32 flags_; + bool apple_signin_allowed_; + bool google_signin_allowed_; + string email_pattern_; + int32 length_; + int32 next_phone_login_date_; + enum Flags : std::int32_t { NEXT_PHONE_LOGIN_DATE_MASK = 4 }; + + auth_sentCodeTypeEmailCode(); + + static const std::int32_t ID = 1511364673; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class auth_sentCodeTypeSetUpEmailRequired final : public auth_SentCodeType { + public: + int32 flags_; + bool apple_signin_allowed_; + bool google_signin_allowed_; + + auth_sentCodeTypeSetUpEmailRequired(); + + static const std::int32_t ID = -1521934870; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<auth_SentCodeType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channels_adminLogResults final : public Object { + public: + array<object_ptr<channelAdminLogEvent>> events_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -309659827; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<channels_adminLogResults> fetch(TlBufferParser &p); + + explicit channels_adminLogResults(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channels_channelParticipant final : public Object { + public: + object_ptr<ChannelParticipant> participant_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -541588713; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<channels_channelParticipant> fetch(TlBufferParser &p); + + explicit channels_channelParticipant(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channels_ChannelParticipants: public Object { + public: + + static object_ptr<channels_ChannelParticipants> fetch(TlBufferParser &p); +}; + +class channels_channelParticipants final : public channels_ChannelParticipants { + public: + int32 count_; + array<object_ptr<ChannelParticipant>> participants_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1699676497; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<channels_ChannelParticipants> fetch(TlBufferParser &p); + + explicit channels_channelParticipants(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channels_channelParticipantsNotModified final : public channels_ChannelParticipants { + public: + + static const std::int32_t ID = -266911767; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<channels_ChannelParticipants> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class channels_sendAsPeers final : public Object { + public: + array<object_ptr<sendAsPeer>> peers_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -191450938; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<channels_sendAsPeers> fetch(TlBufferParser &p); + + explicit channels_sendAsPeers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_Blocked: public Object { + public: + + static object_ptr<contacts_Blocked> fetch(TlBufferParser &p); +}; + +class contacts_blocked final : public contacts_Blocked { + public: + array<object_ptr<peerBlocked>> blocked_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 182326673; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_Blocked> fetch(TlBufferParser &p); + + explicit contacts_blocked(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_blockedSlice final : public contacts_Blocked { + public: + int32 count_; + array<object_ptr<peerBlocked>> blocked_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -513392236; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_Blocked> fetch(TlBufferParser &p); + + explicit contacts_blockedSlice(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_Contacts: public Object { + public: + + static object_ptr<contacts_Contacts> fetch(TlBufferParser &p); +}; + +class contacts_contactsNotModified final : public contacts_Contacts { + public: + + static const std::int32_t ID = -1219778094; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_Contacts> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_contacts final : public contacts_Contacts { + public: + array<object_ptr<contact>> contacts_; + int32 saved_count_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -353862078; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_Contacts> fetch(TlBufferParser &p); + + explicit contacts_contacts(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_found final : public Object { + public: + array<object_ptr<Peer>> my_results_; + array<object_ptr<Peer>> results_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1290580579; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_found> fetch(TlBufferParser &p); + + explicit contacts_found(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_importedContacts final : public Object { + public: + array<object_ptr<importedContact>> imported_; + array<object_ptr<popularContact>> popular_invites_; + array<int64> retry_contacts_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 2010127419; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_importedContacts> fetch(TlBufferParser &p); + + explicit contacts_importedContacts(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_resolvedPeer final : public Object { + public: + object_ptr<Peer> peer_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 2131196633; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_resolvedPeer> fetch(TlBufferParser &p); + + explicit contacts_resolvedPeer(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_TopPeers: public Object { + public: + + static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p); +}; + +class contacts_topPeersNotModified final : public contacts_TopPeers { + public: + + static const std::int32_t ID = -567906571; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_topPeers final : public contacts_TopPeers { + public: + array<object_ptr<topPeerCategoryPeers>> categories_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 1891070632; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p); + + explicit contacts_topPeers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class contacts_topPeersDisabled final : public contacts_TopPeers { + public: + + static const std::int32_t ID = -1255369827; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<contacts_TopPeers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_AppUpdate: public Object { + public: + + static object_ptr<help_AppUpdate> fetch(TlBufferParser &p); +}; + +class help_appUpdate final : public help_AppUpdate { + public: + int32 flags_; + bool can_not_skip_; + int32 id_; + string version_; + string text_; + array<object_ptr<MessageEntity>> entities_; + object_ptr<Document> document_; + string url_; + object_ptr<Document> sticker_; + enum Flags : std::int32_t { URL_MASK = 4 }; + + help_appUpdate(); + + static const std::int32_t ID = -860107216; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_AppUpdate> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_noAppUpdate final : public help_AppUpdate { + public: + + static const std::int32_t ID = -1000708810; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_AppUpdate> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_configSimple final : public Object { + public: + int32 date_; + int32 expires_; + array<object_ptr<accessPointRule>> rules_; + + static const std::int32_t ID = 1515793004; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_configSimple> fetch(TlBufferParser &p); + + explicit help_configSimple(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_CountriesList: public Object { + public: + + static object_ptr<help_CountriesList> fetch(TlBufferParser &p); +}; + +class help_countriesListNotModified final : public help_CountriesList { + public: + + static const std::int32_t ID = -1815339214; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_CountriesList> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_countriesList final : public help_CountriesList { + public: + array<object_ptr<help_country>> countries_; + int32 hash_; + + static const std::int32_t ID = -2016381538; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_CountriesList> fetch(TlBufferParser &p); + + explicit help_countriesList(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_country final : public Object { + public: + int32 flags_; + bool hidden_; + string iso2_; + string default_name_; + string name_; + array<object_ptr<help_countryCode>> country_codes_; + enum Flags : std::int32_t { NAME_MASK = 2 }; + + help_country(); + + static const std::int32_t ID = -1014526429; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_country> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_countryCode final : public Object { + public: + int32 flags_; + string country_code_; + array<string> prefixes_; + array<string> patterns_; + + help_countryCode(); + + static const std::int32_t ID = 1107543535; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_countryCode> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_DeepLinkInfo: public Object { + public: + + static object_ptr<help_DeepLinkInfo> fetch(TlBufferParser &p); +}; + +class help_deepLinkInfoEmpty final : public help_DeepLinkInfo { + public: + + static const std::int32_t ID = 1722786150; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_DeepLinkInfo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_deepLinkInfo final : public help_DeepLinkInfo { + public: + int32 flags_; + bool update_app_; + string message_; + array<object_ptr<MessageEntity>> entities_; + + help_deepLinkInfo(); + + static const std::int32_t ID = 1783556146; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_DeepLinkInfo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_inviteText final : public Object { + public: + string message_; + + static const std::int32_t ID = 415997816; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_inviteText> fetch(TlBufferParser &p); + + explicit help_inviteText(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_PassportConfig: public Object { + public: + + static object_ptr<help_PassportConfig> fetch(TlBufferParser &p); +}; + +class help_passportConfigNotModified final : public help_PassportConfig { + public: + + static const std::int32_t ID = -1078332329; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_PassportConfig> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_passportConfig final : public help_PassportConfig { + public: + int32 hash_; + object_ptr<dataJSON> countries_langs_; + + static const std::int32_t ID = -1600596305; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_PassportConfig> fetch(TlBufferParser &p); + + explicit help_passportConfig(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_premiumPromo final : public Object { + public: + string status_text_; + array<object_ptr<MessageEntity>> status_entities_; + array<string> video_sections_; + array<object_ptr<Document>> videos_; + array<object_ptr<premiumSubscriptionOption>> period_options_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 1395946908; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_premiumPromo> fetch(TlBufferParser &p); + + explicit help_premiumPromo(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_PromoData: public Object { + public: + + static object_ptr<help_PromoData> fetch(TlBufferParser &p); +}; + +class help_promoDataEmpty final : public help_PromoData { + public: + int32 expires_; + + static const std::int32_t ID = -1728664459; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_PromoData> fetch(TlBufferParser &p); + + explicit help_promoDataEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_promoData final : public help_PromoData { + public: + int32 flags_; + bool proxy_; + int32 expires_; + object_ptr<Peer> peer_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + string psa_type_; + string psa_message_; + enum Flags : std::int32_t { PSA_TYPE_MASK = 2, PSA_MESSAGE_MASK = 4 }; + + help_promoData(); + + static const std::int32_t ID = -1942390465; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_PromoData> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_recentMeUrls final : public Object { + public: + array<object_ptr<RecentMeUrl>> urls_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 235081943; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_recentMeUrls> fetch(TlBufferParser &p); + + explicit help_recentMeUrls(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_support final : public Object { + public: + string phone_number_; + object_ptr<User> user_; + + static const std::int32_t ID = 398898678; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_support> fetch(TlBufferParser &p); + + explicit help_support(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_supportName final : public Object { + public: + string name_; + + static const std::int32_t ID = -1945767479; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_supportName> fetch(TlBufferParser &p); + + explicit help_supportName(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_termsOfService final : public Object { + public: + int32 flags_; + bool popup_; + object_ptr<dataJSON> id_; + string text_; + array<object_ptr<MessageEntity>> entities_; + int32 min_age_confirm_; + enum Flags : std::int32_t { MIN_AGE_CONFIRM_MASK = 2 }; + + help_termsOfService(); + + static const std::int32_t ID = 2013922064; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_termsOfService> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_TermsOfServiceUpdate: public Object { + public: + + static object_ptr<help_TermsOfServiceUpdate> fetch(TlBufferParser &p); +}; + +class help_termsOfServiceUpdateEmpty final : public help_TermsOfServiceUpdate { + public: + int32 expires_; + + static const std::int32_t ID = -483352705; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_TermsOfServiceUpdate> fetch(TlBufferParser &p); + + explicit help_termsOfServiceUpdateEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_termsOfServiceUpdate final : public help_TermsOfServiceUpdate { + public: + int32 expires_; + object_ptr<help_termsOfService> terms_of_service_; + + static const std::int32_t ID = 686618977; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_TermsOfServiceUpdate> fetch(TlBufferParser &p); + + explicit help_termsOfServiceUpdate(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_UserInfo: public Object { + public: + + static object_ptr<help_UserInfo> fetch(TlBufferParser &p); +}; + +class help_userInfoEmpty final : public help_UserInfo { + public: + + static const std::int32_t ID = -206688531; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_UserInfo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class help_userInfo final : public help_UserInfo { + public: + string message_; + array<object_ptr<MessageEntity>> entities_; + string author_; + int32 date_; + + static const std::int32_t ID = 32192344; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<help_UserInfo> fetch(TlBufferParser &p); + + explicit help_userInfo(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_affectedFoundMessages final : public Object { + public: + int32 pts_; + int32 pts_count_; + int32 offset_; + array<int32> messages_; + + static const std::int32_t ID = -275956116; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_affectedFoundMessages> fetch(TlBufferParser &p); + + explicit messages_affectedFoundMessages(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_affectedHistory final : public Object { + public: + int32 pts_; + int32 pts_count_; + int32 offset_; + + static const std::int32_t ID = -1269012015; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_affectedHistory> fetch(TlBufferParser &p); + + explicit messages_affectedHistory(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_affectedMessages final : public Object { + public: + int32 pts_; + int32 pts_count_; + + static const std::int32_t ID = -2066640507; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_affectedMessages> fetch(TlBufferParser &p); + + explicit messages_affectedMessages(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_AllStickers: public Object { + public: + + static object_ptr<messages_AllStickers> fetch(TlBufferParser &p); +}; + +class messages_allStickersNotModified final : public messages_AllStickers { + public: + + static const std::int32_t ID = -395967805; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_AllStickers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_allStickers final : public messages_AllStickers { + public: + int64 hash_; + array<object_ptr<stickerSet>> sets_; + + static const std::int32_t ID = -843329861; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_AllStickers> fetch(TlBufferParser &p); + + explicit messages_allStickers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_archivedStickers final : public Object { + public: + int32 count_; + array<object_ptr<StickerSetCovered>> sets_; + + static const std::int32_t ID = 1338747336; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_archivedStickers> fetch(TlBufferParser &p); + + explicit messages_archivedStickers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_AvailableReactions: public Object { + public: + + static object_ptr<messages_AvailableReactions> fetch(TlBufferParser &p); +}; + +class messages_availableReactionsNotModified final : public messages_AvailableReactions { + public: + + static const std::int32_t ID = -1626924713; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_AvailableReactions> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_availableReactions final : public messages_AvailableReactions { + public: + int32 hash_; + array<object_ptr<availableReaction>> reactions_; + + static const std::int32_t ID = 1989032621; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_AvailableReactions> fetch(TlBufferParser &p); + + explicit messages_availableReactions(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_botCallbackAnswer final : public Object { + public: + int32 flags_; + bool alert_; + bool has_url_; + bool native_ui_; + string message_; + string url_; + int32 cache_time_; + enum Flags : std::int32_t { MESSAGE_MASK = 1, URL_MASK = 4 }; + + messages_botCallbackAnswer(); + + static const std::int32_t ID = 911761060; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_botCallbackAnswer> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_botResults final : public Object { + public: + int32 flags_; + bool gallery_; + int64 query_id_; + string next_offset_; + object_ptr<inlineBotSwitchPM> switch_pm_; + array<object_ptr<BotInlineResult>> results_; + int32 cache_time_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { NEXT_OFFSET_MASK = 2 }; + + messages_botResults(); + + static const std::int32_t ID = -1803769784; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_botResults> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_chatAdminsWithInvites final : public Object { + public: + array<object_ptr<chatAdminWithInvites>> admins_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1231326505; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_chatAdminsWithInvites> fetch(TlBufferParser &p); + + explicit messages_chatAdminsWithInvites(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_chatFull final : public Object { + public: + object_ptr<ChatFull> full_chat_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -438840932; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_chatFull> fetch(TlBufferParser &p); + + explicit messages_chatFull(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_chatInviteImporters final : public Object { + public: + int32 count_; + array<object_ptr<chatInviteImporter>> importers_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -2118733814; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_chatInviteImporters> fetch(TlBufferParser &p); + + explicit messages_chatInviteImporters(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_Chats: public Object { + public: + + static object_ptr<messages_Chats> fetch(TlBufferParser &p); +}; + +class messages_chats final : public messages_Chats { + public: + array<object_ptr<Chat>> chats_; + + static const std::int32_t ID = 1694474197; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Chats> fetch(TlBufferParser &p); + + explicit messages_chats(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_chatsSlice final : public messages_Chats { + public: + int32 count_; + array<object_ptr<Chat>> chats_; + + static const std::int32_t ID = -1663561404; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Chats> fetch(TlBufferParser &p); + + explicit messages_chatsSlice(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_checkedHistoryImportPeer final : public Object { + public: + string confirm_text_; + + static const std::int32_t ID = -1571952873; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_checkedHistoryImportPeer> fetch(TlBufferParser &p); + + explicit messages_checkedHistoryImportPeer(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_DhConfig: public Object { + public: + + static object_ptr<messages_DhConfig> fetch(TlBufferParser &p); +}; + +class messages_dhConfigNotModified final : public messages_DhConfig { + public: + bytes random_; + + static const std::int32_t ID = -1058912715; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_DhConfig> fetch(TlBufferParser &p); + + explicit messages_dhConfigNotModified(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_dhConfig final : public messages_DhConfig { + public: + int32 g_; + bytes p_; + int32 version_; + bytes random_; + + static const std::int32_t ID = 740433629; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_DhConfig> fetch(TlBufferParser &p); + + explicit messages_dhConfig(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_Dialogs: public Object { + public: + + static object_ptr<messages_Dialogs> fetch(TlBufferParser &p); +}; + +class messages_dialogs final : public messages_Dialogs { + public: + array<object_ptr<Dialog>> dialogs_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 364538944; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Dialogs> fetch(TlBufferParser &p); + + explicit messages_dialogs(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_dialogsSlice final : public messages_Dialogs { + public: + int32 count_; + array<object_ptr<Dialog>> dialogs_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 1910543603; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Dialogs> fetch(TlBufferParser &p); + + explicit messages_dialogsSlice(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_dialogsNotModified final : public messages_Dialogs { + public: + int32 count_; + + static const std::int32_t ID = -253500010; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Dialogs> fetch(TlBufferParser &p); + + explicit messages_dialogsNotModified(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_discussionMessage final : public Object { + public: + int32 flags_; + array<object_ptr<Message>> messages_; + int32 max_id_; + int32 read_inbox_max_id_; + int32 read_outbox_max_id_; + int32 unread_count_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { MAX_ID_MASK = 1, READ_INBOX_MAX_ID_MASK = 2, READ_OUTBOX_MAX_ID_MASK = 4 }; + + messages_discussionMessage(); + + static const std::int32_t ID = -1506535550; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_discussionMessage> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_ExportedChatInvite: public Object { + public: + + static object_ptr<messages_ExportedChatInvite> fetch(TlBufferParser &p); +}; + +class messages_exportedChatInvite final : public messages_ExportedChatInvite { + public: + object_ptr<ExportedChatInvite> invite_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 410107472; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_ExportedChatInvite> fetch(TlBufferParser &p); + + explicit messages_exportedChatInvite(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_exportedChatInviteReplaced final : public messages_ExportedChatInvite { + public: + object_ptr<ExportedChatInvite> invite_; + object_ptr<ExportedChatInvite> new_invite_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 572915951; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_ExportedChatInvite> fetch(TlBufferParser &p); + + explicit messages_exportedChatInviteReplaced(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_exportedChatInvites final : public Object { + public: + int32 count_; + array<object_ptr<ExportedChatInvite>> invites_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1111085620; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_exportedChatInvites> fetch(TlBufferParser &p); + + explicit messages_exportedChatInvites(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_FavedStickers: public Object { + public: + + static object_ptr<messages_FavedStickers> fetch(TlBufferParser &p); +}; + +class messages_favedStickersNotModified final : public messages_FavedStickers { + public: + + static const std::int32_t ID = -1634752813; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_FavedStickers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_favedStickers final : public messages_FavedStickers { + public: + int64 hash_; + array<object_ptr<stickerPack>> packs_; + array<object_ptr<Document>> stickers_; + + static const std::int32_t ID = 750063767; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_FavedStickers> fetch(TlBufferParser &p); + + explicit messages_favedStickers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_FeaturedStickers: public Object { + public: + + static object_ptr<messages_FeaturedStickers> fetch(TlBufferParser &p); +}; + +class messages_featuredStickersNotModified final : public messages_FeaturedStickers { + public: + int32 count_; + + static const std::int32_t ID = -958657434; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_FeaturedStickers> fetch(TlBufferParser &p); + + explicit messages_featuredStickersNotModified(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_featuredStickers final : public messages_FeaturedStickers { + public: + int32 flags_; + bool premium_; + int64 hash_; + int32 count_; + array<object_ptr<StickerSetCovered>> sets_; + array<int64> unread_; + + messages_featuredStickers(); + + static const std::int32_t ID = -1103615738; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_FeaturedStickers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_forumTopics final : public Object { + public: + int32 flags_; + bool order_by_create_date_; + int32 count_; + array<object_ptr<ForumTopic>> topics_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + int32 pts_; + + messages_forumTopics(); + + static const std::int32_t ID = 913709011; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_forumTopics> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_FoundStickerSets: public Object { + public: + + static object_ptr<messages_FoundStickerSets> fetch(TlBufferParser &p); +}; + +class messages_foundStickerSetsNotModified final : public messages_FoundStickerSets { + public: + + static const std::int32_t ID = 223655517; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_FoundStickerSets> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_foundStickerSets final : public messages_FoundStickerSets { + public: + int64 hash_; + array<object_ptr<StickerSetCovered>> sets_; + + static const std::int32_t ID = -1963942446; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_FoundStickerSets> fetch(TlBufferParser &p); + + explicit messages_foundStickerSets(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_highScores final : public Object { + public: + array<object_ptr<highScore>> scores_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1707344487; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_highScores> fetch(TlBufferParser &p); + + explicit messages_highScores(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_historyImport final : public Object { + public: + int64 id_; + + static const std::int32_t ID = 375566091; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_historyImport> fetch(TlBufferParser &p); + + explicit messages_historyImport(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_historyImportParsed final : public Object { + public: + int32 flags_; + bool pm_; + bool group_; + string title_; + enum Flags : std::int32_t { TITLE_MASK = 4 }; + + messages_historyImportParsed(); + + static const std::int32_t ID = 1578088377; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_historyImportParsed> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_inactiveChats final : public Object { + public: + array<int32> dates_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1456996667; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_inactiveChats> fetch(TlBufferParser &p); + + explicit messages_inactiveChats(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_messageEditData final : public Object { + public: + int32 flags_; + bool caption_; + + messages_messageEditData(); + + static const std::int32_t ID = 649453030; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_messageEditData> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_messageReactionsList final : public Object { + public: + int32 flags_; + int32 count_; + array<object_ptr<messagePeerReaction>> reactions_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + string next_offset_; + enum Flags : std::int32_t { NEXT_OFFSET_MASK = 1 }; + + messages_messageReactionsList(); + + static const std::int32_t ID = 834488621; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_messageReactionsList> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_messageViews final : public Object { + public: + array<object_ptr<messageViews>> views_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1228606141; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_messageViews> fetch(TlBufferParser &p); + + explicit messages_messageViews(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_Messages: public Object { + public: + + static object_ptr<messages_Messages> fetch(TlBufferParser &p); +}; + +class messages_messages final : public messages_Messages { + public: + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1938715001; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Messages> fetch(TlBufferParser &p); + + explicit messages_messages(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_messagesSlice final : public messages_Messages { + public: + int32 flags_; + bool inexact_; + int32 count_; + int32 next_rate_; + int32 offset_id_offset_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { NEXT_RATE_MASK = 1, OFFSET_ID_OFFSET_MASK = 4 }; + + messages_messagesSlice(); + + static const std::int32_t ID = 978610270; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Messages> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_channelMessages final : public messages_Messages { + public: + int32 flags_; + bool inexact_; + int32 pts_; + int32 count_; + int32 offset_id_offset_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { OFFSET_ID_OFFSET_MASK = 4 }; + + messages_channelMessages(); + + static const std::int32_t ID = 1682413576; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Messages> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_messagesNotModified final : public messages_Messages { + public: + int32 count_; + + static const std::int32_t ID = 1951620897; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Messages> fetch(TlBufferParser &p); + + explicit messages_messagesNotModified(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_peerDialogs final : public Object { + public: + array<object_ptr<Dialog>> dialogs_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + object_ptr<updates_state> state_; + + static const std::int32_t ID = 863093588; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_peerDialogs> fetch(TlBufferParser &p); + + explicit messages_peerDialogs(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_peerSettings final : public Object { + public: + object_ptr<peerSettings> settings_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 1753266509; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_peerSettings> fetch(TlBufferParser &p); + + explicit messages_peerSettings(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_Reactions: public Object { + public: + + static object_ptr<messages_Reactions> fetch(TlBufferParser &p); +}; + +class messages_reactionsNotModified final : public messages_Reactions { + public: + + static const std::int32_t ID = -1334846497; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Reactions> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_reactions final : public messages_Reactions { + public: + int64 hash_; + array<object_ptr<Reaction>> reactions_; + + static const std::int32_t ID = -352454890; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Reactions> fetch(TlBufferParser &p); + + explicit messages_reactions(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_RecentStickers: public Object { + public: + + static object_ptr<messages_RecentStickers> fetch(TlBufferParser &p); +}; + +class messages_recentStickersNotModified final : public messages_RecentStickers { + public: + + static const std::int32_t ID = 186120336; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_RecentStickers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_recentStickers final : public messages_RecentStickers { + public: + int64 hash_; + array<object_ptr<stickerPack>> packs_; + array<object_ptr<Document>> stickers_; + array<int32> dates_; + + static const std::int32_t ID = -1999405994; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_RecentStickers> fetch(TlBufferParser &p); + + explicit messages_recentStickers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_SavedGifs: public Object { + public: + + static object_ptr<messages_SavedGifs> fetch(TlBufferParser &p); +}; + +class messages_savedGifsNotModified final : public messages_SavedGifs { + public: + + static const std::int32_t ID = -402498398; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_SavedGifs> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_savedGifs final : public messages_SavedGifs { + public: + int64 hash_; + array<object_ptr<Document>> gifs_; + + static const std::int32_t ID = -2069878259; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_SavedGifs> fetch(TlBufferParser &p); + + explicit messages_savedGifs(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_searchCounter final : public Object { + public: + int32 flags_; + bool inexact_; + object_ptr<MessagesFilter> filter_; + int32 count_; + + messages_searchCounter(); + + static const std::int32_t ID = -398136321; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_searchCounter> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_searchResultsCalendar final : public Object { + public: + int32 flags_; + bool inexact_; + int32 count_; + int32 min_date_; + int32 min_msg_id_; + int32 offset_id_offset_; + array<object_ptr<searchResultsCalendarPeriod>> periods_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { OFFSET_ID_OFFSET_MASK = 2 }; + + messages_searchResultsCalendar(); + + static const std::int32_t ID = 343859772; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_searchResultsCalendar> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_searchResultsPositions final : public Object { + public: + int32 count_; + array<object_ptr<searchResultPosition>> positions_; + + static const std::int32_t ID = 1404185519; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_searchResultsPositions> fetch(TlBufferParser &p); + + explicit messages_searchResultsPositions(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_SentEncryptedMessage: public Object { + public: + + static object_ptr<messages_SentEncryptedMessage> fetch(TlBufferParser &p); +}; + +class messages_sentEncryptedMessage final : public messages_SentEncryptedMessage { + public: + int32 date_; + + static const std::int32_t ID = 1443858741; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_SentEncryptedMessage> fetch(TlBufferParser &p); + + explicit messages_sentEncryptedMessage(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_sentEncryptedFile final : public messages_SentEncryptedMessage { + public: + int32 date_; + object_ptr<EncryptedFile> file_; + + static const std::int32_t ID = -1802240206; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_SentEncryptedMessage> fetch(TlBufferParser &p); + + explicit messages_sentEncryptedFile(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_SponsoredMessages: public Object { + public: + + static object_ptr<messages_SponsoredMessages> fetch(TlBufferParser &p); +}; + +class messages_sponsoredMessages final : public messages_SponsoredMessages { + public: + int32 flags_; + int32 posts_between_; + array<object_ptr<sponsoredMessage>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { POSTS_BETWEEN_MASK = 1 }; + + messages_sponsoredMessages(); + + static const std::int32_t ID = -907141753; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_SponsoredMessages> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_sponsoredMessagesEmpty final : public messages_SponsoredMessages { + public: + + static const std::int32_t ID = 406407439; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_SponsoredMessages> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_StickerSet: public Object { + public: + + static object_ptr<messages_StickerSet> fetch(TlBufferParser &p); +}; + +class messages_stickerSet final : public messages_StickerSet { + public: + object_ptr<stickerSet> set_; + array<object_ptr<stickerPack>> packs_; + array<object_ptr<stickerKeyword>> keywords_; + array<object_ptr<Document>> documents_; + + messages_stickerSet(object_ptr<stickerSet> &&set_, array<object_ptr<stickerPack>> &&packs_, array<object_ptr<stickerKeyword>> &&keywords_, array<object_ptr<Document>> &&documents_); + + static const std::int32_t ID = 1846886166; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_StickerSet> fetch(TlBufferParser &p); + + explicit messages_stickerSet(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_stickerSetNotModified final : public messages_StickerSet { + public: + + static const std::int32_t ID = -738646805; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_StickerSet> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_StickerSetInstallResult: public Object { + public: + + static object_ptr<messages_StickerSetInstallResult> fetch(TlBufferParser &p); +}; + +class messages_stickerSetInstallResultSuccess final : public messages_StickerSetInstallResult { + public: + + static const std::int32_t ID = 946083368; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_StickerSetInstallResult> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_stickerSetInstallResultArchive final : public messages_StickerSetInstallResult { + public: + array<object_ptr<StickerSetCovered>> sets_; + + static const std::int32_t ID = 904138920; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_StickerSetInstallResult> fetch(TlBufferParser &p); + + explicit messages_stickerSetInstallResultArchive(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_Stickers: public Object { + public: + + static object_ptr<messages_Stickers> fetch(TlBufferParser &p); +}; + +class messages_stickersNotModified final : public messages_Stickers { + public: + + static const std::int32_t ID = -244016606; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Stickers> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_stickers final : public messages_Stickers { + public: + int64 hash_; + array<object_ptr<Document>> stickers_; + + static const std::int32_t ID = 816245886; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_Stickers> fetch(TlBufferParser &p); + + explicit messages_stickers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_transcribedAudio final : public Object { + public: + int32 flags_; + bool pending_; + int64 transcription_id_; + string text_; + + messages_transcribedAudio(); + + static const std::int32_t ID = -1821037486; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_transcribedAudio> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_TranslatedText: public Object { + public: + + static object_ptr<messages_TranslatedText> fetch(TlBufferParser &p); +}; + +class messages_translateNoResult final : public messages_TranslatedText { + public: + + static const std::int32_t ID = 1741309751; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_TranslatedText> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_translateResultText final : public messages_TranslatedText { + public: + string text_; + + static const std::int32_t ID = -1575684144; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_TranslatedText> fetch(TlBufferParser &p); + + explicit messages_translateResultText(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class messages_votesList final : public Object { + public: + int32 flags_; + int32 count_; + array<object_ptr<MessageUserVote>> votes_; + array<object_ptr<User>> users_; + string next_offset_; + enum Flags : std::int32_t { NEXT_OFFSET_MASK = 1 }; + + messages_votesList(); + + static const std::int32_t ID = 136574537; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<messages_votesList> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_bankCardData final : public Object { + public: + string title_; + array<object_ptr<bankCardOpenUrl>> open_urls_; + + static const std::int32_t ID = 1042605427; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_bankCardData> fetch(TlBufferParser &p); + + explicit payments_bankCardData(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_exportedInvoice final : public Object { + public: + string url_; + + static const std::int32_t ID = -1362048039; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_exportedInvoice> fetch(TlBufferParser &p); + + explicit payments_exportedInvoice(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_paymentForm final : public Object { + public: + int32 flags_; + bool can_save_credentials_; + bool password_missing_; + int64 form_id_; + int64 bot_id_; + string title_; + string description_; + object_ptr<WebDocument> photo_; + object_ptr<invoice> invoice_; + int64 provider_id_; + string url_; + string native_provider_; + object_ptr<dataJSON> native_params_; + array<object_ptr<paymentFormMethod>> additional_methods_; + object_ptr<paymentRequestedInfo> saved_info_; + array<object_ptr<paymentSavedCredentialsCard>> saved_credentials_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { NATIVE_PROVIDER_MASK = 16 }; + + payments_paymentForm(); + + static const std::int32_t ID = -1610250415; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_paymentForm> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_paymentReceipt final : public Object { + public: + int32 flags_; + int32 date_; + int64 bot_id_; + int64 provider_id_; + string title_; + string description_; + object_ptr<WebDocument> photo_; + object_ptr<invoice> invoice_; + object_ptr<paymentRequestedInfo> info_; + object_ptr<shippingOption> shipping_; + int64 tip_amount_; + string currency_; + int64 total_amount_; + string credentials_title_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { TIP_AMOUNT_MASK = 8 }; + + payments_paymentReceipt(); + + static const std::int32_t ID = 1891958275; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_paymentReceipt> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_PaymentResult: public Object { + public: + + static object_ptr<payments_PaymentResult> fetch(TlBufferParser &p); +}; + +class payments_paymentResult final : public payments_PaymentResult { + public: + object_ptr<Updates> updates_; + + static const std::int32_t ID = 1314881805; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_PaymentResult> fetch(TlBufferParser &p); + + explicit payments_paymentResult(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_paymentVerificationNeeded final : public payments_PaymentResult { + public: + string url_; + + static const std::int32_t ID = -666824391; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_PaymentResult> fetch(TlBufferParser &p); + + explicit payments_paymentVerificationNeeded(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_savedInfo final : public Object { + public: + int32 flags_; + bool has_saved_credentials_; + object_ptr<paymentRequestedInfo> saved_info_; + + payments_savedInfo(); + + static const std::int32_t ID = -74456004; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_savedInfo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class payments_validatedRequestedInfo final : public Object { + public: + int32 flags_; + string id_; + array<object_ptr<shippingOption>> shipping_options_; + enum Flags : std::int32_t { ID_MASK = 1 }; + + payments_validatedRequestedInfo(); + + static const std::int32_t ID = -784000893; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<payments_validatedRequestedInfo> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phone_exportedGroupCallInvite final : public Object { + public: + string link_; + + static const std::int32_t ID = 541839704; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phone_exportedGroupCallInvite> fetch(TlBufferParser &p); + + explicit phone_exportedGroupCallInvite(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phone_groupCall final : public Object { + public: + object_ptr<GroupCall> call_; + array<object_ptr<groupCallParticipant>> participants_; + string participants_next_offset_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1636664659; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phone_groupCall> fetch(TlBufferParser &p); + + explicit phone_groupCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phone_groupCallStreamChannels final : public Object { + public: + array<object_ptr<groupCallStreamChannel>> channels_; + + static const std::int32_t ID = -790330702; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phone_groupCallStreamChannels> fetch(TlBufferParser &p); + + explicit phone_groupCallStreamChannels(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phone_groupCallStreamRtmpUrl final : public Object { + public: + string url_; + string key_; + + static const std::int32_t ID = 767505458; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phone_groupCallStreamRtmpUrl> fetch(TlBufferParser &p); + + explicit phone_groupCallStreamRtmpUrl(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phone_groupParticipants final : public Object { + public: + int32 count_; + array<object_ptr<groupCallParticipant>> participants_; + string next_offset_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + int32 version_; + + phone_groupParticipants(int32 count_, array<object_ptr<groupCallParticipant>> &&participants_, string const &next_offset_, array<object_ptr<Chat>> &&chats_, array<object_ptr<User>> &&users_, int32 version_); + + static const std::int32_t ID = -193506890; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phone_groupParticipants> fetch(TlBufferParser &p); + + explicit phone_groupParticipants(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phone_joinAsPeers final : public Object { + public: + array<object_ptr<Peer>> peers_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1343921601; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phone_joinAsPeers> fetch(TlBufferParser &p); + + explicit phone_joinAsPeers(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class phone_phoneCall final : public Object { + public: + object_ptr<PhoneCall> phone_call_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -326966976; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<phone_phoneCall> fetch(TlBufferParser &p); + + explicit phone_phoneCall(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photos_photo final : public Object { + public: + object_ptr<Photo> photo_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 539045032; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<photos_photo> fetch(TlBufferParser &p); + + explicit photos_photo(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photos_Photos: public Object { + public: + + static object_ptr<photos_Photos> fetch(TlBufferParser &p); +}; + +class photos_photos final : public photos_Photos { + public: + array<object_ptr<Photo>> photos_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -1916114267; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<photos_Photos> fetch(TlBufferParser &p); + + explicit photos_photos(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class photos_photosSlice final : public photos_Photos { + public: + int32 count_; + array<object_ptr<Photo>> photos_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 352657236; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<photos_Photos> fetch(TlBufferParser &p); + + explicit photos_photosSlice(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stats_broadcastStats final : public Object { + public: + object_ptr<statsDateRangeDays> period_; + object_ptr<statsAbsValueAndPrev> followers_; + object_ptr<statsAbsValueAndPrev> views_per_post_; + object_ptr<statsAbsValueAndPrev> shares_per_post_; + object_ptr<statsPercentValue> enabled_notifications_; + object_ptr<StatsGraph> growth_graph_; + object_ptr<StatsGraph> followers_graph_; + object_ptr<StatsGraph> mute_graph_; + object_ptr<StatsGraph> top_hours_graph_; + object_ptr<StatsGraph> interactions_graph_; + object_ptr<StatsGraph> iv_interactions_graph_; + object_ptr<StatsGraph> views_by_source_graph_; + object_ptr<StatsGraph> new_followers_by_source_graph_; + object_ptr<StatsGraph> languages_graph_; + array<object_ptr<messageInteractionCounters>> recent_message_interactions_; + + static const std::int32_t ID = -1107852396; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<stats_broadcastStats> fetch(TlBufferParser &p); + + explicit stats_broadcastStats(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stats_megagroupStats final : public Object { + public: + object_ptr<statsDateRangeDays> period_; + object_ptr<statsAbsValueAndPrev> members_; + object_ptr<statsAbsValueAndPrev> messages_; + object_ptr<statsAbsValueAndPrev> viewers_; + object_ptr<statsAbsValueAndPrev> posters_; + object_ptr<StatsGraph> growth_graph_; + object_ptr<StatsGraph> members_graph_; + object_ptr<StatsGraph> new_members_by_source_graph_; + object_ptr<StatsGraph> languages_graph_; + object_ptr<StatsGraph> messages_graph_; + object_ptr<StatsGraph> actions_graph_; + object_ptr<StatsGraph> top_hours_graph_; + object_ptr<StatsGraph> weekdays_graph_; + array<object_ptr<statsGroupTopPoster>> top_posters_; + array<object_ptr<statsGroupTopAdmin>> top_admins_; + array<object_ptr<statsGroupTopInviter>> top_inviters_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = -276825834; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<stats_megagroupStats> fetch(TlBufferParser &p); + + explicit stats_megagroupStats(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stats_messageStats final : public Object { + public: + object_ptr<StatsGraph> views_graph_; + + static const std::int32_t ID = -1986399595; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<stats_messageStats> fetch(TlBufferParser &p); + + explicit stats_messageStats(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class stickers_suggestedShortName final : public Object { + public: + string short_name_; + + static const std::int32_t ID = -2046910401; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<stickers_suggestedShortName> fetch(TlBufferParser &p); + + explicit stickers_suggestedShortName(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_FileType: public Object { + public: + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); +}; + +class storage_fileUnknown final : public storage_FileType { + public: + + static const std::int32_t ID = -1432995067; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_filePartial final : public storage_FileType { + public: + + static const std::int32_t ID = 1086091090; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_fileJpeg final : public storage_FileType { + public: + + static const std::int32_t ID = 8322574; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_fileGif final : public storage_FileType { + public: + + static const std::int32_t ID = -891180321; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_filePng final : public storage_FileType { + public: + + static const std::int32_t ID = 172975040; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_filePdf final : public storage_FileType { + public: + + static const std::int32_t ID = -1373745011; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_fileMp3 final : public storage_FileType { + public: + + static const std::int32_t ID = 1384777335; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_fileMov final : public storage_FileType { + public: + + static const std::int32_t ID = 1258941372; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_fileMp4 final : public storage_FileType { + public: + + static const std::int32_t ID = -1278304028; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class storage_fileWebp final : public storage_FileType { + public: + + static const std::int32_t ID = 276907596; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<storage_FileType> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_ChannelDifference: public Object { + public: + + static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p); +}; + +class updates_channelDifferenceEmpty final : public updates_ChannelDifference { + public: + int32 flags_; + bool final_; + int32 pts_; + int32 timeout_; + enum Flags : std::int32_t { TIMEOUT_MASK = 2 }; + + updates_channelDifferenceEmpty(); + + static const std::int32_t ID = 1041346555; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_channelDifferenceTooLong final : public updates_ChannelDifference { + public: + int32 flags_; + bool final_; + int32 timeout_; + object_ptr<Dialog> dialog_; + array<object_ptr<Message>> messages_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { TIMEOUT_MASK = 2 }; + + updates_channelDifferenceTooLong(); + + static const std::int32_t ID = -1531132162; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_channelDifference final : public updates_ChannelDifference { + public: + int32 flags_; + bool final_; + int32 pts_; + int32 timeout_; + array<object_ptr<Message>> new_messages_; + array<object_ptr<Update>> other_updates_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + enum Flags : std::int32_t { TIMEOUT_MASK = 2 }; + + updates_channelDifference(); + + static const std::int32_t ID = 543450958; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_ChannelDifference> fetch(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_Difference: public Object { + public: + + static object_ptr<updates_Difference> fetch(TlBufferParser &p); +}; + +class updates_differenceEmpty final : public updates_Difference { + public: + int32 date_; + int32 seq_; + + static const std::int32_t ID = 1567990072; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_Difference> fetch(TlBufferParser &p); + + explicit updates_differenceEmpty(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_difference final : public updates_Difference { + public: + array<object_ptr<Message>> new_messages_; + array<object_ptr<EncryptedMessage>> new_encrypted_messages_; + array<object_ptr<Update>> other_updates_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + object_ptr<updates_state> state_; + + static const std::int32_t ID = 16030880; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_Difference> fetch(TlBufferParser &p); + + explicit updates_difference(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_differenceSlice final : public updates_Difference { + public: + array<object_ptr<Message>> new_messages_; + array<object_ptr<EncryptedMessage>> new_encrypted_messages_; + array<object_ptr<Update>> other_updates_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + object_ptr<updates_state> intermediate_state_; + + static const std::int32_t ID = -1459938943; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_Difference> fetch(TlBufferParser &p); + + explicit updates_differenceSlice(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_differenceTooLong final : public updates_Difference { + public: + int32 pts_; + + static const std::int32_t ID = 1258196845; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_Difference> fetch(TlBufferParser &p); + + explicit updates_differenceTooLong(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class updates_state final : public Object { + public: + int32 pts_; + int32 qts_; + int32 date_; + int32 seq_; + int32 unread_count_; + + static const std::int32_t ID = -1519637954; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<updates_state> fetch(TlBufferParser &p); + + explicit updates_state(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upload_CdnFile: public Object { + public: + + static object_ptr<upload_CdnFile> fetch(TlBufferParser &p); +}; + +class upload_cdnFileReuploadNeeded final : public upload_CdnFile { + public: + bytes request_token_; + + static const std::int32_t ID = -290921362; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<upload_CdnFile> fetch(TlBufferParser &p); + + explicit upload_cdnFileReuploadNeeded(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upload_cdnFile final : public upload_CdnFile { + public: + bytes bytes_; + + static const std::int32_t ID = -1449145777; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<upload_CdnFile> fetch(TlBufferParser &p); + + explicit upload_cdnFile(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upload_File: public Object { + public: + + static object_ptr<upload_File> fetch(TlBufferParser &p); +}; + +class upload_file final : public upload_File { + public: + object_ptr<storage_FileType> type_; + int32 mtime_; + bytes bytes_; + + static const std::int32_t ID = 157948117; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<upload_File> fetch(TlBufferParser &p); + + explicit upload_file(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upload_fileCdnRedirect final : public upload_File { + public: + int32 dc_id_; + bytes file_token_; + bytes encryption_key_; + bytes encryption_iv_; + array<object_ptr<fileHash>> file_hashes_; + + static const std::int32_t ID = -242427324; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<upload_File> fetch(TlBufferParser &p); + + explicit upload_fileCdnRedirect(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class upload_webFile final : public Object { + public: + int32 size_; + string mime_type_; + object_ptr<storage_FileType> file_type_; + int32 mtime_; + bytes bytes_; + + static const std::int32_t ID = 568808380; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<upload_webFile> fetch(TlBufferParser &p); + + explicit upload_webFile(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class users_userFull final : public Object { + public: + object_ptr<userFull> full_user_; + array<object_ptr<Chat>> chats_; + array<object_ptr<User>> users_; + + static const std::int32_t ID = 997004590; + std::int32_t get_id() const final { + return ID; + } + + static object_ptr<users_userFull> fetch(TlBufferParser &p); + + explicit users_userFull(TlBufferParser &p); + + void store(TlStorerToString &s, const char *field_name) const final; +}; + +class account_acceptAuthorization final : public Function { + public: + int64 bot_id_; + string scope_; + string public_key_; + array<object_ptr<secureValueHash>> value_hashes_; + object_ptr<secureCredentialsEncrypted> credentials_; + + account_acceptAuthorization(int64 bot_id_, string const &scope_, string const &public_key_, array<object_ptr<secureValueHash>> &&value_hashes_, object_ptr<secureCredentialsEncrypted> &&credentials_); + + static const std::int32_t ID = -202552205; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_cancelPasswordEmail final : public Function { + public: + + static const std::int32_t ID = -1043606090; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_changeAuthorizationSettings final : public Function { + public: + int32 flags_; + int64 hash_; + bool encrypted_requests_disabled_; + bool call_requests_disabled_; + enum Flags : std::int32_t { ENCRYPTED_REQUESTS_DISABLED_MASK = 1, CALL_REQUESTS_DISABLED_MASK = 2 }; + mutable int32 var0; + + account_changeAuthorizationSettings(int32 flags_, int64 hash_, bool encrypted_requests_disabled_, bool call_requests_disabled_); + + static const std::int32_t ID = 1089766498; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_changePhone final : public Function { + public: + string phone_number_; + string phone_code_hash_; + string phone_code_; + + account_changePhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_); + + static const std::int32_t ID = 1891839707; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<User>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_checkUsername final : public Function { + public: + string username_; + + explicit account_checkUsername(string const &username_); + + static const std::int32_t ID = 655677548; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_clearRecentEmojiStatuses final : public Function { + public: + + static const std::int32_t ID = 404757166; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_confirmPasswordEmail final : public Function { + public: + string code_; + + explicit account_confirmPasswordEmail(string const &code_); + + static const std::int32_t ID = -1881204448; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_confirmPhone final : public Function { + public: + string phone_code_hash_; + string phone_code_; + + account_confirmPhone(string const &phone_code_hash_, string const &phone_code_); + + static const std::int32_t ID = 1596029123; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_createTheme final : public Function { + public: + int32 flags_; + string slug_; + string title_; + object_ptr<InputDocument> document_; + array<object_ptr<inputThemeSettings>> settings_; + enum Flags : std::int32_t { DOCUMENT_MASK = 4, SETTINGS_MASK = 8 }; + mutable int32 var0; + + account_createTheme(int32 flags_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_); + + static const std::int32_t ID = 1697530880; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<theme>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_declinePasswordReset final : public Function { + public: + + static const std::int32_t ID = 1284770294; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_deleteAccount final : public Function { + public: + int32 flags_; + string reason_; + object_ptr<InputCheckPasswordSRP> password_; + enum Flags : std::int32_t { PASSWORD_MASK = 1 }; + mutable int32 var0; + + account_deleteAccount(int32 flags_, string const &reason_, object_ptr<InputCheckPasswordSRP> &&password_); + + static const std::int32_t ID = -1564422284; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_deleteSecureValue final : public Function { + public: + array<object_ptr<SecureValueType>> types_; + + explicit account_deleteSecureValue(array<object_ptr<SecureValueType>> &&types_); + + static const std::int32_t ID = -1199522741; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_finishTakeoutSession final : public Function { + public: + int32 flags_; + bool success_; + enum Flags : std::int32_t { SUCCESS_MASK = 1 }; + mutable int32 var0; + + account_finishTakeoutSession(int32 flags_, bool success_); + + static const std::int32_t ID = 489050862; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getAccountTTL final : public Function { + public: + + static const std::int32_t ID = 150761757; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<accountDaysTTL>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getAllSecureValues final : public Function { + public: + + static const std::int32_t ID = -1299661699; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<secureValue>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getAuthorizationForm final : public Function { + public: + int64 bot_id_; + string scope_; + string public_key_; + + account_getAuthorizationForm(int64 bot_id_, string const &scope_, string const &public_key_); + + static const std::int32_t ID = -1456907910; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_authorizationForm>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getAuthorizations final : public Function { + public: + + static const std::int32_t ID = -484392616; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_authorizations>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getAutoDownloadSettings final : public Function { + public: + + static const std::int32_t ID = 1457130303; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_autoDownloadSettings>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getChatThemes final : public Function { + public: + int64 hash_; + + explicit account_getChatThemes(int64 hash_); + + static const std::int32_t ID = -700916087; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_Themes>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getContactSignUpNotification final : public Function { + public: + + static const std::int32_t ID = -1626880216; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getContentSettings final : public Function { + public: + + static const std::int32_t ID = -1952756306; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_contentSettings>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getDefaultEmojiStatuses final : public Function { + public: + int64 hash_; + + explicit account_getDefaultEmojiStatuses(int64 hash_); + + static const std::int32_t ID = -696962170; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_EmojiStatuses>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getGlobalPrivacySettings final : public Function { + public: + + static const std::int32_t ID = -349483786; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<globalPrivacySettings>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getMultiWallPapers final : public Function { + public: + array<object_ptr<InputWallPaper>> wallpapers_; + + explicit account_getMultiWallPapers(array<object_ptr<InputWallPaper>> &&wallpapers_); + + static const std::int32_t ID = 1705865692; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<WallPaper>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getNotifyExceptions final : public Function { + public: + int32 flags_; + bool compare_sound_; + object_ptr<InputNotifyPeer> peer_; + enum Flags : std::int32_t { COMPARE_SOUND_MASK = 2, PEER_MASK = 1 }; + mutable int32 var0; + + account_getNotifyExceptions(int32 flags_, bool compare_sound_, object_ptr<InputNotifyPeer> &&peer_); + + static const std::int32_t ID = 1398240377; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getNotifySettings final : public Function { + public: + object_ptr<InputNotifyPeer> peer_; + + explicit account_getNotifySettings(object_ptr<InputNotifyPeer> &&peer_); + + static const std::int32_t ID = 313765169; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<peerNotifySettings>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getPassword final : public Function { + public: + + static const std::int32_t ID = 1418342645; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_password>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getPasswordSettings final : public Function { + public: + object_ptr<InputCheckPasswordSRP> password_; + + explicit account_getPasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_); + + static const std::int32_t ID = -1663767815; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_passwordSettings>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getPrivacy final : public Function { + public: + object_ptr<InputPrivacyKey> key_; + + explicit account_getPrivacy(object_ptr<InputPrivacyKey> &&key_); + + static const std::int32_t ID = -623130288; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_privacyRules>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getRecentEmojiStatuses final : public Function { + public: + int64 hash_; + + explicit account_getRecentEmojiStatuses(int64 hash_); + + static const std::int32_t ID = 257392901; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_EmojiStatuses>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getSavedRingtones final : public Function { + public: + int64 hash_; + + explicit account_getSavedRingtones(int64 hash_); + + static const std::int32_t ID = -510647672; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_SavedRingtones>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getSecureValue final : public Function { + public: + array<object_ptr<SecureValueType>> types_; + + explicit account_getSecureValue(array<object_ptr<SecureValueType>> &&types_); + + static const std::int32_t ID = 1936088002; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<secureValue>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getTheme final : public Function { + public: + string format_; + object_ptr<InputTheme> theme_; + + account_getTheme(string const &format_, object_ptr<InputTheme> &&theme_); + + static const std::int32_t ID = 978872812; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<theme>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getThemes final : public Function { + public: + string format_; + int64 hash_; + + account_getThemes(string const &format_, int64 hash_); + + static const std::int32_t ID = 1913054296; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_Themes>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getTmpPassword final : public Function { + public: + object_ptr<InputCheckPasswordSRP> password_; + int32 period_; + + account_getTmpPassword(object_ptr<InputCheckPasswordSRP> &&password_, int32 period_); + + static const std::int32_t ID = 1151208273; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_tmpPassword>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getWallPaper final : public Function { + public: + object_ptr<InputWallPaper> wallpaper_; + + explicit account_getWallPaper(object_ptr<InputWallPaper> &&wallpaper_); + + static const std::int32_t ID = -57811990; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<WallPaper>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getWallPapers final : public Function { + public: + int64 hash_; + + explicit account_getWallPapers(int64 hash_); + + static const std::int32_t ID = 127302966; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_WallPapers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_getWebAuthorizations final : public Function { + public: + + static const std::int32_t ID = 405695855; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_webAuthorizations>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_initTakeoutSession final : public Function { + public: + int32 flags_; + bool contacts_; + bool message_users_; + bool message_chats_; + bool message_megagroups_; + bool message_channels_; + bool files_; + int64 file_max_size_; + enum Flags : std::int32_t { CONTACTS_MASK = 1, MESSAGE_USERS_MASK = 2, MESSAGE_CHATS_MASK = 4, MESSAGE_MEGAGROUPS_MASK = 8, MESSAGE_CHANNELS_MASK = 16, FILES_MASK = 32, FILE_MAX_SIZE_MASK = 32 }; + mutable int32 var0; + + account_initTakeoutSession(int32 flags_, bool contacts_, bool message_users_, bool message_chats_, bool message_megagroups_, bool message_channels_, bool files_, int64 file_max_size_); + + static const std::int32_t ID = -1896617296; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_takeout>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_installTheme final : public Function { + public: + int32 flags_; + bool dark_; + object_ptr<InputTheme> theme_; + string format_; + object_ptr<BaseTheme> base_theme_; + enum Flags : std::int32_t { DARK_MASK = 1, THEME_MASK = 2, FORMAT_MASK = 4, BASE_THEME_MASK = 8 }; + mutable int32 var0; + + account_installTheme(int32 flags_, bool dark_, object_ptr<InputTheme> &&theme_, string const &format_, object_ptr<BaseTheme> &&base_theme_); + + static const std::int32_t ID = -953697477; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_installWallPaper final : public Function { + public: + object_ptr<InputWallPaper> wallpaper_; + object_ptr<wallPaperSettings> settings_; + + account_installWallPaper(object_ptr<InputWallPaper> &&wallpaper_, object_ptr<wallPaperSettings> &&settings_); + + static const std::int32_t ID = -18000023; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_registerDevice final : public Function { + public: + int32 flags_; + bool no_muted_; + int32 token_type_; + string token_; + bool app_sandbox_; + bytes secret_; + array<int64> other_uids_; + enum Flags : std::int32_t { NO_MUTED_MASK = 1 }; + mutable int32 var0; + + account_registerDevice(int32 flags_, bool no_muted_, int32 token_type_, string const &token_, bool app_sandbox_, bytes &&secret_, array<int64> &&other_uids_); + + static const std::int32_t ID = -326762118; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_reorderUsernames final : public Function { + public: + array<string> order_; + + explicit account_reorderUsernames(array<string> &&order_); + + static const std::int32_t ID = -279966037; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_reportPeer final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<ReportReason> reason_; + string message_; + + account_reportPeer(object_ptr<InputPeer> &&peer_, object_ptr<ReportReason> &&reason_, string const &message_); + + static const std::int32_t ID = -977650298; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_reportProfilePhoto final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<InputPhoto> photo_id_; + object_ptr<ReportReason> reason_; + string message_; + + account_reportProfilePhoto(object_ptr<InputPeer> &&peer_, object_ptr<InputPhoto> &&photo_id_, object_ptr<ReportReason> &&reason_, string const &message_); + + static const std::int32_t ID = -91437323; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_resendPasswordEmail final : public Function { + public: + + static const std::int32_t ID = 2055154197; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_resetAuthorization final : public Function { + public: + int64 hash_; + + explicit account_resetAuthorization(int64 hash_); + + static const std::int32_t ID = -545786948; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_resetNotifySettings final : public Function { + public: + + static const std::int32_t ID = -612493497; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_resetPassword final : public Function { + public: + + static const std::int32_t ID = -1828139493; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_ResetPasswordResult>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_resetWallPapers final : public Function { + public: + + static const std::int32_t ID = -1153722364; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_resetWebAuthorization final : public Function { + public: + int64 hash_; + + explicit account_resetWebAuthorization(int64 hash_); + + static const std::int32_t ID = 755087855; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_resetWebAuthorizations final : public Function { + public: + + static const std::int32_t ID = 1747789204; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_saveAutoDownloadSettings final : public Function { + public: + int32 flags_; + bool low_; + bool high_; + object_ptr<autoDownloadSettings> settings_; + enum Flags : std::int32_t { LOW_MASK = 1, HIGH_MASK = 2 }; + mutable int32 var0; + + account_saveAutoDownloadSettings(int32 flags_, bool low_, bool high_, object_ptr<autoDownloadSettings> &&settings_); + + static const std::int32_t ID = 1995661875; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_saveRingtone final : public Function { + public: + object_ptr<InputDocument> id_; + bool unsave_; + + account_saveRingtone(object_ptr<InputDocument> &&id_, bool unsave_); + + static const std::int32_t ID = 1038768899; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_SavedRingtone>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_saveSecureValue final : public Function { + public: + object_ptr<inputSecureValue> value_; + int64 secure_secret_id_; + + account_saveSecureValue(object_ptr<inputSecureValue> &&value_, int64 secure_secret_id_); + + static const std::int32_t ID = -1986010339; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<secureValue>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_saveTheme final : public Function { + public: + object_ptr<InputTheme> theme_; + bool unsave_; + + account_saveTheme(object_ptr<InputTheme> &&theme_, bool unsave_); + + static const std::int32_t ID = -229175188; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_saveWallPaper final : public Function { + public: + object_ptr<InputWallPaper> wallpaper_; + bool unsave_; + object_ptr<wallPaperSettings> settings_; + + account_saveWallPaper(object_ptr<InputWallPaper> &&wallpaper_, bool unsave_, object_ptr<wallPaperSettings> &&settings_); + + static const std::int32_t ID = 1817860919; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_sendChangePhoneCode final : public Function { + public: + string phone_number_; + object_ptr<codeSettings> settings_; + + account_sendChangePhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_); + + static const std::int32_t ID = -2108208411; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_sentCode>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_sendConfirmPhoneCode final : public Function { + public: + string hash_; + object_ptr<codeSettings> settings_; + + account_sendConfirmPhoneCode(string const &hash_, object_ptr<codeSettings> &&settings_); + + static const std::int32_t ID = 457157256; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_sentCode>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_sendVerifyEmailCode final : public Function { + public: + object_ptr<EmailVerifyPurpose> purpose_; + string email_; + + account_sendVerifyEmailCode(object_ptr<EmailVerifyPurpose> &&purpose_, string const &email_); + + static const std::int32_t ID = -1730136133; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_sentEmailCode>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_sendVerifyPhoneCode final : public Function { + public: + string phone_number_; + object_ptr<codeSettings> settings_; + + account_sendVerifyPhoneCode(string const &phone_number_, object_ptr<codeSettings> &&settings_); + + static const std::int32_t ID = -1516022023; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_sentCode>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_setAccountTTL final : public Function { + public: + object_ptr<accountDaysTTL> ttl_; + + explicit account_setAccountTTL(object_ptr<accountDaysTTL> &&ttl_); + + static const std::int32_t ID = 608323678; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_setAuthorizationTTL final : public Function { + public: + int32 authorization_ttl_days_; + + explicit account_setAuthorizationTTL(int32 authorization_ttl_days_); + + static const std::int32_t ID = -1081501024; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_setContactSignUpNotification final : public Function { + public: + bool silent_; + + explicit account_setContactSignUpNotification(bool silent_); + + static const std::int32_t ID = -806076575; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_setContentSettings final : public Function { + public: + int32 flags_; + bool sensitive_enabled_; + enum Flags : std::int32_t { SENSITIVE_ENABLED_MASK = 1 }; + mutable int32 var0; + + account_setContentSettings(int32 flags_, bool sensitive_enabled_); + + static const std::int32_t ID = -1250643605; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_setGlobalPrivacySettings final : public Function { + public: + object_ptr<globalPrivacySettings> settings_; + + explicit account_setGlobalPrivacySettings(object_ptr<globalPrivacySettings> &&settings_); + + static const std::int32_t ID = 517647042; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<globalPrivacySettings>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_setPrivacy final : public Function { + public: + object_ptr<InputPrivacyKey> key_; + array<object_ptr<InputPrivacyRule>> rules_; + + account_setPrivacy(object_ptr<InputPrivacyKey> &&key_, array<object_ptr<InputPrivacyRule>> &&rules_); + + static const std::int32_t ID = -906486552; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_privacyRules>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_toggleUsername final : public Function { + public: + string username_; + bool active_; + + account_toggleUsername(string const &username_, bool active_); + + static const std::int32_t ID = 1490465654; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_unregisterDevice final : public Function { + public: + int32 token_type_; + string token_; + array<int64> other_uids_; + + account_unregisterDevice(int32 token_type_, string const &token_, array<int64> &&other_uids_); + + static const std::int32_t ID = 1779249670; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updateDeviceLocked final : public Function { + public: + int32 period_; + + explicit account_updateDeviceLocked(int32 period_); + + static const std::int32_t ID = 954152242; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updateEmojiStatus final : public Function { + public: + object_ptr<EmojiStatus> emoji_status_; + + explicit account_updateEmojiStatus(object_ptr<EmojiStatus> &&emoji_status_); + + static const std::int32_t ID = -70001045; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updateNotifySettings final : public Function { + public: + object_ptr<InputNotifyPeer> peer_; + object_ptr<inputPeerNotifySettings> settings_; + + account_updateNotifySettings(object_ptr<InputNotifyPeer> &&peer_, object_ptr<inputPeerNotifySettings> &&settings_); + + static const std::int32_t ID = -2067899501; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updatePasswordSettings final : public Function { + public: + object_ptr<InputCheckPasswordSRP> password_; + object_ptr<account_passwordInputSettings> new_settings_; + + account_updatePasswordSettings(object_ptr<InputCheckPasswordSRP> &&password_, object_ptr<account_passwordInputSettings> &&new_settings_); + + static const std::int32_t ID = -1516564433; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updateProfile final : public Function { + public: + int32 flags_; + string first_name_; + string last_name_; + string about_; + enum Flags : std::int32_t { FIRST_NAME_MASK = 1, LAST_NAME_MASK = 2, ABOUT_MASK = 4 }; + mutable int32 var0; + + account_updateProfile(int32 flags_, string const &first_name_, string const &last_name_, string const &about_); + + static const std::int32_t ID = 2018596725; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<User>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updateStatus final : public Function { + public: + bool offline_; + + explicit account_updateStatus(bool offline_); + + static const std::int32_t ID = 1713919532; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updateTheme final : public Function { + public: + int32 flags_; + string format_; + object_ptr<InputTheme> theme_; + string slug_; + string title_; + object_ptr<InputDocument> document_; + array<object_ptr<inputThemeSettings>> settings_; + enum Flags : std::int32_t { SLUG_MASK = 1, TITLE_MASK = 2, DOCUMENT_MASK = 4, SETTINGS_MASK = 8 }; + mutable int32 var0; + + account_updateTheme(int32 flags_, string const &format_, object_ptr<InputTheme> &&theme_, string const &slug_, string const &title_, object_ptr<InputDocument> &&document_, array<object_ptr<inputThemeSettings>> &&settings_); + + static const std::int32_t ID = 737414348; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<theme>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_updateUsername final : public Function { + public: + string username_; + + explicit account_updateUsername(string const &username_); + + static const std::int32_t ID = 1040964988; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<User>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_uploadRingtone final : public Function { + public: + object_ptr<InputFile> file_; + string file_name_; + string mime_type_; + + account_uploadRingtone(object_ptr<InputFile> &&file_, string const &file_name_, string const &mime_type_); + + static const std::int32_t ID = -2095414366; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Document>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_uploadTheme final : public Function { + public: + int32 flags_; + object_ptr<InputFile> file_; + object_ptr<InputFile> thumb_; + string file_name_; + string mime_type_; + enum Flags : std::int32_t { THUMB_MASK = 1 }; + mutable int32 var0; + + account_uploadTheme(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&thumb_, string const &file_name_, string const &mime_type_); + + static const std::int32_t ID = 473805619; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Document>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_uploadWallPaper final : public Function { + public: + object_ptr<InputFile> file_; + string mime_type_; + object_ptr<wallPaperSettings> settings_; + + account_uploadWallPaper(object_ptr<InputFile> &&file_, string const &mime_type_, object_ptr<wallPaperSettings> &&settings_); + + static const std::int32_t ID = -578472351; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<WallPaper>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_verifyEmail final : public Function { + public: + object_ptr<EmailVerifyPurpose> purpose_; + object_ptr<EmailVerification> verification_; + + account_verifyEmail(object_ptr<EmailVerifyPurpose> &&purpose_, object_ptr<EmailVerification> &&verification_); + + static const std::int32_t ID = 53322959; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<account_EmailVerified>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class account_verifyPhone final : public Function { + public: + string phone_number_; + string phone_code_hash_; + string phone_code_; + + account_verifyPhone(string const &phone_number_, string const &phone_code_hash_, string const &phone_code_); + + static const std::int32_t ID = 1305716726; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_acceptLoginToken final : public Function { + public: + bytes token_; + + explicit auth_acceptLoginToken(bytes &&token_); + + static const std::int32_t ID = -392909491; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<authorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_bindTempAuthKey final : public Function { + public: + int64 perm_auth_key_id_; + int64 nonce_; + int32 expires_at_; + bytes encrypted_message_; + + auth_bindTempAuthKey(int64 perm_auth_key_id_, int64 nonce_, int32 expires_at_, bytes &&encrypted_message_); + + static const std::int32_t ID = -841733627; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_cancelCode final : public Function { + public: + string phone_number_; + string phone_code_hash_; + + auth_cancelCode(string const &phone_number_, string const &phone_code_hash_); + + static const std::int32_t ID = 520357240; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_checkPassword final : public Function { + public: + object_ptr<InputCheckPasswordSRP> password_; + + explicit auth_checkPassword(object_ptr<InputCheckPasswordSRP> &&password_); + + static const std::int32_t ID = -779399914; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_Authorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_checkRecoveryPassword final : public Function { + public: + string code_; + + explicit auth_checkRecoveryPassword(string const &code_); + + static const std::int32_t ID = 221691769; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_dropTempAuthKeys final : public Function { + public: + array<int64> except_auth_keys_; + + explicit auth_dropTempAuthKeys(array<int64> &&except_auth_keys_); + + static const std::int32_t ID = -1907842680; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_exportAuthorization final : public Function { + public: + int32 dc_id_; + + explicit auth_exportAuthorization(int32 dc_id_); + + static const std::int32_t ID = -440401971; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_exportedAuthorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_exportLoginToken final : public Function { + public: + int32 api_id_; + string api_hash_; + array<int64> except_ids_; + + auth_exportLoginToken(int32 api_id_, string const &api_hash_, array<int64> &&except_ids_); + + static const std::int32_t ID = -1210022402; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_LoginToken>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_importAuthorization final : public Function { + public: + int64 id_; + bytes bytes_; + + auth_importAuthorization(int64 id_, bytes &&bytes_); + + static const std::int32_t ID = -1518699091; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_Authorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_importBotAuthorization final : public Function { + public: + int32 flags_; + int32 api_id_; + string api_hash_; + string bot_auth_token_; + + auth_importBotAuthorization(int32 flags_, int32 api_id_, string const &api_hash_, string const &bot_auth_token_); + + static const std::int32_t ID = 1738800940; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_Authorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_importLoginToken final : public Function { + public: + bytes token_; + + explicit auth_importLoginToken(bytes &&token_); + + static const std::int32_t ID = -1783866140; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_LoginToken>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_logOut final : public Function { + public: + + static const std::int32_t ID = 1047706137; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_loggedOut>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_recoverPassword final : public Function { + public: + int32 flags_; + string code_; + object_ptr<account_passwordInputSettings> new_settings_; + enum Flags : std::int32_t { NEW_SETTINGS_MASK = 1 }; + mutable int32 var0; + + auth_recoverPassword(int32 flags_, string const &code_, object_ptr<account_passwordInputSettings> &&new_settings_); + + static const std::int32_t ID = 923364464; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_Authorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_requestPasswordRecovery final : public Function { + public: + + static const std::int32_t ID = -661144474; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_passwordRecovery>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_resendCode final : public Function { + public: + string phone_number_; + string phone_code_hash_; + + auth_resendCode(string const &phone_number_, string const &phone_code_hash_); + + static const std::int32_t ID = 1056025023; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_sentCode>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_resetAuthorizations final : public Function { + public: + + static const std::int32_t ID = -1616179942; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_sendCode final : public Function { + public: + string phone_number_; + int32 api_id_; + string api_hash_; + object_ptr<codeSettings> settings_; + + auth_sendCode(string const &phone_number_, int32 api_id_, string const &api_hash_, object_ptr<codeSettings> &&settings_); + + static const std::int32_t ID = -1502141361; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_sentCode>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_signIn final : public Function { + public: + int32 flags_; + string phone_number_; + string phone_code_hash_; + string phone_code_; + object_ptr<EmailVerification> email_verification_; + enum Flags : std::int32_t { PHONE_CODE_MASK = 1, EMAIL_VERIFICATION_MASK = 2 }; + mutable int32 var0; + + auth_signIn(int32 flags_, string const &phone_number_, string const &phone_code_hash_, string const &phone_code_, object_ptr<EmailVerification> &&email_verification_); + + static const std::int32_t ID = -1923962543; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_Authorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class auth_signUp final : public Function { + public: + string phone_number_; + string phone_code_hash_; + string first_name_; + string last_name_; + + auth_signUp(string const &phone_number_, string const &phone_code_hash_, string const &first_name_, string const &last_name_); + + static const std::int32_t ID = -2131827673; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<auth_Authorization>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_answerWebhookJSONQuery final : public Function { + public: + int64 query_id_; + object_ptr<dataJSON> data_; + + bots_answerWebhookJSONQuery(int64 query_id_, object_ptr<dataJSON> &&data_); + + static const std::int32_t ID = -434028723; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_getBotCommands final : public Function { + public: + object_ptr<BotCommandScope> scope_; + string lang_code_; + + bots_getBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_); + + static const std::int32_t ID = -481554986; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<botCommand>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_getBotMenuButton final : public Function { + public: + object_ptr<InputUser> user_id_; + + explicit bots_getBotMenuButton(object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = -1671369944; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<BotMenuButton>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_resetBotCommands final : public Function { + public: + object_ptr<BotCommandScope> scope_; + string lang_code_; + + bots_resetBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_); + + static const std::int32_t ID = 1032708345; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_sendCustomRequest final : public Function { + public: + string custom_method_; + object_ptr<dataJSON> params_; + + bots_sendCustomRequest(string const &custom_method_, object_ptr<dataJSON> &¶ms_); + + static const std::int32_t ID = -1440257555; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<dataJSON>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_setBotBroadcastDefaultAdminRights final : public Function { + public: + object_ptr<chatAdminRights> admin_rights_; + + explicit bots_setBotBroadcastDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_); + + static const std::int32_t ID = 2021942497; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_setBotCommands final : public Function { + public: + object_ptr<BotCommandScope> scope_; + string lang_code_; + array<object_ptr<botCommand>> commands_; + + bots_setBotCommands(object_ptr<BotCommandScope> &&scope_, string const &lang_code_, array<object_ptr<botCommand>> &&commands_); + + static const std::int32_t ID = 85399130; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_setBotGroupDefaultAdminRights final : public Function { + public: + object_ptr<chatAdminRights> admin_rights_; + + explicit bots_setBotGroupDefaultAdminRights(object_ptr<chatAdminRights> &&admin_rights_); + + static const std::int32_t ID = -1839281686; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class bots_setBotMenuButton final : public Function { + public: + object_ptr<InputUser> user_id_; + object_ptr<BotMenuButton> button_; + + bots_setBotMenuButton(object_ptr<InputUser> &&user_id_, object_ptr<BotMenuButton> &&button_); + + static const std::int32_t ID = 1157944655; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_checkUsername final : public Function { + public: + object_ptr<InputChannel> channel_; + string username_; + + channels_checkUsername(object_ptr<InputChannel> &&channel_, string const &username_); + + static const std::int32_t ID = 283557164; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_convertToGigagroup final : public Function { + public: + object_ptr<InputChannel> channel_; + + explicit channels_convertToGigagroup(object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = 187239529; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_createChannel final : public Function { + public: + int32 flags_; + bool broadcast_; + bool megagroup_; + bool for_import_; + string title_; + string about_; + object_ptr<InputGeoPoint> geo_point_; + string address_; + enum Flags : std::int32_t { BROADCAST_MASK = 1, MEGAGROUP_MASK = 2, FOR_IMPORT_MASK = 8, GEO_POINT_MASK = 4, ADDRESS_MASK = 4 }; + mutable int32 var0; + + channels_createChannel(int32 flags_, bool broadcast_, bool megagroup_, bool for_import_, string const &title_, string const &about_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_); + + static const std::int32_t ID = 1029681423; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_createForumTopic final : public Function { + public: + int32 flags_; + object_ptr<InputChannel> channel_; + string title_; + int32 icon_color_; + int64 icon_emoji_id_; + int64 random_id_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { ICON_COLOR_MASK = 1, ICON_EMOJI_ID_MASK = 8, SEND_AS_MASK = 4 }; + mutable int32 var0; + + channels_createForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, string const &title_, int32 icon_color_, int64 icon_emoji_id_, int64 random_id_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = -200539612; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_deactivateAllUsernames final : public Function { + public: + object_ptr<InputChannel> channel_; + + explicit channels_deactivateAllUsernames(object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = 170155475; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_deleteChannel final : public Function { + public: + object_ptr<InputChannel> channel_; + + explicit channels_deleteChannel(object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = -1072619549; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_deleteHistory final : public Function { + public: + int32 flags_; + bool for_everyone_; + object_ptr<InputChannel> channel_; + int32 max_id_; + enum Flags : std::int32_t { FOR_EVERYONE_MASK = 1 }; + mutable int32 var0; + + channels_deleteHistory(int32 flags_, bool for_everyone_, object_ptr<InputChannel> &&channel_, int32 max_id_); + + static const std::int32_t ID = -1683319225; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_deleteMessages final : public Function { + public: + object_ptr<InputChannel> channel_; + array<int32> id_; + + channels_deleteMessages(object_ptr<InputChannel> &&channel_, array<int32> &&id_); + + static const std::int32_t ID = -2067661490; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedMessages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_deleteParticipantHistory final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputPeer> participant_; + + channels_deleteParticipantHistory(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_); + + static const std::int32_t ID = 913655003; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedHistory>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_deleteTopicHistory final : public Function { + public: + object_ptr<InputChannel> channel_; + int32 top_msg_id_; + + channels_deleteTopicHistory(object_ptr<InputChannel> &&channel_, int32 top_msg_id_); + + static const std::int32_t ID = 876830509; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedHistory>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_editAdmin final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputUser> user_id_; + object_ptr<chatAdminRights> admin_rights_; + string rank_; + + channels_editAdmin(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<chatAdminRights> &&admin_rights_, string const &rank_); + + static const std::int32_t ID = -751007486; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_editBanned final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputPeer> participant_; + object_ptr<chatBannedRights> banned_rights_; + + channels_editBanned(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, object_ptr<chatBannedRights> &&banned_rights_); + + static const std::int32_t ID = -1763259007; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_editCreator final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputUser> user_id_; + object_ptr<InputCheckPasswordSRP> password_; + + channels_editCreator(object_ptr<InputChannel> &&channel_, object_ptr<InputUser> &&user_id_, object_ptr<InputCheckPasswordSRP> &&password_); + + static const std::int32_t ID = -1892102881; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_editForumTopic final : public Function { + public: + int32 flags_; + object_ptr<InputChannel> channel_; + int32 topic_id_; + string title_; + int64 icon_emoji_id_; + bool closed_; + enum Flags : std::int32_t { TITLE_MASK = 1, ICON_EMOJI_ID_MASK = 2, CLOSED_MASK = 4 }; + mutable int32 var0; + + channels_editForumTopic(int32 flags_, object_ptr<InputChannel> &&channel_, int32 topic_id_, string const &title_, int64 icon_emoji_id_, bool closed_); + + static const std::int32_t ID = 1820868141; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_editLocation final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputGeoPoint> geo_point_; + string address_; + + channels_editLocation(object_ptr<InputChannel> &&channel_, object_ptr<InputGeoPoint> &&geo_point_, string const &address_); + + static const std::int32_t ID = 1491484525; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_editPhoto final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputChatPhoto> photo_; + + channels_editPhoto(object_ptr<InputChannel> &&channel_, object_ptr<InputChatPhoto> &&photo_); + + static const std::int32_t ID = -248621111; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_editTitle final : public Function { + public: + object_ptr<InputChannel> channel_; + string title_; + + channels_editTitle(object_ptr<InputChannel> &&channel_, string const &title_); + + static const std::int32_t ID = 1450044624; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_exportMessageLink final : public Function { + public: + int32 flags_; + bool grouped_; + bool thread_; + object_ptr<InputChannel> channel_; + int32 id_; + enum Flags : std::int32_t { GROUPED_MASK = 1, THREAD_MASK = 2 }; + mutable int32 var0; + + channels_exportMessageLink(int32 flags_, bool grouped_, bool thread_, object_ptr<InputChannel> &&channel_, int32 id_); + + static const std::int32_t ID = -432034325; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<exportedMessageLink>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getAdminLog final : public Function { + public: + int32 flags_; + object_ptr<InputChannel> channel_; + string q_; + object_ptr<channelAdminLogEventsFilter> events_filter_; + array<object_ptr<InputUser>> admins_; + int64 max_id_; + int64 min_id_; + int32 limit_; + enum Flags : std::int32_t { EVENTS_FILTER_MASK = 1, ADMINS_MASK = 2 }; + mutable int32 var0; + + channels_getAdminLog(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, object_ptr<channelAdminLogEventsFilter> &&events_filter_, array<object_ptr<InputUser>> &&admins_, int64 max_id_, int64 min_id_, int32 limit_); + + static const std::int32_t ID = 870184064; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<channels_adminLogResults>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getAdminedPublicChannels final : public Function { + public: + int32 flags_; + bool by_location_; + bool check_limit_; + enum Flags : std::int32_t { BY_LOCATION_MASK = 1, CHECK_LIMIT_MASK = 2 }; + mutable int32 var0; + + channels_getAdminedPublicChannels(int32 flags_, bool by_location_, bool check_limit_); + + static const std::int32_t ID = -122669393; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Chats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getChannels final : public Function { + public: + array<object_ptr<InputChannel>> id_; + + explicit channels_getChannels(array<object_ptr<InputChannel>> &&id_); + + static const std::int32_t ID = 176122811; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Chats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getForumTopics final : public Function { + public: + int32 flags_; + object_ptr<InputChannel> channel_; + string q_; + int32 offset_date_; + int32 offset_id_; + int32 offset_topic_; + int32 limit_; + enum Flags : std::int32_t { Q_MASK = 1 }; + mutable int32 var0; + + channels_getForumTopics(int32 flags_, object_ptr<InputChannel> &&channel_, string const &q_, int32 offset_date_, int32 offset_id_, int32 offset_topic_, int32 limit_); + + static const std::int32_t ID = 233136337; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_forumTopics>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getForumTopicsByID final : public Function { + public: + object_ptr<InputChannel> channel_; + array<int32> topics_; + + channels_getForumTopicsByID(object_ptr<InputChannel> &&channel_, array<int32> &&topics_); + + static const std::int32_t ID = -1333584199; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_forumTopics>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getFullChannel final : public Function { + public: + object_ptr<InputChannel> channel_; + + explicit channels_getFullChannel(object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = 141781513; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_chatFull>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getGroupsForDiscussion final : public Function { + public: + + static const std::int32_t ID = -170208392; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Chats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getInactiveChannels final : public Function { + public: + + static const std::int32_t ID = 300429806; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_inactiveChats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getLeftChannels final : public Function { + public: + int32 offset_; + + explicit channels_getLeftChannels(int32 offset_); + + static const std::int32_t ID = -2092831552; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Chats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getMessages final : public Function { + public: + object_ptr<InputChannel> channel_; + array<object_ptr<InputMessage>> id_; + + channels_getMessages(object_ptr<InputChannel> &&channel_, array<object_ptr<InputMessage>> &&id_); + + static const std::int32_t ID = -1383294429; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getParticipant final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputPeer> participant_; + + channels_getParticipant(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_); + + static const std::int32_t ID = -1599378234; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<channels_channelParticipant>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getParticipants final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<ChannelParticipantsFilter> filter_; + int32 offset_; + int32 limit_; + int64 hash_; + + channels_getParticipants(object_ptr<InputChannel> &&channel_, object_ptr<ChannelParticipantsFilter> &&filter_, int32 offset_, int32 limit_, int64 hash_); + + static const std::int32_t ID = 2010044880; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<channels_ChannelParticipants>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getSendAs final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit channels_getSendAs(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 231174382; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<channels_sendAsPeers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_getSponsoredMessages final : public Function { + public: + object_ptr<InputChannel> channel_; + + explicit channels_getSponsoredMessages(object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = -333377601; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_SponsoredMessages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_inviteToChannel final : public Function { + public: + object_ptr<InputChannel> channel_; + array<object_ptr<InputUser>> users_; + + channels_inviteToChannel(object_ptr<InputChannel> &&channel_, array<object_ptr<InputUser>> &&users_); + + static const std::int32_t ID = 429865580; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_joinChannel final : public Function { + public: + object_ptr<InputChannel> channel_; + + explicit channels_joinChannel(object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = 615851205; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_leaveChannel final : public Function { + public: + object_ptr<InputChannel> channel_; + + explicit channels_leaveChannel(object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = -130635115; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_readHistory final : public Function { + public: + object_ptr<InputChannel> channel_; + int32 max_id_; + + channels_readHistory(object_ptr<InputChannel> &&channel_, int32 max_id_); + + static const std::int32_t ID = -871347913; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_readMessageContents final : public Function { + public: + object_ptr<InputChannel> channel_; + array<int32> id_; + + channels_readMessageContents(object_ptr<InputChannel> &&channel_, array<int32> &&id_); + + static const std::int32_t ID = -357180360; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_reorderUsernames final : public Function { + public: + object_ptr<InputChannel> channel_; + array<string> order_; + + channels_reorderUsernames(object_ptr<InputChannel> &&channel_, array<string> &&order_); + + static const std::int32_t ID = -1268978403; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_reportSpam final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputPeer> participant_; + array<int32> id_; + + channels_reportSpam(object_ptr<InputChannel> &&channel_, object_ptr<InputPeer> &&participant_, array<int32> &&id_); + + static const std::int32_t ID = -196443371; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_setDiscussionGroup final : public Function { + public: + object_ptr<InputChannel> broadcast_; + object_ptr<InputChannel> group_; + + channels_setDiscussionGroup(object_ptr<InputChannel> &&broadcast_, object_ptr<InputChannel> &&group_); + + static const std::int32_t ID = 1079520178; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_setStickers final : public Function { + public: + object_ptr<InputChannel> channel_; + object_ptr<InputStickerSet> stickerset_; + + channels_setStickers(object_ptr<InputChannel> &&channel_, object_ptr<InputStickerSet> &&stickerset_); + + static const std::int32_t ID = -359881479; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_toggleForum final : public Function { + public: + object_ptr<InputChannel> channel_; + bool enabled_; + + channels_toggleForum(object_ptr<InputChannel> &&channel_, bool enabled_); + + static const std::int32_t ID = -1540781271; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_toggleJoinRequest final : public Function { + public: + object_ptr<InputChannel> channel_; + bool enabled_; + + channels_toggleJoinRequest(object_ptr<InputChannel> &&channel_, bool enabled_); + + static const std::int32_t ID = 1277789622; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_toggleJoinToSend final : public Function { + public: + object_ptr<InputChannel> channel_; + bool enabled_; + + channels_toggleJoinToSend(object_ptr<InputChannel> &&channel_, bool enabled_); + + static const std::int32_t ID = -456419968; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_togglePreHistoryHidden final : public Function { + public: + object_ptr<InputChannel> channel_; + bool enabled_; + + channels_togglePreHistoryHidden(object_ptr<InputChannel> &&channel_, bool enabled_); + + static const std::int32_t ID = -356796084; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_toggleSignatures final : public Function { + public: + object_ptr<InputChannel> channel_; + bool enabled_; + + channels_toggleSignatures(object_ptr<InputChannel> &&channel_, bool enabled_); + + static const std::int32_t ID = 527021574; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_toggleSlowMode final : public Function { + public: + object_ptr<InputChannel> channel_; + int32 seconds_; + + channels_toggleSlowMode(object_ptr<InputChannel> &&channel_, int32 seconds_); + + static const std::int32_t ID = -304832784; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_toggleUsername final : public Function { + public: + object_ptr<InputChannel> channel_; + string username_; + bool active_; + + channels_toggleUsername(object_ptr<InputChannel> &&channel_, string const &username_, bool active_); + + static const std::int32_t ID = 1358053637; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_updatePinnedForumTopic final : public Function { + public: + object_ptr<InputChannel> channel_; + int32 topic_id_; + bool pinned_; + + channels_updatePinnedForumTopic(object_ptr<InputChannel> &&channel_, int32 topic_id_, bool pinned_); + + static const std::int32_t ID = 1814925350; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_updateUsername final : public Function { + public: + object_ptr<InputChannel> channel_; + string username_; + + channels_updateUsername(object_ptr<InputChannel> &&channel_, string const &username_); + + static const std::int32_t ID = 890549214; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class channels_viewSponsoredMessage final : public Function { + public: + object_ptr<InputChannel> channel_; + bytes random_id_; + + channels_viewSponsoredMessage(object_ptr<InputChannel> &&channel_, bytes &&random_id_); + + static const std::int32_t ID = -1095836780; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_acceptContact final : public Function { + public: + object_ptr<InputUser> id_; + + explicit contacts_acceptContact(object_ptr<InputUser> &&id_); + + static const std::int32_t ID = -130964977; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_addContact final : public Function { + public: + int32 flags_; + bool add_phone_privacy_exception_; + object_ptr<InputUser> id_; + string first_name_; + string last_name_; + string phone_; + enum Flags : std::int32_t { ADD_PHONE_PRIVACY_EXCEPTION_MASK = 1 }; + mutable int32 var0; + + contacts_addContact(int32 flags_, bool add_phone_privacy_exception_, object_ptr<InputUser> &&id_, string const &first_name_, string const &last_name_, string const &phone_); + + static const std::int32_t ID = -386636848; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_block final : public Function { + public: + object_ptr<InputPeer> id_; + + explicit contacts_block(object_ptr<InputPeer> &&id_); + + static const std::int32_t ID = 1758204945; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_blockFromReplies final : public Function { + public: + int32 flags_; + bool delete_message_; + bool delete_history_; + bool report_spam_; + int32 msg_id_; + enum Flags : std::int32_t { DELETE_MESSAGE_MASK = 1, DELETE_HISTORY_MASK = 2, REPORT_SPAM_MASK = 4 }; + mutable int32 var0; + + contacts_blockFromReplies(int32 flags_, bool delete_message_, bool delete_history_, bool report_spam_, int32 msg_id_); + + static const std::int32_t ID = 698914348; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_deleteByPhones final : public Function { + public: + array<string> phones_; + + explicit contacts_deleteByPhones(array<string> &&phones_); + + static const std::int32_t ID = 269745566; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_deleteContacts final : public Function { + public: + array<object_ptr<InputUser>> id_; + + explicit contacts_deleteContacts(array<object_ptr<InputUser>> &&id_); + + static const std::int32_t ID = 157945344; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_getBlocked final : public Function { + public: + int32 offset_; + int32 limit_; + + contacts_getBlocked(int32 offset_, int32 limit_); + + static const std::int32_t ID = -176409329; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<contacts_Blocked>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_getContactIDs final : public Function { + public: + int64 hash_; + + explicit contacts_getContactIDs(int64 hash_); + + static const std::int32_t ID = 2061264541; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<int32>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_getContacts final : public Function { + public: + int64 hash_; + + explicit contacts_getContacts(int64 hash_); + + static const std::int32_t ID = 1574346258; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<contacts_Contacts>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_getLocated final : public Function { + public: + int32 flags_; + bool background_; + object_ptr<InputGeoPoint> geo_point_; + int32 self_expires_; + enum Flags : std::int32_t { BACKGROUND_MASK = 2, SELF_EXPIRES_MASK = 1 }; + mutable int32 var0; + + contacts_getLocated(int32 flags_, bool background_, object_ptr<InputGeoPoint> &&geo_point_, int32 self_expires_); + + static const std::int32_t ID = -750207932; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_getSaved final : public Function { + public: + + static const std::int32_t ID = -2098076769; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<savedPhoneContact>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_getStatuses final : public Function { + public: + + static const std::int32_t ID = -995929106; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<contactStatus>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_getTopPeers final : public Function { + public: + int32 flags_; + bool correspondents_; + bool bots_pm_; + bool bots_inline_; + bool phone_calls_; + bool forward_users_; + bool forward_chats_; + bool groups_; + bool channels_; + int32 offset_; + int32 limit_; + int64 hash_; + enum Flags : std::int32_t { CORRESPONDENTS_MASK = 1, BOTS_PM_MASK = 2, BOTS_INLINE_MASK = 4, PHONE_CALLS_MASK = 8, FORWARD_USERS_MASK = 16, FORWARD_CHATS_MASK = 32, GROUPS_MASK = 1024, CHANNELS_MASK = 32768 }; + mutable int32 var0; + + contacts_getTopPeers(int32 flags_, bool correspondents_, bool bots_pm_, bool bots_inline_, bool phone_calls_, bool forward_users_, bool forward_chats_, bool groups_, bool channels_, int32 offset_, int32 limit_, int64 hash_); + + static const std::int32_t ID = -1758168906; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<contacts_TopPeers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_importContacts final : public Function { + public: + array<object_ptr<inputPhoneContact>> contacts_; + + explicit contacts_importContacts(array<object_ptr<inputPhoneContact>> &&contacts_); + + static const std::int32_t ID = 746589157; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<contacts_importedContacts>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_resetSaved final : public Function { + public: + + static const std::int32_t ID = -2020263951; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_resetTopPeerRating final : public Function { + public: + object_ptr<TopPeerCategory> category_; + object_ptr<InputPeer> peer_; + + contacts_resetTopPeerRating(object_ptr<TopPeerCategory> &&category_, object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 451113900; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_resolvePhone final : public Function { + public: + string phone_; + + explicit contacts_resolvePhone(string const &phone_); + + static const std::int32_t ID = -1963375804; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<contacts_resolvedPeer>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_resolveUsername final : public Function { + public: + string username_; + + explicit contacts_resolveUsername(string const &username_); + + static const std::int32_t ID = -113456221; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<contacts_resolvedPeer>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_search final : public Function { + public: + string q_; + int32 limit_; + + contacts_search(string const &q_, int32 limit_); + + static const std::int32_t ID = 301470424; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<contacts_found>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_toggleTopPeers final : public Function { + public: + bool enabled_; + + explicit contacts_toggleTopPeers(bool enabled_); + + static const std::int32_t ID = -2062238246; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class contacts_unblock final : public Function { + public: + object_ptr<InputPeer> id_; + + explicit contacts_unblock(object_ptr<InputPeer> &&id_); + + static const std::int32_t ID = -1096393392; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class folders_deleteFolder final : public Function { + public: + int32 folder_id_; + + explicit folders_deleteFolder(int32 folder_id_); + + static const std::int32_t ID = 472471681; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class folders_editPeerFolders final : public Function { + public: + array<object_ptr<inputFolderPeer>> folder_peers_; + + explicit folders_editPeerFolders(array<object_ptr<inputFolderPeer>> &&folder_peers_); + + static const std::int32_t ID = 1749536939; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_acceptTermsOfService final : public Function { + public: + object_ptr<dataJSON> id_; + + explicit help_acceptTermsOfService(object_ptr<dataJSON> &&id_); + + static const std::int32_t ID = -294455398; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_dismissSuggestion final : public Function { + public: + object_ptr<InputPeer> peer_; + string suggestion_; + + help_dismissSuggestion(object_ptr<InputPeer> &&peer_, string const &suggestion_); + + static const std::int32_t ID = -183649631; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_editUserInfo final : public Function { + public: + object_ptr<InputUser> user_id_; + string message_; + array<object_ptr<MessageEntity>> entities_; + + help_editUserInfo(object_ptr<InputUser> &&user_id_, string const &message_, array<object_ptr<MessageEntity>> &&entities_); + + static const std::int32_t ID = 1723407216; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_UserInfo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getAppChangelog final : public Function { + public: + string prev_app_version_; + + explicit help_getAppChangelog(string const &prev_app_version_); + + static const std::int32_t ID = -1877938321; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getAppConfig final : public Function { + public: + + static const std::int32_t ID = -1735311088; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<JSONValue>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getAppUpdate final : public Function { + public: + string source_; + + explicit help_getAppUpdate(string const &source_); + + static const std::int32_t ID = 1378703997; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_AppUpdate>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getCdnConfig final : public Function { + public: + + static const std::int32_t ID = 1375900482; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<cdnConfig>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getConfig final : public Function { + public: + + static const std::int32_t ID = -990308245; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<config>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getCountriesList final : public Function { + public: + string lang_code_; + int32 hash_; + + help_getCountriesList(string const &lang_code_, int32 hash_); + + static const std::int32_t ID = 1935116200; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_CountriesList>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getDeepLinkInfo final : public Function { + public: + string path_; + + explicit help_getDeepLinkInfo(string const &path_); + + static const std::int32_t ID = 1072547679; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_DeepLinkInfo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getInviteText final : public Function { + public: + + static const std::int32_t ID = 1295590211; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_inviteText>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getNearestDc final : public Function { + public: + + static const std::int32_t ID = 531836966; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<nearestDc>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getPassportConfig final : public Function { + public: + int32 hash_; + + explicit help_getPassportConfig(int32 hash_); + + static const std::int32_t ID = -966677240; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_PassportConfig>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getPremiumPromo final : public Function { + public: + + static const std::int32_t ID = -1206152236; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_premiumPromo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getPromoData final : public Function { + public: + + static const std::int32_t ID = -1063816159; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_PromoData>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getRecentMeUrls final : public Function { + public: + string referer_; + + explicit help_getRecentMeUrls(string const &referer_); + + static const std::int32_t ID = 1036054804; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_recentMeUrls>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getSupport final : public Function { + public: + + static const std::int32_t ID = -1663104819; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_support>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getSupportName final : public Function { + public: + + static const std::int32_t ID = -748624084; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_supportName>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getTermsOfServiceUpdate final : public Function { + public: + + static const std::int32_t ID = 749019089; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_TermsOfServiceUpdate>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_getUserInfo final : public Function { + public: + object_ptr<InputUser> user_id_; + + explicit help_getUserInfo(object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = 59377875; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_UserInfo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_hidePromoData final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit help_hidePromoData(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 505748629; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_saveAppLog final : public Function { + public: + array<object_ptr<inputAppEvent>> events_; + + explicit help_saveAppLog(array<object_ptr<inputAppEvent>> &&events_); + + static const std::int32_t ID = 1862465352; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class help_setBotUpdatesStatus final : public Function { + public: + int32 pending_updates_count_; + string message_; + + help_setBotUpdatesStatus(int32 pending_updates_count_, string const &message_); + + static const std::int32_t ID = -333262899; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class langpack_getDifference final : public Function { + public: + string lang_pack_; + string lang_code_; + int32 from_version_; + + langpack_getDifference(string const &lang_pack_, string const &lang_code_, int32 from_version_); + + static const std::int32_t ID = -845657435; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<langPackDifference>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class langpack_getLangPack final : public Function { + public: + string lang_pack_; + string lang_code_; + + langpack_getLangPack(string const &lang_pack_, string const &lang_code_); + + static const std::int32_t ID = -219008246; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<langPackDifference>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class langpack_getLanguage final : public Function { + public: + string lang_pack_; + string lang_code_; + + langpack_getLanguage(string const &lang_pack_, string const &lang_code_); + + static const std::int32_t ID = 1784243458; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<langPackLanguage>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class langpack_getLanguages final : public Function { + public: + string lang_pack_; + + explicit langpack_getLanguages(string const &lang_pack_); + + static const std::int32_t ID = 1120311183; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<langPackLanguage>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class langpack_getStrings final : public Function { + public: + string lang_pack_; + string lang_code_; + array<string> keys_; + + langpack_getStrings(string const &lang_pack_, string const &lang_code_, array<string> &&keys_); + + static const std::int32_t ID = -269862909; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<LangPackString>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_acceptEncryption final : public Function { + public: + object_ptr<inputEncryptedChat> peer_; + bytes g_b_; + int64 key_fingerprint_; + + messages_acceptEncryption(object_ptr<inputEncryptedChat> &&peer_, bytes &&g_b_, int64 key_fingerprint_); + + static const std::int32_t ID = 1035731989; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<EncryptedChat>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_acceptUrlAuth final : public Function { + public: + int32 flags_; + bool write_allowed_; + object_ptr<InputPeer> peer_; + int32 msg_id_; + int32 button_id_; + string url_; + enum Flags : std::int32_t { WRITE_ALLOWED_MASK = 1, PEER_MASK = 2, MSG_ID_MASK = 2, BUTTON_ID_MASK = 2, URL_MASK = 4 }; + mutable int32 var0; + + messages_acceptUrlAuth(int32 flags_, bool write_allowed_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_); + + static const std::int32_t ID = -1322487515; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<UrlAuthResult>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_addChatUser final : public Function { + public: + int64 chat_id_; + object_ptr<InputUser> user_id_; + int32 fwd_limit_; + + messages_addChatUser(int64 chat_id_, object_ptr<InputUser> &&user_id_, int32 fwd_limit_); + + static const std::int32_t ID = -230206493; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_checkChatInvite final : public Function { + public: + string hash_; + + explicit messages_checkChatInvite(string const &hash_); + + static const std::int32_t ID = 1051570619; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ChatInvite>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_checkHistoryImport final : public Function { + public: + string import_head_; + + explicit messages_checkHistoryImport(string const &import_head_); + + static const std::int32_t ID = 1140726259; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_historyImportParsed>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_checkHistoryImportPeer final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit messages_checkHistoryImportPeer(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 1573261059; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_checkedHistoryImportPeer>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_clearAllDrafts final : public Function { + public: + + static const std::int32_t ID = 2119757468; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_clearRecentReactions final : public Function { + public: + + static const std::int32_t ID = -1644236876; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_clearRecentStickers final : public Function { + public: + int32 flags_; + bool attached_; + enum Flags : std::int32_t { ATTACHED_MASK = 1 }; + mutable int32 var0; + + messages_clearRecentStickers(int32 flags_, bool attached_); + + static const std::int32_t ID = -1986437075; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_createChat final : public Function { + public: + array<object_ptr<InputUser>> users_; + string title_; + + messages_createChat(array<object_ptr<InputUser>> &&users_, string const &title_); + + static const std::int32_t ID = 164303470; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deleteChat final : public Function { + public: + int64 chat_id_; + + explicit messages_deleteChat(int64 chat_id_); + + static const std::int32_t ID = 1540419152; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deleteChatUser final : public Function { + public: + int32 flags_; + bool revoke_history_; + int64 chat_id_; + object_ptr<InputUser> user_id_; + enum Flags : std::int32_t { REVOKE_HISTORY_MASK = 1 }; + mutable int32 var0; + + messages_deleteChatUser(int32 flags_, bool revoke_history_, int64 chat_id_, object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = -1575461717; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deleteExportedChatInvite final : public Function { + public: + object_ptr<InputPeer> peer_; + string link_; + + messages_deleteExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_); + + static const std::int32_t ID = -731601877; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deleteHistory final : public Function { + public: + int32 flags_; + bool just_clear_; + bool revoke_; + object_ptr<InputPeer> peer_; + int32 max_id_; + int32 min_date_; + int32 max_date_; + enum Flags : std::int32_t { JUST_CLEAR_MASK = 1, REVOKE_MASK = 2, MIN_DATE_MASK = 4, MAX_DATE_MASK = 8 }; + mutable int32 var0; + + messages_deleteHistory(int32 flags_, bool just_clear_, bool revoke_, object_ptr<InputPeer> &&peer_, int32 max_id_, int32 min_date_, int32 max_date_); + + static const std::int32_t ID = -1332768214; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedHistory>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deleteMessages final : public Function { + public: + int32 flags_; + bool revoke_; + array<int32> id_; + enum Flags : std::int32_t { REVOKE_MASK = 1 }; + mutable int32 var0; + + messages_deleteMessages(int32 flags_, bool revoke_, array<int32> &&id_); + + static const std::int32_t ID = -443640366; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedMessages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deletePhoneCallHistory final : public Function { + public: + int32 flags_; + bool revoke_; + enum Flags : std::int32_t { REVOKE_MASK = 1 }; + mutable int32 var0; + + messages_deletePhoneCallHistory(int32 flags_, bool revoke_); + + static const std::int32_t ID = -104078327; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedFoundMessages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deleteRevokedExportedChatInvites final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<InputUser> admin_id_; + + messages_deleteRevokedExportedChatInvites(object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_); + + static const std::int32_t ID = 1452833749; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_deleteScheduledMessages final : public Function { + public: + object_ptr<InputPeer> peer_; + array<int32> id_; + + messages_deleteScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_); + + static const std::int32_t ID = 1504586518; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_discardEncryption final : public Function { + public: + int32 flags_; + bool delete_history_; + int32 chat_id_; + enum Flags : std::int32_t { DELETE_HISTORY_MASK = 1 }; + mutable int32 var0; + + messages_discardEncryption(int32 flags_, bool delete_history_, int32 chat_id_); + + static const std::int32_t ID = -208425312; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editChatAbout final : public Function { + public: + object_ptr<InputPeer> peer_; + string about_; + + messages_editChatAbout(object_ptr<InputPeer> &&peer_, string const &about_); + + static const std::int32_t ID = -554301545; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editChatAdmin final : public Function { + public: + int64 chat_id_; + object_ptr<InputUser> user_id_; + bool is_admin_; + + messages_editChatAdmin(int64 chat_id_, object_ptr<InputUser> &&user_id_, bool is_admin_); + + static const std::int32_t ID = -1470377534; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editChatDefaultBannedRights final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<chatBannedRights> banned_rights_; + + messages_editChatDefaultBannedRights(object_ptr<InputPeer> &&peer_, object_ptr<chatBannedRights> &&banned_rights_); + + static const std::int32_t ID = -1517917375; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editChatPhoto final : public Function { + public: + int64 chat_id_; + object_ptr<InputChatPhoto> photo_; + + messages_editChatPhoto(int64 chat_id_, object_ptr<InputChatPhoto> &&photo_); + + static const std::int32_t ID = 903730804; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editChatTitle final : public Function { + public: + int64 chat_id_; + string title_; + + messages_editChatTitle(int64 chat_id_, string const &title_); + + static const std::int32_t ID = 1937260541; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editExportedChatInvite final : public Function { + public: + int32 flags_; + bool revoked_; + object_ptr<InputPeer> peer_; + string link_; + int32 expire_date_; + int32 usage_limit_; + bool request_needed_; + string title_; + enum Flags : std::int32_t { REVOKED_MASK = 4, EXPIRE_DATE_MASK = 1, USAGE_LIMIT_MASK = 2, REQUEST_NEEDED_MASK = 8, TITLE_MASK = 16 }; + mutable int32 var0; + + messages_editExportedChatInvite(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, string const &link_, int32 expire_date_, int32 usage_limit_, bool request_needed_, string const &title_); + + static const std::int32_t ID = -1110823051; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_ExportedChatInvite>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editInlineBotMessage final : public Function { + public: + int32 flags_; + bool no_webpage_; + object_ptr<InputBotInlineMessageID> id_; + string message_; + object_ptr<InputMedia> media_; + object_ptr<ReplyMarkup> reply_markup_; + array<object_ptr<MessageEntity>> entities_; + enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, MESSAGE_MASK = 2048, MEDIA_MASK = 16384, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8 }; + mutable int32 var0; + + messages_editInlineBotMessage(int32 flags_, bool no_webpage_, object_ptr<InputBotInlineMessageID> &&id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_); + + static const std::int32_t ID = -2091549254; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_editMessage final : public Function { + public: + int32 flags_; + bool no_webpage_; + object_ptr<InputPeer> peer_; + int32 id_; + string message_; + object_ptr<InputMedia> media_; + object_ptr<ReplyMarkup> reply_markup_; + array<object_ptr<MessageEntity>> entities_; + int32 schedule_date_; + enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, MESSAGE_MASK = 2048, MEDIA_MASK = 16384, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8, SCHEDULE_DATE_MASK = 32768 }; + mutable int32 var0; + + messages_editMessage(int32 flags_, bool no_webpage_, object_ptr<InputPeer> &&peer_, int32 id_, string const &message_, object_ptr<InputMedia> &&media_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_); + + static const std::int32_t ID = 1224152952; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_exportChatInvite final : public Function { + public: + int32 flags_; + bool legacy_revoke_permanent_; + bool request_needed_; + object_ptr<InputPeer> peer_; + int32 expire_date_; + int32 usage_limit_; + string title_; + enum Flags : std::int32_t { LEGACY_REVOKE_PERMANENT_MASK = 4, REQUEST_NEEDED_MASK = 8, EXPIRE_DATE_MASK = 1, USAGE_LIMIT_MASK = 2, TITLE_MASK = 16 }; + mutable int32 var0; + + messages_exportChatInvite(int32 flags_, bool legacy_revoke_permanent_, bool request_needed_, object_ptr<InputPeer> &&peer_, int32 expire_date_, int32 usage_limit_, string const &title_); + + static const std::int32_t ID = -1607670315; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<ExportedChatInvite>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_faveSticker final : public Function { + public: + object_ptr<InputDocument> id_; + bool unfave_; + + messages_faveSticker(object_ptr<InputDocument> &&id_, bool unfave_); + + static const std::int32_t ID = -1174420133; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_forwardMessages final : public Function { + public: + int32 flags_; + bool silent_; + bool background_; + bool with_my_score_; + bool drop_author_; + bool drop_media_captions_; + bool noforwards_; + object_ptr<InputPeer> from_peer_; + array<int32> id_; + array<int64> random_id_; + object_ptr<InputPeer> to_peer_; + int32 top_msg_id_; + int32 schedule_date_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, WITH_MY_SCORE_MASK = 256, DROP_AUTHOR_MASK = 2048, DROP_MEDIA_CAPTIONS_MASK = 4096, NOFORWARDS_MASK = 16384, TOP_MSG_ID_MASK = 512, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 }; + mutable int32 var0; + + messages_forwardMessages(int32 flags_, bool silent_, bool background_, bool with_my_score_, bool drop_author_, bool drop_media_captions_, bool noforwards_, object_ptr<InputPeer> &&from_peer_, array<int32> &&id_, array<int64> &&random_id_, object_ptr<InputPeer> &&to_peer_, int32 top_msg_id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = -966673468; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAdminsWithInvites final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit messages_getAdminsWithInvites(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 958457583; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_chatAdminsWithInvites>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAllChats final : public Function { + public: + array<int64> except_ids_; + + explicit messages_getAllChats(array<int64> &&except_ids_); + + static const std::int32_t ID = -2023787330; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Chats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAllDrafts final : public Function { + public: + + static const std::int32_t ID = 1782549861; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAllStickers final : public Function { + public: + int64 hash_; + + explicit messages_getAllStickers(int64 hash_); + + static const std::int32_t ID = -1197432408; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_AllStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getArchivedStickers final : public Function { + public: + int32 flags_; + bool masks_; + bool emojis_; + int64 offset_id_; + int32 limit_; + enum Flags : std::int32_t { MASKS_MASK = 1, EMOJIS_MASK = 2 }; + mutable int32 var0; + + messages_getArchivedStickers(int32 flags_, bool masks_, bool emojis_, int64 offset_id_, int32 limit_); + + static const std::int32_t ID = 1475442322; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_archivedStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAttachMenuBot final : public Function { + public: + object_ptr<InputUser> bot_; + + explicit messages_getAttachMenuBot(object_ptr<InputUser> &&bot_); + + static const std::int32_t ID = 1998676370; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<attachMenuBotsBot>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAttachMenuBots final : public Function { + public: + int64 hash_; + + explicit messages_getAttachMenuBots(int64 hash_); + + static const std::int32_t ID = 385663691; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<AttachMenuBots>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAttachedStickers final : public Function { + public: + object_ptr<InputStickeredMedia> media_; + + explicit messages_getAttachedStickers(object_ptr<InputStickeredMedia> &&media_); + + static const std::int32_t ID = -866424884; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<StickerSetCovered>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getAvailableReactions final : public Function { + public: + int32 hash_; + + explicit messages_getAvailableReactions(int32 hash_); + + static const std::int32_t ID = 417243308; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_AvailableReactions>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getBotCallbackAnswer final : public Function { + public: + int32 flags_; + bool game_; + object_ptr<InputPeer> peer_; + int32 msg_id_; + bytes data_; + object_ptr<InputCheckPasswordSRP> password_; + enum Flags : std::int32_t { GAME_MASK = 2, DATA_MASK = 1, PASSWORD_MASK = 4 }; + mutable int32 var0; + + messages_getBotCallbackAnswer(int32 flags_, bool game_, object_ptr<InputPeer> &&peer_, int32 msg_id_, bytes &&data_, object_ptr<InputCheckPasswordSRP> &&password_); + + static const std::int32_t ID = -1824339449; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_botCallbackAnswer>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getChatInviteImporters final : public Function { + public: + int32 flags_; + bool requested_; + object_ptr<InputPeer> peer_; + string link_; + string q_; + int32 offset_date_; + object_ptr<InputUser> offset_user_; + int32 limit_; + enum Flags : std::int32_t { REQUESTED_MASK = 1, LINK_MASK = 2, Q_MASK = 4 }; + mutable int32 var0; + + messages_getChatInviteImporters(int32 flags_, bool requested_, object_ptr<InputPeer> &&peer_, string const &link_, string const &q_, int32 offset_date_, object_ptr<InputUser> &&offset_user_, int32 limit_); + + static const std::int32_t ID = -553329330; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_chatInviteImporters>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getChats final : public Function { + public: + array<int64> id_; + + explicit messages_getChats(array<int64> &&id_); + + static const std::int32_t ID = 1240027791; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Chats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getCommonChats final : public Function { + public: + object_ptr<InputUser> user_id_; + int64 max_id_; + int32 limit_; + + messages_getCommonChats(object_ptr<InputUser> &&user_id_, int64 max_id_, int32 limit_); + + static const std::int32_t ID = -468934396; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Chats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getCustomEmojiDocuments final : public Function { + public: + array<int64> document_id_; + + explicit messages_getCustomEmojiDocuments(array<int64> &&document_id_); + + static const std::int32_t ID = -643100844; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<Document>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getDhConfig final : public Function { + public: + int32 version_; + int32 random_length_; + + messages_getDhConfig(int32 version_, int32 random_length_); + + static const std::int32_t ID = 651135312; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_DhConfig>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getDialogFilters final : public Function { + public: + + static const std::int32_t ID = -241247891; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<DialogFilter>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getDialogUnreadMarks final : public Function { + public: + + static const std::int32_t ID = 585256482; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<DialogPeer>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getDialogs final : public Function { + public: + int32 flags_; + bool exclude_pinned_; + int32 folder_id_; + int32 offset_date_; + int32 offset_id_; + object_ptr<InputPeer> offset_peer_; + int32 limit_; + int64 hash_; + enum Flags : std::int32_t { EXCLUDE_PINNED_MASK = 1, FOLDER_ID_MASK = 2 }; + mutable int32 var0; + + messages_getDialogs(int32 flags_, bool exclude_pinned_, int32 folder_id_, int32 offset_date_, int32 offset_id_, object_ptr<InputPeer> &&offset_peer_, int32 limit_, int64 hash_); + + static const std::int32_t ID = -1594569905; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Dialogs>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getDiscussionMessage final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + + messages_getDiscussionMessage(object_ptr<InputPeer> &&peer_, int32 msg_id_); + + static const std::int32_t ID = 1147761405; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_discussionMessage>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getDocumentByHash final : public Function { + public: + bytes sha256_; + int64 size_; + string mime_type_; + + messages_getDocumentByHash(bytes &&sha256_, int64 size_, string const &mime_type_); + + static const std::int32_t ID = -1309538785; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Document>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getEmojiKeywords final : public Function { + public: + string lang_code_; + + explicit messages_getEmojiKeywords(string const &lang_code_); + + static const std::int32_t ID = 899735650; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojiKeywordsDifference>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getEmojiKeywordsDifference final : public Function { + public: + string lang_code_; + int32 from_version_; + + messages_getEmojiKeywordsDifference(string const &lang_code_, int32 from_version_); + + static const std::int32_t ID = 352892591; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojiKeywordsDifference>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getEmojiKeywordsLanguages final : public Function { + public: + array<string> lang_codes_; + + explicit messages_getEmojiKeywordsLanguages(array<string> &&lang_codes_); + + static const std::int32_t ID = 1318675378; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<emojiLanguage>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getEmojiStickers final : public Function { + public: + int64 hash_; + + explicit messages_getEmojiStickers(int64 hash_); + + static const std::int32_t ID = -67329649; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_AllStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getEmojiURL final : public Function { + public: + string lang_code_; + + explicit messages_getEmojiURL(string const &lang_code_); + + static const std::int32_t ID = -709817306; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<emojiURL>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getExportedChatInvite final : public Function { + public: + object_ptr<InputPeer> peer_; + string link_; + + messages_getExportedChatInvite(object_ptr<InputPeer> &&peer_, string const &link_); + + static const std::int32_t ID = 1937010524; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_ExportedChatInvite>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getExportedChatInvites final : public Function { + public: + int32 flags_; + bool revoked_; + object_ptr<InputPeer> peer_; + object_ptr<InputUser> admin_id_; + int32 offset_date_; + string offset_link_; + int32 limit_; + enum Flags : std::int32_t { REVOKED_MASK = 8, OFFSET_DATE_MASK = 4, OFFSET_LINK_MASK = 4 }; + mutable int32 var0; + + messages_getExportedChatInvites(int32 flags_, bool revoked_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&admin_id_, int32 offset_date_, string const &offset_link_, int32 limit_); + + static const std::int32_t ID = -1565154314; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_exportedChatInvites>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getExtendedMedia final : public Function { + public: + object_ptr<InputPeer> peer_; + array<int32> id_; + + messages_getExtendedMedia(object_ptr<InputPeer> &&peer_, array<int32> &&id_); + + static const std::int32_t ID = -2064119788; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getFavedStickers final : public Function { + public: + int64 hash_; + + explicit messages_getFavedStickers(int64 hash_); + + static const std::int32_t ID = 82946729; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_FavedStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getFeaturedEmojiStickers final : public Function { + public: + int64 hash_; + + explicit messages_getFeaturedEmojiStickers(int64 hash_); + + static const std::int32_t ID = 248473398; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_FeaturedStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getFeaturedStickers final : public Function { + public: + int64 hash_; + + explicit messages_getFeaturedStickers(int64 hash_); + + static const std::int32_t ID = 1685588756; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_FeaturedStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getFullChat final : public Function { + public: + int64 chat_id_; + + explicit messages_getFullChat(int64 chat_id_); + + static const std::int32_t ID = -1364194508; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_chatFull>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getGameHighScores final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 id_; + object_ptr<InputUser> user_id_; + + messages_getGameHighScores(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = -400399203; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_highScores>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getHistory final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 offset_id_; + int32 offset_date_; + int32 add_offset_; + int32 limit_; + int32 max_id_; + int32 min_id_; + int64 hash_; + + messages_getHistory(object_ptr<InputPeer> &&peer_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_); + + static const std::int32_t ID = 1143203525; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getInlineBotResults final : public Function { + public: + int32 flags_; + object_ptr<InputUser> bot_; + object_ptr<InputPeer> peer_; + object_ptr<InputGeoPoint> geo_point_; + string query_; + string offset_; + enum Flags : std::int32_t { GEO_POINT_MASK = 1 }; + mutable int32 var0; + + messages_getInlineBotResults(int32 flags_, object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, object_ptr<InputGeoPoint> &&geo_point_, string const &query_, string const &offset_); + + static const std::int32_t ID = 1364105629; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_botResults>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getInlineGameHighScores final : public Function { + public: + object_ptr<InputBotInlineMessageID> id_; + object_ptr<InputUser> user_id_; + + messages_getInlineGameHighScores(object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = 258170395; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_highScores>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getMaskStickers final : public Function { + public: + int64 hash_; + + explicit messages_getMaskStickers(int64 hash_); + + static const std::int32_t ID = 1678738104; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_AllStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getMessageEditData final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 id_; + + messages_getMessageEditData(object_ptr<InputPeer> &&peer_, int32 id_); + + static const std::int32_t ID = -39416522; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_messageEditData>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getMessageReactionsList final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 id_; + object_ptr<Reaction> reaction_; + string offset_; + int32 limit_; + enum Flags : std::int32_t { REACTION_MASK = 1, OFFSET_MASK = 2 }; + mutable int32 var0; + + messages_getMessageReactionsList(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<Reaction> &&reaction_, string const &offset_, int32 limit_); + + static const std::int32_t ID = 1176190792; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_messageReactionsList>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getMessageReadParticipants final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + + messages_getMessageReadParticipants(object_ptr<InputPeer> &&peer_, int32 msg_id_); + + static const std::int32_t ID = 745510839; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<int64>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getMessages final : public Function { + public: + array<object_ptr<InputMessage>> id_; + + explicit messages_getMessages(array<object_ptr<InputMessage>> &&id_); + + static const std::int32_t ID = 1673946374; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getMessagesReactions final : public Function { + public: + object_ptr<InputPeer> peer_; + array<int32> id_; + + messages_getMessagesReactions(object_ptr<InputPeer> &&peer_, array<int32> &&id_); + + static const std::int32_t ID = -1950707482; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getMessagesViews final : public Function { + public: + object_ptr<InputPeer> peer_; + array<int32> id_; + bool increment_; + + messages_getMessagesViews(object_ptr<InputPeer> &&peer_, array<int32> &&id_, bool increment_); + + static const std::int32_t ID = 1468322785; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_messageViews>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getOldFeaturedStickers final : public Function { + public: + int32 offset_; + int32 limit_; + int64 hash_; + + messages_getOldFeaturedStickers(int32 offset_, int32 limit_, int64 hash_); + + static const std::int32_t ID = 2127598753; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_FeaturedStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getOnlines final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit messages_getOnlines(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 1848369232; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<chatOnlines>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getPeerDialogs final : public Function { + public: + array<object_ptr<InputDialogPeer>> peers_; + + explicit messages_getPeerDialogs(array<object_ptr<InputDialogPeer>> &&peers_); + + static const std::int32_t ID = -462373635; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_peerDialogs>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getPeerSettings final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit messages_getPeerSettings(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = -270948702; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_peerSettings>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getPinnedDialogs final : public Function { + public: + int32 folder_id_; + + explicit messages_getPinnedDialogs(int32 folder_id_); + + static const std::int32_t ID = -692498958; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_peerDialogs>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getPollResults final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + + messages_getPollResults(object_ptr<InputPeer> &&peer_, int32 msg_id_); + + static const std::int32_t ID = 1941660731; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getPollVotes final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 id_; + bytes option_; + string offset_; + int32 limit_; + enum Flags : std::int32_t { OPTION_MASK = 1, OFFSET_MASK = 2 }; + mutable int32 var0; + + messages_getPollVotes(int32 flags_, object_ptr<InputPeer> &&peer_, int32 id_, bytes &&option_, string const &offset_, int32 limit_); + + static const std::int32_t ID = -1200736242; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_votesList>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getRecentLocations final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 limit_; + int64 hash_; + + messages_getRecentLocations(object_ptr<InputPeer> &&peer_, int32 limit_, int64 hash_); + + static const std::int32_t ID = 1881817312; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getRecentReactions final : public Function { + public: + int32 limit_; + int64 hash_; + + messages_getRecentReactions(int32 limit_, int64 hash_); + + static const std::int32_t ID = 960896434; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Reactions>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getRecentStickers final : public Function { + public: + int32 flags_; + bool attached_; + int64 hash_; + enum Flags : std::int32_t { ATTACHED_MASK = 1 }; + mutable int32 var0; + + messages_getRecentStickers(int32 flags_, bool attached_, int64 hash_); + + static const std::int32_t ID = -1649852357; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_RecentStickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getReplies final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + int32 offset_id_; + int32 offset_date_; + int32 add_offset_; + int32 limit_; + int32 max_id_; + int32 min_id_; + int64 hash_; + + messages_getReplies(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 offset_id_, int32 offset_date_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_); + + static const std::int32_t ID = 584962828; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getSavedGifs final : public Function { + public: + int64 hash_; + + explicit messages_getSavedGifs(int64 hash_); + + static const std::int32_t ID = 1559270965; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_SavedGifs>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getScheduledHistory final : public Function { + public: + object_ptr<InputPeer> peer_; + int64 hash_; + + messages_getScheduledHistory(object_ptr<InputPeer> &&peer_, int64 hash_); + + static const std::int32_t ID = -183077365; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getScheduledMessages final : public Function { + public: + object_ptr<InputPeer> peer_; + array<int32> id_; + + messages_getScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_); + + static const std::int32_t ID = -1111817116; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getSearchCounters final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + array<object_ptr<MessagesFilter>> filters_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + mutable int32 var0; + + messages_getSearchCounters(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, array<object_ptr<MessagesFilter>> &&filters_); + + static const std::int32_t ID = 11435201; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<messages_searchCounter>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getSearchResultsCalendar final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<MessagesFilter> filter_; + int32 offset_id_; + int32 offset_date_; + + messages_getSearchResultsCalendar(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 offset_date_); + + static const std::int32_t ID = 1240514025; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_searchResultsCalendar>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getSearchResultsPositions final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<MessagesFilter> filter_; + int32 offset_id_; + int32 limit_; + + messages_getSearchResultsPositions(object_ptr<InputPeer> &&peer_, object_ptr<MessagesFilter> &&filter_, int32 offset_id_, int32 limit_); + + static const std::int32_t ID = 1855292323; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_searchResultsPositions>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getSplitRanges final : public Function { + public: + + static const std::int32_t ID = 486505992; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<messageRange>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getStickerSet final : public Function { + public: + object_ptr<InputStickerSet> stickerset_; + int32 hash_; + + messages_getStickerSet(object_ptr<InputStickerSet> &&stickerset_, int32 hash_); + + static const std::int32_t ID = -928977804; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_StickerSet>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getStickers final : public Function { + public: + string emoticon_; + int64 hash_; + + messages_getStickers(string const &emoticon_, int64 hash_); + + static const std::int32_t ID = -710552671; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Stickers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getSuggestedDialogFilters final : public Function { + public: + + static const std::int32_t ID = -1566780372; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<dialogFilterSuggested>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getTopReactions final : public Function { + public: + int32 limit_; + int64 hash_; + + messages_getTopReactions(int32 limit_, int64 hash_); + + static const std::int32_t ID = -1149164102; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Reactions>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getUnreadMentions final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + int32 offset_id_; + int32 add_offset_; + int32 limit_; + int32 max_id_; + int32 min_id_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + mutable int32 var0; + + messages_getUnreadMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_); + + static const std::int32_t ID = -251140208; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getUnreadReactions final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + int32 offset_id_; + int32 add_offset_; + int32 limit_; + int32 max_id_; + int32 min_id_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + mutable int32 var0; + + messages_getUnreadReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_); + + static const std::int32_t ID = 841173339; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getWebPage final : public Function { + public: + string url_; + int32 hash_; + + messages_getWebPage(string const &url_, int32 hash_); + + static const std::int32_t ID = 852135825; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<WebPage>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_getWebPagePreview final : public Function { + public: + int32 flags_; + string message_; + array<object_ptr<MessageEntity>> entities_; + enum Flags : std::int32_t { ENTITIES_MASK = 8 }; + mutable int32 var0; + + messages_getWebPagePreview(int32 flags_, string const &message_, array<object_ptr<MessageEntity>> &&entities_); + + static const std::int32_t ID = -1956073268; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<MessageMedia>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_hideAllChatJoinRequests final : public Function { + public: + int32 flags_; + bool approved_; + object_ptr<InputPeer> peer_; + string link_; + enum Flags : std::int32_t { APPROVED_MASK = 1, LINK_MASK = 2 }; + mutable int32 var0; + + messages_hideAllChatJoinRequests(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, string const &link_); + + static const std::int32_t ID = -528091926; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_hideChatJoinRequest final : public Function { + public: + int32 flags_; + bool approved_; + object_ptr<InputPeer> peer_; + object_ptr<InputUser> user_id_; + enum Flags : std::int32_t { APPROVED_MASK = 1 }; + mutable int32 var0; + + messages_hideChatJoinRequest(int32 flags_, bool approved_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&user_id_); + + static const std::int32_t ID = 2145904661; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_hidePeerSettingsBar final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit messages_hidePeerSettingsBar(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = 1336717624; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_importChatInvite final : public Function { + public: + string hash_; + + explicit messages_importChatInvite(string const &hash_); + + static const std::int32_t ID = 1817183516; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_initHistoryImport final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<InputFile> file_; + int32 media_count_; + + messages_initHistoryImport(object_ptr<InputPeer> &&peer_, object_ptr<InputFile> &&file_, int32 media_count_); + + static const std::int32_t ID = 873008187; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_historyImport>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_installStickerSet final : public Function { + public: + object_ptr<InputStickerSet> stickerset_; + bool archived_; + + messages_installStickerSet(object_ptr<InputStickerSet> &&stickerset_, bool archived_); + + static const std::int32_t ID = -946871200; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_StickerSetInstallResult>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_markDialogUnread final : public Function { + public: + int32 flags_; + bool unread_; + object_ptr<InputDialogPeer> peer_; + enum Flags : std::int32_t { UNREAD_MASK = 1 }; + mutable int32 var0; + + messages_markDialogUnread(int32 flags_, bool unread_, object_ptr<InputDialogPeer> &&peer_); + + static const std::int32_t ID = -1031349873; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_migrateChat final : public Function { + public: + int64 chat_id_; + + explicit messages_migrateChat(int64 chat_id_); + + static const std::int32_t ID = -1568189671; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_prolongWebView final : public Function { + public: + int32 flags_; + bool silent_; + object_ptr<InputPeer> peer_; + object_ptr<InputUser> bot_; + int64 query_id_; + int32 reply_to_msg_id_; + int32 top_msg_id_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { SILENT_MASK = 32, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SEND_AS_MASK = 8192 }; + mutable int32 var0; + + messages_prolongWebView(int32 flags_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, int64 query_id_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = 2146648841; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_rateTranscribedAudio final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + int64 transcription_id_; + bool good_; + + messages_rateTranscribedAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_, int64 transcription_id_, bool good_); + + static const std::int32_t ID = 2132608815; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_readDiscussion final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + int32 read_max_id_; + + messages_readDiscussion(object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 read_max_id_); + + static const std::int32_t ID = -147740172; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_readEncryptedHistory final : public Function { + public: + object_ptr<inputEncryptedChat> peer_; + int32 max_date_; + + messages_readEncryptedHistory(object_ptr<inputEncryptedChat> &&peer_, int32 max_date_); + + static const std::int32_t ID = 2135648522; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_readFeaturedStickers final : public Function { + public: + array<int64> id_; + + explicit messages_readFeaturedStickers(array<int64> &&id_); + + static const std::int32_t ID = 1527873830; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_readHistory final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 max_id_; + + messages_readHistory(object_ptr<InputPeer> &&peer_, int32 max_id_); + + static const std::int32_t ID = 238054714; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedMessages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_readMentions final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + mutable int32 var0; + + messages_readMentions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_); + + static const std::int32_t ID = 921026381; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedHistory>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_readMessageContents final : public Function { + public: + array<int32> id_; + + explicit messages_readMessageContents(array<int32> &&id_); + + static const std::int32_t ID = 916930423; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedMessages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_readReactions final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + mutable int32 var0; + + messages_readReactions(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_); + + static const std::int32_t ID = 1420459918; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedHistory>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_receivedMessages final : public Function { + public: + int32 max_id_; + + explicit messages_receivedMessages(int32 max_id_); + + static const std::int32_t ID = 94983360; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<receivedNotifyMessage>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_receivedQueue final : public Function { + public: + int32 max_qts_; + + explicit messages_receivedQueue(int32 max_qts_); + + static const std::int32_t ID = 1436924774; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<int64>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_reorderPinnedDialogs final : public Function { + public: + int32 flags_; + bool force_; + int32 folder_id_; + array<object_ptr<InputDialogPeer>> order_; + enum Flags : std::int32_t { FORCE_MASK = 1 }; + mutable int32 var0; + + messages_reorderPinnedDialogs(int32 flags_, bool force_, int32 folder_id_, array<object_ptr<InputDialogPeer>> &&order_); + + static const std::int32_t ID = 991616823; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_reorderStickerSets final : public Function { + public: + int32 flags_; + bool masks_; + bool emojis_; + array<int64> order_; + enum Flags : std::int32_t { MASKS_MASK = 1, EMOJIS_MASK = 2 }; + mutable int32 var0; + + messages_reorderStickerSets(int32 flags_, bool masks_, bool emojis_, array<int64> &&order_); + + static const std::int32_t ID = 2016638777; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_report final : public Function { + public: + object_ptr<InputPeer> peer_; + array<int32> id_; + object_ptr<ReportReason> reason_; + string message_; + + messages_report(object_ptr<InputPeer> &&peer_, array<int32> &&id_, object_ptr<ReportReason> &&reason_, string const &message_); + + static const std::int32_t ID = -1991005362; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_reportEncryptedSpam final : public Function { + public: + object_ptr<inputEncryptedChat> peer_; + + explicit messages_reportEncryptedSpam(object_ptr<inputEncryptedChat> &&peer_); + + static const std::int32_t ID = 1259113487; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_reportReaction final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 id_; + object_ptr<InputPeer> reaction_peer_; + + messages_reportReaction(object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputPeer> &&reaction_peer_); + + static const std::int32_t ID = 1063567478; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_reportSpam final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit messages_reportSpam(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = -820669733; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_requestEncryption final : public Function { + public: + object_ptr<InputUser> user_id_; + int32 random_id_; + bytes g_a_; + + messages_requestEncryption(object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_); + + static const std::int32_t ID = -162681021; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<EncryptedChat>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_requestSimpleWebView final : public Function { + public: + int32 flags_; + object_ptr<InputUser> bot_; + string url_; + object_ptr<dataJSON> theme_params_; + string platform_; + enum Flags : std::int32_t { THEME_PARAMS_MASK = 1 }; + mutable int32 var0; + + messages_requestSimpleWebView(int32 flags_, object_ptr<InputUser> &&bot_, string const &url_, object_ptr<dataJSON> &&theme_params_, string const &platform_); + + static const std::int32_t ID = 698084494; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<simpleWebViewResultUrl>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_requestUrlAuth final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 msg_id_; + int32 button_id_; + string url_; + enum Flags : std::int32_t { PEER_MASK = 2, MSG_ID_MASK = 2, BUTTON_ID_MASK = 2, URL_MASK = 4 }; + mutable int32 var0; + + messages_requestUrlAuth(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, int32 button_id_, string const &url_); + + static const std::int32_t ID = 428848198; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<UrlAuthResult>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_requestWebView final : public Function { + public: + int32 flags_; + bool from_bot_menu_; + bool silent_; + object_ptr<InputPeer> peer_; + object_ptr<InputUser> bot_; + string url_; + string start_param_; + object_ptr<dataJSON> theme_params_; + string platform_; + int32 reply_to_msg_id_; + int32 top_msg_id_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { FROM_BOT_MENU_MASK = 16, SILENT_MASK = 32, URL_MASK = 2, START_PARAM_MASK = 8, THEME_PARAMS_MASK = 4, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SEND_AS_MASK = 8192 }; + mutable int32 var0; + + messages_requestWebView(int32 flags_, bool from_bot_menu_, bool silent_, object_ptr<InputPeer> &&peer_, object_ptr<InputUser> &&bot_, string const &url_, string const &start_param_, object_ptr<dataJSON> &&theme_params_, string const &platform_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = 395003915; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<webViewResultUrl>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_saveDefaultSendAs final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<InputPeer> send_as_; + + messages_saveDefaultSendAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = -855777386; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_saveDraft final : public Function { + public: + int32 flags_; + bool no_webpage_; + int32 reply_to_msg_id_; + int32 top_msg_id_; + object_ptr<InputPeer> peer_; + string message_; + array<object_ptr<MessageEntity>> entities_; + enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 4, ENTITIES_MASK = 8 }; + mutable int32 var0; + + messages_saveDraft(int32 flags_, bool no_webpage_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputPeer> &&peer_, string const &message_, array<object_ptr<MessageEntity>> &&entities_); + + static const std::int32_t ID = -1271718337; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_saveGif final : public Function { + public: + object_ptr<InputDocument> id_; + bool unsave_; + + messages_saveGif(object_ptr<InputDocument> &&id_, bool unsave_); + + static const std::int32_t ID = 846868683; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_saveRecentSticker final : public Function { + public: + int32 flags_; + bool attached_; + object_ptr<InputDocument> id_; + bool unsave_; + enum Flags : std::int32_t { ATTACHED_MASK = 1 }; + mutable int32 var0; + + messages_saveRecentSticker(int32 flags_, bool attached_, object_ptr<InputDocument> &&id_, bool unsave_); + + static const std::int32_t ID = 958863608; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_search final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + string q_; + object_ptr<InputPeer> from_id_; + int32 top_msg_id_; + object_ptr<MessagesFilter> filter_; + int32 min_date_; + int32 max_date_; + int32 offset_id_; + int32 add_offset_; + int32 limit_; + int32 max_id_; + int32 min_id_; + int64 hash_; + enum Flags : std::int32_t { FROM_ID_MASK = 1, TOP_MSG_ID_MASK = 2 }; + mutable int32 var0; + + messages_search(int32 flags_, object_ptr<InputPeer> &&peer_, string const &q_, object_ptr<InputPeer> &&from_id_, int32 top_msg_id_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_id_, int32 add_offset_, int32 limit_, int32 max_id_, int32 min_id_, int64 hash_); + + static const std::int32_t ID = -1593989278; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_searchGlobal final : public Function { + public: + int32 flags_; + int32 folder_id_; + string q_; + object_ptr<MessagesFilter> filter_; + int32 min_date_; + int32 max_date_; + int32 offset_rate_; + object_ptr<InputPeer> offset_peer_; + int32 offset_id_; + int32 limit_; + enum Flags : std::int32_t { FOLDER_ID_MASK = 1 }; + mutable int32 var0; + + messages_searchGlobal(int32 flags_, int32 folder_id_, string const &q_, object_ptr<MessagesFilter> &&filter_, int32 min_date_, int32 max_date_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_); + + static const std::int32_t ID = 1271290010; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_searchSentMedia final : public Function { + public: + string q_; + object_ptr<MessagesFilter> filter_; + int32 limit_; + + messages_searchSentMedia(string const &q_, object_ptr<MessagesFilter> &&filter_, int32 limit_); + + static const std::int32_t ID = 276705696; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_searchStickerSets final : public Function { + public: + int32 flags_; + bool exclude_featured_; + string q_; + int64 hash_; + enum Flags : std::int32_t { EXCLUDE_FEATURED_MASK = 1 }; + mutable int32 var0; + + messages_searchStickerSets(int32 flags_, bool exclude_featured_, string const &q_, int64 hash_); + + static const std::int32_t ID = 896555914; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_FoundStickerSets>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendEncrypted final : public Function { + public: + int32 flags_; + bool silent_; + object_ptr<inputEncryptedChat> peer_; + int64 random_id_; + bytes data_; + enum Flags : std::int32_t { SILENT_MASK = 1 }; + mutable int32 var0; + + messages_sendEncrypted(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_); + + static const std::int32_t ID = 1157265941; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_SentEncryptedMessage>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendEncryptedFile final : public Function { + public: + int32 flags_; + bool silent_; + object_ptr<inputEncryptedChat> peer_; + int64 random_id_; + bytes data_; + object_ptr<InputEncryptedFile> file_; + enum Flags : std::int32_t { SILENT_MASK = 1 }; + mutable int32 var0; + + messages_sendEncryptedFile(int32 flags_, bool silent_, object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_, object_ptr<InputEncryptedFile> &&file_); + + static const std::int32_t ID = 1431914525; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_SentEncryptedMessage>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendEncryptedService final : public Function { + public: + object_ptr<inputEncryptedChat> peer_; + int64 random_id_; + bytes data_; + + messages_sendEncryptedService(object_ptr<inputEncryptedChat> &&peer_, int64 random_id_, bytes &&data_); + + static const std::int32_t ID = 852769188; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_SentEncryptedMessage>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendInlineBotResult final : public Function { + public: + int32 flags_; + bool silent_; + bool background_; + bool clear_draft_; + bool hide_via_; + object_ptr<InputPeer> peer_; + int32 reply_to_msg_id_; + int32 top_msg_id_; + int64 random_id_; + int64 query_id_; + string id_; + int32 schedule_date_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, HIDE_VIA_MASK = 2048, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 }; + mutable int32 var0; + + messages_sendInlineBotResult(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool hide_via_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, int64 random_id_, int64 query_id_, string const &id_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = -738468661; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendMedia final : public Function { + public: + int32 flags_; + bool silent_; + bool background_; + bool clear_draft_; + bool noforwards_; + bool update_stickersets_order_; + object_ptr<InputPeer> peer_; + int32 reply_to_msg_id_; + int32 top_msg_id_; + object_ptr<InputMedia> media_; + string message_; + int64 random_id_; + object_ptr<ReplyMarkup> reply_markup_; + array<object_ptr<MessageEntity>> entities_; + int32 schedule_date_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, NOFORWARDS_MASK = 16384, UPDATE_STICKERSETS_ORDER_MASK = 32768, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 }; + mutable int32 var0; + + messages_sendMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, object_ptr<InputMedia> &&media_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = 1967638886; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendMessage final : public Function { + public: + int32 flags_; + bool no_webpage_; + bool silent_; + bool background_; + bool clear_draft_; + bool noforwards_; + bool update_stickersets_order_; + object_ptr<InputPeer> peer_; + int32 reply_to_msg_id_; + int32 top_msg_id_; + string message_; + int64 random_id_; + object_ptr<ReplyMarkup> reply_markup_; + array<object_ptr<MessageEntity>> entities_; + int32 schedule_date_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { NO_WEBPAGE_MASK = 2, SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, NOFORWARDS_MASK = 16384, UPDATE_STICKERSETS_ORDER_MASK = 32768, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, REPLY_MARKUP_MASK = 4, ENTITIES_MASK = 8, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 }; + mutable int32 var0; + + messages_sendMessage(int32 flags_, bool no_webpage_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, string const &message_, int64 random_id_, object_ptr<ReplyMarkup> &&reply_markup_, array<object_ptr<MessageEntity>> &&entities_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = 482476935; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendMultiMedia final : public Function { + public: + int32 flags_; + bool silent_; + bool background_; + bool clear_draft_; + bool noforwards_; + bool update_stickersets_order_; + object_ptr<InputPeer> peer_; + int32 reply_to_msg_id_; + int32 top_msg_id_; + array<object_ptr<inputSingleMedia>> multi_media_; + int32 schedule_date_; + object_ptr<InputPeer> send_as_; + enum Flags : std::int32_t { SILENT_MASK = 32, BACKGROUND_MASK = 64, CLEAR_DRAFT_MASK = 128, NOFORWARDS_MASK = 16384, UPDATE_STICKERSETS_ORDER_MASK = 32768, REPLY_TO_MSG_ID_MASK = 1, TOP_MSG_ID_MASK = 512, SCHEDULE_DATE_MASK = 1024, SEND_AS_MASK = 8192 }; + mutable int32 var0; + + messages_sendMultiMedia(int32 flags_, bool silent_, bool background_, bool clear_draft_, bool noforwards_, bool update_stickersets_order_, object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int32 top_msg_id_, array<object_ptr<inputSingleMedia>> &&multi_media_, int32 schedule_date_, object_ptr<InputPeer> &&send_as_); + + static const std::int32_t ID = -1225713124; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendReaction final : public Function { + public: + int32 flags_; + bool big_; + bool add_to_recent_; + object_ptr<InputPeer> peer_; + int32 msg_id_; + array<object_ptr<Reaction>> reaction_; + enum Flags : std::int32_t { BIG_MASK = 2, ADD_TO_RECENT_MASK = 4, REACTION_MASK = 1 }; + mutable int32 var0; + + messages_sendReaction(int32 flags_, bool big_, bool add_to_recent_, object_ptr<InputPeer> &&peer_, int32 msg_id_, array<object_ptr<Reaction>> &&reaction_); + + static const std::int32_t ID = -754091820; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendScheduledMessages final : public Function { + public: + object_ptr<InputPeer> peer_; + array<int32> id_; + + messages_sendScheduledMessages(object_ptr<InputPeer> &&peer_, array<int32> &&id_); + + static const std::int32_t ID = -1120369398; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendScreenshotNotification final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 reply_to_msg_id_; + int64 random_id_; + + messages_sendScreenshotNotification(object_ptr<InputPeer> &&peer_, int32 reply_to_msg_id_, int64 random_id_); + + static const std::int32_t ID = -914493408; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendVote final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + array<bytes> options_; + + messages_sendVote(object_ptr<InputPeer> &&peer_, int32 msg_id_, array<bytes> &&options_); + + static const std::int32_t ID = 283795844; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendWebViewData final : public Function { + public: + object_ptr<InputUser> bot_; + int64 random_id_; + string button_text_; + string data_; + + messages_sendWebViewData(object_ptr<InputUser> &&bot_, int64 random_id_, string const &button_text_, string const &data_); + + static const std::int32_t ID = -603831608; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_sendWebViewResultMessage final : public Function { + public: + string bot_query_id_; + object_ptr<InputBotInlineResult> result_; + + messages_sendWebViewResultMessage(string const &bot_query_id_, object_ptr<InputBotInlineResult> &&result_); + + static const std::int32_t ID = 172168437; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<webViewMessageSent>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setBotCallbackAnswer final : public Function { + public: + int32 flags_; + bool alert_; + int64 query_id_; + string message_; + string url_; + int32 cache_time_; + enum Flags : std::int32_t { ALERT_MASK = 2, MESSAGE_MASK = 1, URL_MASK = 4 }; + mutable int32 var0; + + messages_setBotCallbackAnswer(int32 flags_, bool alert_, int64 query_id_, string const &message_, string const &url_, int32 cache_time_); + + static const std::int32_t ID = -712043766; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setBotPrecheckoutResults final : public Function { + public: + int32 flags_; + bool success_; + int64 query_id_; + string error_; + enum Flags : std::int32_t { SUCCESS_MASK = 2, ERROR_MASK = 1 }; + mutable int32 var0; + + messages_setBotPrecheckoutResults(int32 flags_, bool success_, int64 query_id_, string const &error_); + + static const std::int32_t ID = 163765653; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setBotShippingResults final : public Function { + public: + int32 flags_; + int64 query_id_; + string error_; + array<object_ptr<shippingOption>> shipping_options_; + enum Flags : std::int32_t { ERROR_MASK = 1, SHIPPING_OPTIONS_MASK = 2 }; + mutable int32 var0; + + messages_setBotShippingResults(int32 flags_, int64 query_id_, string const &error_, array<object_ptr<shippingOption>> &&shipping_options_); + + static const std::int32_t ID = -436833542; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setChatAvailableReactions final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<ChatReactions> available_reactions_; + + messages_setChatAvailableReactions(object_ptr<InputPeer> &&peer_, object_ptr<ChatReactions> &&available_reactions_); + + static const std::int32_t ID = -21928079; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setChatTheme final : public Function { + public: + object_ptr<InputPeer> peer_; + string emoticon_; + + messages_setChatTheme(object_ptr<InputPeer> &&peer_, string const &emoticon_); + + static const std::int32_t ID = -432283329; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setDefaultReaction final : public Function { + public: + object_ptr<Reaction> reaction_; + + explicit messages_setDefaultReaction(object_ptr<Reaction> &&reaction_); + + static const std::int32_t ID = 1330094102; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setEncryptedTyping final : public Function { + public: + object_ptr<inputEncryptedChat> peer_; + bool typing_; + + messages_setEncryptedTyping(object_ptr<inputEncryptedChat> &&peer_, bool typing_); + + static const std::int32_t ID = 2031374829; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setGameScore final : public Function { + public: + int32 flags_; + bool edit_message_; + bool force_; + object_ptr<InputPeer> peer_; + int32 id_; + object_ptr<InputUser> user_id_; + int32 score_; + enum Flags : std::int32_t { EDIT_MESSAGE_MASK = 1, FORCE_MASK = 2 }; + mutable int32 var0; + + messages_setGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputPeer> &&peer_, int32 id_, object_ptr<InputUser> &&user_id_, int32 score_); + + static const std::int32_t ID = -1896289088; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setHistoryTTL final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 period_; + + messages_setHistoryTTL(object_ptr<InputPeer> &&peer_, int32 period_); + + static const std::int32_t ID = -1207017500; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setInlineBotResults final : public Function { + public: + int32 flags_; + bool gallery_; + bool private_; + int64 query_id_; + array<object_ptr<InputBotInlineResult>> results_; + int32 cache_time_; + string next_offset_; + object_ptr<inlineBotSwitchPM> switch_pm_; + enum Flags : std::int32_t { GALLERY_MASK = 1, PRIVATE_MASK = 2, NEXT_OFFSET_MASK = 4, SWITCH_PM_MASK = 8 }; + mutable int32 var0; + + messages_setInlineBotResults(int32 flags_, bool gallery_, bool private_, int64 query_id_, array<object_ptr<InputBotInlineResult>> &&results_, int32 cache_time_, string const &next_offset_, object_ptr<inlineBotSwitchPM> &&switch_pm_); + + static const std::int32_t ID = -346119674; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setInlineGameScore final : public Function { + public: + int32 flags_; + bool edit_message_; + bool force_; + object_ptr<InputBotInlineMessageID> id_; + object_ptr<InputUser> user_id_; + int32 score_; + enum Flags : std::int32_t { EDIT_MESSAGE_MASK = 1, FORCE_MASK = 2 }; + mutable int32 var0; + + messages_setInlineGameScore(int32 flags_, bool edit_message_, bool force_, object_ptr<InputBotInlineMessageID> &&id_, object_ptr<InputUser> &&user_id_, int32 score_); + + static const std::int32_t ID = 363700068; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_setTyping final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + object_ptr<SendMessageAction> action_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + mutable int32 var0; + + messages_setTyping(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_, object_ptr<SendMessageAction> &&action_); + + static const std::int32_t ID = 1486110434; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_startBot final : public Function { + public: + object_ptr<InputUser> bot_; + object_ptr<InputPeer> peer_; + int64 random_id_; + string start_param_; + + messages_startBot(object_ptr<InputUser> &&bot_, object_ptr<InputPeer> &&peer_, int64 random_id_, string const &start_param_); + + static const std::int32_t ID = -421563528; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_startHistoryImport final : public Function { + public: + object_ptr<InputPeer> peer_; + int64 import_id_; + + messages_startHistoryImport(object_ptr<InputPeer> &&peer_, int64 import_id_); + + static const std::int32_t ID = -1271008444; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_toggleBotInAttachMenu final : public Function { + public: + object_ptr<InputUser> bot_; + bool enabled_; + + messages_toggleBotInAttachMenu(object_ptr<InputUser> &&bot_, bool enabled_); + + static const std::int32_t ID = 451818415; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_toggleDialogPin final : public Function { + public: + int32 flags_; + bool pinned_; + object_ptr<InputDialogPeer> peer_; + enum Flags : std::int32_t { PINNED_MASK = 1 }; + mutable int32 var0; + + messages_toggleDialogPin(int32 flags_, bool pinned_, object_ptr<InputDialogPeer> &&peer_); + + static const std::int32_t ID = -1489903017; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_toggleNoForwards final : public Function { + public: + object_ptr<InputPeer> peer_; + bool enabled_; + + messages_toggleNoForwards(object_ptr<InputPeer> &&peer_, bool enabled_); + + static const std::int32_t ID = -1323389022; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_toggleStickerSets final : public Function { + public: + int32 flags_; + bool uninstall_; + bool archive_; + bool unarchive_; + array<object_ptr<InputStickerSet>> stickersets_; + enum Flags : std::int32_t { UNINSTALL_MASK = 1, ARCHIVE_MASK = 2, UNARCHIVE_MASK = 4 }; + mutable int32 var0; + + messages_toggleStickerSets(int32 flags_, bool uninstall_, bool archive_, bool unarchive_, array<object_ptr<InputStickerSet>> &&stickersets_); + + static const std::int32_t ID = -1257951254; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_transcribeAudio final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + + messages_transcribeAudio(object_ptr<InputPeer> &&peer_, int32 msg_id_); + + static const std::int32_t ID = 647928393; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_transcribedAudio>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_translateText final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 msg_id_; + string text_; + string from_lang_; + string to_lang_; + enum Flags : std::int32_t { PEER_MASK = 1, MSG_ID_MASK = 1, TEXT_MASK = 2, FROM_LANG_MASK = 4 }; + mutable int32 var0; + + messages_translateText(int32 flags_, object_ptr<InputPeer> &&peer_, int32 msg_id_, string const &text_, string const &from_lang_, string const &to_lang_); + + static const std::int32_t ID = 617508334; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_TranslatedText>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_uninstallStickerSet final : public Function { + public: + object_ptr<InputStickerSet> stickerset_; + + explicit messages_uninstallStickerSet(object_ptr<InputStickerSet> &&stickerset_); + + static const std::int32_t ID = -110209570; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_unpinAllMessages final : public Function { + public: + int32 flags_; + object_ptr<InputPeer> peer_; + int32 top_msg_id_; + enum Flags : std::int32_t { TOP_MSG_ID_MASK = 1 }; + mutable int32 var0; + + messages_unpinAllMessages(int32 flags_, object_ptr<InputPeer> &&peer_, int32 top_msg_id_); + + static const std::int32_t ID = -299714136; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_affectedHistory>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_updateDialogFilter final : public Function { + public: + int32 flags_; + int32 id_; + object_ptr<DialogFilter> filter_; + enum Flags : std::int32_t { FILTER_MASK = 1 }; + mutable int32 var0; + + messages_updateDialogFilter(int32 flags_, int32 id_, object_ptr<DialogFilter> &&filter_); + + static const std::int32_t ID = 450142282; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_updateDialogFiltersOrder final : public Function { + public: + array<int32> order_; + + explicit messages_updateDialogFiltersOrder(array<int32> &&order_); + + static const std::int32_t ID = -983318044; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_updatePinnedMessage final : public Function { + public: + int32 flags_; + bool silent_; + bool unpin_; + bool pm_oneside_; + object_ptr<InputPeer> peer_; + int32 id_; + enum Flags : std::int32_t { SILENT_MASK = 1, UNPIN_MASK = 2, PM_ONESIDE_MASK = 4 }; + mutable int32 var0; + + messages_updatePinnedMessage(int32 flags_, bool silent_, bool unpin_, bool pm_oneside_, object_ptr<InputPeer> &&peer_, int32 id_); + + static const std::int32_t ID = -760547348; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_uploadEncryptedFile final : public Function { + public: + object_ptr<inputEncryptedChat> peer_; + object_ptr<InputEncryptedFile> file_; + + messages_uploadEncryptedFile(object_ptr<inputEncryptedChat> &&peer_, object_ptr<InputEncryptedFile> &&file_); + + static const std::int32_t ID = 1347929239; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<EncryptedFile>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_uploadImportedMedia final : public Function { + public: + object_ptr<InputPeer> peer_; + int64 import_id_; + string file_name_; + object_ptr<InputMedia> media_; + + messages_uploadImportedMedia(object_ptr<InputPeer> &&peer_, int64 import_id_, string const &file_name_, object_ptr<InputMedia> &&media_); + + static const std::int32_t ID = 713433234; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<MessageMedia>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class messages_uploadMedia final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<InputMedia> media_; + + messages_uploadMedia(object_ptr<InputPeer> &&peer_, object_ptr<InputMedia> &&media_); + + static const std::int32_t ID = 1369162417; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<MessageMedia>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_assignAppStoreTransaction final : public Function { + public: + bytes receipt_; + object_ptr<InputStorePaymentPurpose> purpose_; + + payments_assignAppStoreTransaction(bytes &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_); + + static const std::int32_t ID = -2131921795; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_assignPlayMarketTransaction final : public Function { + public: + object_ptr<dataJSON> receipt_; + object_ptr<InputStorePaymentPurpose> purpose_; + + payments_assignPlayMarketTransaction(object_ptr<dataJSON> &&receipt_, object_ptr<InputStorePaymentPurpose> &&purpose_); + + static const std::int32_t ID = -537046829; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_canPurchasePremium final : public Function { + public: + object_ptr<InputStorePaymentPurpose> purpose_; + + explicit payments_canPurchasePremium(object_ptr<InputStorePaymentPurpose> &&purpose_); + + static const std::int32_t ID = -1614700874; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_clearSavedInfo final : public Function { + public: + int32 flags_; + bool credentials_; + bool info_; + enum Flags : std::int32_t { CREDENTIALS_MASK = 1, INFO_MASK = 2 }; + mutable int32 var0; + + payments_clearSavedInfo(int32 flags_, bool credentials_, bool info_); + + static const std::int32_t ID = -667062079; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_exportInvoice final : public Function { + public: + object_ptr<InputMedia> invoice_media_; + + explicit payments_exportInvoice(object_ptr<InputMedia> &&invoice_media_); + + static const std::int32_t ID = 261206117; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<payments_exportedInvoice>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_getBankCardData final : public Function { + public: + string number_; + + explicit payments_getBankCardData(string const &number_); + + static const std::int32_t ID = 779736953; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<payments_bankCardData>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_getPaymentForm final : public Function { + public: + int32 flags_; + object_ptr<InputInvoice> invoice_; + object_ptr<dataJSON> theme_params_; + enum Flags : std::int32_t { THEME_PARAMS_MASK = 1 }; + mutable int32 var0; + + payments_getPaymentForm(int32 flags_, object_ptr<InputInvoice> &&invoice_, object_ptr<dataJSON> &&theme_params_); + + static const std::int32_t ID = 924093883; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<payments_paymentForm>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_getPaymentReceipt final : public Function { + public: + object_ptr<InputPeer> peer_; + int32 msg_id_; + + payments_getPaymentReceipt(object_ptr<InputPeer> &&peer_, int32 msg_id_); + + static const std::int32_t ID = 611897804; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<payments_paymentReceipt>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_getSavedInfo final : public Function { + public: + + static const std::int32_t ID = 578650699; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<payments_savedInfo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_sendPaymentForm final : public Function { + public: + int32 flags_; + int64 form_id_; + object_ptr<InputInvoice> invoice_; + string requested_info_id_; + string shipping_option_id_; + object_ptr<InputPaymentCredentials> credentials_; + int64 tip_amount_; + enum Flags : std::int32_t { REQUESTED_INFO_ID_MASK = 1, SHIPPING_OPTION_ID_MASK = 2, TIP_AMOUNT_MASK = 4 }; + mutable int32 var0; + + payments_sendPaymentForm(int32 flags_, int64 form_id_, object_ptr<InputInvoice> &&invoice_, string const &requested_info_id_, string const &shipping_option_id_, object_ptr<InputPaymentCredentials> &&credentials_, int64 tip_amount_); + + static const std::int32_t ID = 755192367; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<payments_PaymentResult>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class payments_validateRequestedInfo final : public Function { + public: + int32 flags_; + bool save_; + object_ptr<InputInvoice> invoice_; + object_ptr<paymentRequestedInfo> info_; + enum Flags : std::int32_t { SAVE_MASK = 1 }; + mutable int32 var0; + + payments_validateRequestedInfo(int32 flags_, bool save_, object_ptr<InputInvoice> &&invoice_, object_ptr<paymentRequestedInfo> &&info_); + + static const std::int32_t ID = -1228345045; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<payments_validatedRequestedInfo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_acceptCall final : public Function { + public: + object_ptr<inputPhoneCall> peer_; + bytes g_b_; + object_ptr<phoneCallProtocol> protocol_; + + phone_acceptCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_b_, object_ptr<phoneCallProtocol> &&protocol_); + + static const std::int32_t ID = 1003664544; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_phoneCall>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_checkGroupCall final : public Function { + public: + object_ptr<inputGroupCall> call_; + array<int32> sources_; + + phone_checkGroupCall(object_ptr<inputGroupCall> &&call_, array<int32> &&sources_); + + static const std::int32_t ID = -1248003721; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<int32>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_confirmCall final : public Function { + public: + object_ptr<inputPhoneCall> peer_; + bytes g_a_; + int64 key_fingerprint_; + object_ptr<phoneCallProtocol> protocol_; + + phone_confirmCall(object_ptr<inputPhoneCall> &&peer_, bytes &&g_a_, int64 key_fingerprint_, object_ptr<phoneCallProtocol> &&protocol_); + + static const std::int32_t ID = 788404002; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_phoneCall>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_createGroupCall final : public Function { + public: + int32 flags_; + bool rtmp_stream_; + object_ptr<InputPeer> peer_; + int32 random_id_; + string title_; + int32 schedule_date_; + enum Flags : std::int32_t { RTMP_STREAM_MASK = 4, TITLE_MASK = 1, SCHEDULE_DATE_MASK = 2 }; + mutable int32 var0; + + phone_createGroupCall(int32 flags_, bool rtmp_stream_, object_ptr<InputPeer> &&peer_, int32 random_id_, string const &title_, int32 schedule_date_); + + static const std::int32_t ID = 1221445336; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_discardCall final : public Function { + public: + int32 flags_; + bool video_; + object_ptr<inputPhoneCall> peer_; + int32 duration_; + object_ptr<PhoneCallDiscardReason> reason_; + int64 connection_id_; + enum Flags : std::int32_t { VIDEO_MASK = 1 }; + mutable int32 var0; + + phone_discardCall(int32 flags_, bool video_, object_ptr<inputPhoneCall> &&peer_, int32 duration_, object_ptr<PhoneCallDiscardReason> &&reason_, int64 connection_id_); + + static const std::int32_t ID = -1295269440; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_discardGroupCall final : public Function { + public: + object_ptr<inputGroupCall> call_; + + explicit phone_discardGroupCall(object_ptr<inputGroupCall> &&call_); + + static const std::int32_t ID = 2054648117; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_editGroupCallParticipant final : public Function { + public: + int32 flags_; + object_ptr<inputGroupCall> call_; + object_ptr<InputPeer> participant_; + bool muted_; + int32 volume_; + bool raise_hand_; + bool video_stopped_; + bool video_paused_; + bool presentation_paused_; + enum Flags : std::int32_t { MUTED_MASK = 1, VOLUME_MASK = 2, RAISE_HAND_MASK = 4, VIDEO_STOPPED_MASK = 8, VIDEO_PAUSED_MASK = 16, PRESENTATION_PAUSED_MASK = 32 }; + mutable int32 var0; + + phone_editGroupCallParticipant(int32 flags_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&participant_, bool muted_, int32 volume_, bool raise_hand_, bool video_stopped_, bool video_paused_, bool presentation_paused_); + + static const std::int32_t ID = -1524155713; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_editGroupCallTitle final : public Function { + public: + object_ptr<inputGroupCall> call_; + string title_; + + phone_editGroupCallTitle(object_ptr<inputGroupCall> &&call_, string const &title_); + + static const std::int32_t ID = 480685066; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_exportGroupCallInvite final : public Function { + public: + int32 flags_; + bool can_self_unmute_; + object_ptr<inputGroupCall> call_; + enum Flags : std::int32_t { CAN_SELF_UNMUTE_MASK = 1 }; + mutable int32 var0; + + phone_exportGroupCallInvite(int32 flags_, bool can_self_unmute_, object_ptr<inputGroupCall> &&call_); + + static const std::int32_t ID = -425040769; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_exportedGroupCallInvite>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_getCallConfig final : public Function { + public: + + static const std::int32_t ID = 1430593449; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<dataJSON>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_getGroupCall final : public Function { + public: + object_ptr<inputGroupCall> call_; + int32 limit_; + + phone_getGroupCall(object_ptr<inputGroupCall> &&call_, int32 limit_); + + static const std::int32_t ID = 68699611; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_groupCall>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_getGroupCallJoinAs final : public Function { + public: + object_ptr<InputPeer> peer_; + + explicit phone_getGroupCallJoinAs(object_ptr<InputPeer> &&peer_); + + static const std::int32_t ID = -277077702; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_joinAsPeers>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_getGroupCallStreamChannels final : public Function { + public: + object_ptr<inputGroupCall> call_; + + explicit phone_getGroupCallStreamChannels(object_ptr<inputGroupCall> &&call_); + + static const std::int32_t ID = 447879488; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_groupCallStreamChannels>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_getGroupCallStreamRtmpUrl final : public Function { + public: + object_ptr<InputPeer> peer_; + bool revoke_; + + phone_getGroupCallStreamRtmpUrl(object_ptr<InputPeer> &&peer_, bool revoke_); + + static const std::int32_t ID = -558650433; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_groupCallStreamRtmpUrl>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_getGroupParticipants final : public Function { + public: + object_ptr<inputGroupCall> call_; + array<object_ptr<InputPeer>> ids_; + array<int32> sources_; + string offset_; + int32 limit_; + + phone_getGroupParticipants(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputPeer>> &&ids_, array<int32> &&sources_, string const &offset_, int32 limit_); + + static const std::int32_t ID = -984033109; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_groupParticipants>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_inviteToGroupCall final : public Function { + public: + object_ptr<inputGroupCall> call_; + array<object_ptr<InputUser>> users_; + + phone_inviteToGroupCall(object_ptr<inputGroupCall> &&call_, array<object_ptr<InputUser>> &&users_); + + static const std::int32_t ID = 2067345760; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_joinGroupCall final : public Function { + public: + int32 flags_; + bool muted_; + bool video_stopped_; + object_ptr<inputGroupCall> call_; + object_ptr<InputPeer> join_as_; + string invite_hash_; + object_ptr<dataJSON> params_; + enum Flags : std::int32_t { MUTED_MASK = 1, VIDEO_STOPPED_MASK = 4, INVITE_HASH_MASK = 2 }; + mutable int32 var0; + + phone_joinGroupCall(int32 flags_, bool muted_, bool video_stopped_, object_ptr<inputGroupCall> &&call_, object_ptr<InputPeer> &&join_as_, string const &invite_hash_, object_ptr<dataJSON> &¶ms_); + + static const std::int32_t ID = -1322057861; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_joinGroupCallPresentation final : public Function { + public: + object_ptr<inputGroupCall> call_; + object_ptr<dataJSON> params_; + + phone_joinGroupCallPresentation(object_ptr<inputGroupCall> &&call_, object_ptr<dataJSON> &¶ms_); + + static const std::int32_t ID = -873829436; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_leaveGroupCall final : public Function { + public: + object_ptr<inputGroupCall> call_; + int32 source_; + + phone_leaveGroupCall(object_ptr<inputGroupCall> &&call_, int32 source_); + + static const std::int32_t ID = 1342404601; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_leaveGroupCallPresentation final : public Function { + public: + object_ptr<inputGroupCall> call_; + + explicit phone_leaveGroupCallPresentation(object_ptr<inputGroupCall> &&call_); + + static const std::int32_t ID = 475058500; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_receivedCall final : public Function { + public: + object_ptr<inputPhoneCall> peer_; + + explicit phone_receivedCall(object_ptr<inputPhoneCall> &&peer_); + + static const std::int32_t ID = 399855457; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_requestCall final : public Function { + public: + int32 flags_; + bool video_; + object_ptr<InputUser> user_id_; + int32 random_id_; + bytes g_a_hash_; + object_ptr<phoneCallProtocol> protocol_; + enum Flags : std::int32_t { VIDEO_MASK = 1 }; + mutable int32 var0; + + phone_requestCall(int32 flags_, bool video_, object_ptr<InputUser> &&user_id_, int32 random_id_, bytes &&g_a_hash_, object_ptr<phoneCallProtocol> &&protocol_); + + static const std::int32_t ID = 1124046573; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<phone_phoneCall>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_saveCallDebug final : public Function { + public: + object_ptr<inputPhoneCall> peer_; + object_ptr<dataJSON> debug_; + + phone_saveCallDebug(object_ptr<inputPhoneCall> &&peer_, object_ptr<dataJSON> &&debug_); + + static const std::int32_t ID = 662363518; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_saveCallLog final : public Function { + public: + object_ptr<inputPhoneCall> peer_; + object_ptr<InputFile> file_; + + phone_saveCallLog(object_ptr<inputPhoneCall> &&peer_, object_ptr<InputFile> &&file_); + + static const std::int32_t ID = 1092913030; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_saveDefaultGroupCallJoinAs final : public Function { + public: + object_ptr<InputPeer> peer_; + object_ptr<InputPeer> join_as_; + + phone_saveDefaultGroupCallJoinAs(object_ptr<InputPeer> &&peer_, object_ptr<InputPeer> &&join_as_); + + static const std::int32_t ID = 1465786252; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_sendSignalingData final : public Function { + public: + object_ptr<inputPhoneCall> peer_; + bytes data_; + + phone_sendSignalingData(object_ptr<inputPhoneCall> &&peer_, bytes &&data_); + + static const std::int32_t ID = -8744061; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_setCallRating final : public Function { + public: + int32 flags_; + bool user_initiative_; + object_ptr<inputPhoneCall> peer_; + int32 rating_; + string comment_; + enum Flags : std::int32_t { USER_INITIATIVE_MASK = 1 }; + mutable int32 var0; + + phone_setCallRating(int32 flags_, bool user_initiative_, object_ptr<inputPhoneCall> &&peer_, int32 rating_, string const &comment_); + + static const std::int32_t ID = 1508562471; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_startScheduledGroupCall final : public Function { + public: + object_ptr<inputGroupCall> call_; + + explicit phone_startScheduledGroupCall(object_ptr<inputGroupCall> &&call_); + + static const std::int32_t ID = 1451287362; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_toggleGroupCallRecord final : public Function { + public: + int32 flags_; + bool start_; + bool video_; + object_ptr<inputGroupCall> call_; + string title_; + bool video_portrait_; + enum Flags : std::int32_t { START_MASK = 1, VIDEO_MASK = 4, TITLE_MASK = 2, VIDEO_PORTRAIT_MASK = 4 }; + mutable int32 var0; + + phone_toggleGroupCallRecord(int32 flags_, bool start_, bool video_, object_ptr<inputGroupCall> &&call_, string const &title_, bool video_portrait_); + + static const std::int32_t ID = -248985848; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_toggleGroupCallSettings final : public Function { + public: + int32 flags_; + bool reset_invite_hash_; + object_ptr<inputGroupCall> call_; + bool join_muted_; + enum Flags : std::int32_t { RESET_INVITE_HASH_MASK = 2, JOIN_MUTED_MASK = 1 }; + mutable int32 var0; + + phone_toggleGroupCallSettings(int32 flags_, bool reset_invite_hash_, object_ptr<inputGroupCall> &&call_, bool join_muted_); + + static const std::int32_t ID = 1958458429; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class phone_toggleGroupCallStartSubscription final : public Function { + public: + object_ptr<inputGroupCall> call_; + bool subscribed_; + + phone_toggleGroupCallStartSubscription(object_ptr<inputGroupCall> &&call_, bool subscribed_); + + static const std::int32_t ID = 563885286; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<Updates>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class photos_deletePhotos final : public Function { + public: + array<object_ptr<InputPhoto>> id_; + + explicit photos_deletePhotos(array<object_ptr<InputPhoto>> &&id_); + + static const std::int32_t ID = -2016444625; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<int64>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class photos_getUserPhotos final : public Function { + public: + object_ptr<InputUser> user_id_; + int32 offset_; + int64 max_id_; + int32 limit_; + + photos_getUserPhotos(object_ptr<InputUser> &&user_id_, int32 offset_, int64 max_id_, int32 limit_); + + static const std::int32_t ID = -1848823128; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<photos_Photos>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class photos_updateProfilePhoto final : public Function { + public: + object_ptr<InputPhoto> id_; + + explicit photos_updateProfilePhoto(object_ptr<InputPhoto> &&id_); + + static const std::int32_t ID = 1926525996; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<photos_photo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class photos_uploadProfilePhoto final : public Function { + public: + int32 flags_; + object_ptr<InputFile> file_; + object_ptr<InputFile> video_; + double video_start_ts_; + enum Flags : std::int32_t { FILE_MASK = 1, VIDEO_MASK = 2, VIDEO_START_TS_MASK = 4 }; + mutable int32 var0; + + photos_uploadProfilePhoto(int32 flags_, object_ptr<InputFile> &&file_, object_ptr<InputFile> &&video_, double video_start_ts_); + + static const std::int32_t ID = -1980559511; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<photos_photo>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stats_getBroadcastStats final : public Function { + public: + int32 flags_; + bool dark_; + object_ptr<InputChannel> channel_; + enum Flags : std::int32_t { DARK_MASK = 1 }; + mutable int32 var0; + + stats_getBroadcastStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = -1421720550; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stats_broadcastStats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stats_getMegagroupStats final : public Function { + public: + int32 flags_; + bool dark_; + object_ptr<InputChannel> channel_; + enum Flags : std::int32_t { DARK_MASK = 1 }; + mutable int32 var0; + + stats_getMegagroupStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_); + + static const std::int32_t ID = -589330937; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stats_megagroupStats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stats_getMessagePublicForwards final : public Function { + public: + object_ptr<InputChannel> channel_; + int32 msg_id_; + int32 offset_rate_; + object_ptr<InputPeer> offset_peer_; + int32 offset_id_; + int32 limit_; + + stats_getMessagePublicForwards(object_ptr<InputChannel> &&channel_, int32 msg_id_, int32 offset_rate_, object_ptr<InputPeer> &&offset_peer_, int32 offset_id_, int32 limit_); + + static const std::int32_t ID = 1445996571; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_Messages>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stats_getMessageStats final : public Function { + public: + int32 flags_; + bool dark_; + object_ptr<InputChannel> channel_; + int32 msg_id_; + enum Flags : std::int32_t { DARK_MASK = 1 }; + mutable int32 var0; + + stats_getMessageStats(int32 flags_, bool dark_, object_ptr<InputChannel> &&channel_, int32 msg_id_); + + static const std::int32_t ID = -1226791947; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stats_messageStats>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stats_loadAsyncGraph final : public Function { + public: + int32 flags_; + string token_; + int64 x_; + enum Flags : std::int32_t { X_MASK = 1 }; + mutable int32 var0; + + stats_loadAsyncGraph(int32 flags_, string const &token_, int64 x_); + + static const std::int32_t ID = 1646092192; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<StatsGraph>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stickers_addStickerToSet final : public Function { + public: + object_ptr<InputStickerSet> stickerset_; + object_ptr<inputStickerSetItem> sticker_; + + stickers_addStickerToSet(object_ptr<InputStickerSet> &&stickerset_, object_ptr<inputStickerSetItem> &&sticker_); + + static const std::int32_t ID = -2041315650; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_StickerSet>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stickers_changeStickerPosition final : public Function { + public: + object_ptr<InputDocument> sticker_; + int32 position_; + + stickers_changeStickerPosition(object_ptr<InputDocument> &&sticker_, int32 position_); + + static const std::int32_t ID = -4795190; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_StickerSet>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stickers_checkShortName final : public Function { + public: + string short_name_; + + explicit stickers_checkShortName(string const &short_name_); + + static const std::int32_t ID = 676017721; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stickers_createStickerSet final : public Function { + public: + int32 flags_; + bool masks_; + bool animated_; + bool videos_; + object_ptr<InputUser> user_id_; + string title_; + string short_name_; + object_ptr<InputDocument> thumb_; + array<object_ptr<inputStickerSetItem>> stickers_; + string software_; + enum Flags : std::int32_t { MASKS_MASK = 1, ANIMATED_MASK = 2, VIDEOS_MASK = 16, THUMB_MASK = 4, SOFTWARE_MASK = 8 }; + mutable int32 var0; + + stickers_createStickerSet(int32 flags_, bool masks_, bool animated_, bool videos_, object_ptr<InputUser> &&user_id_, string const &title_, string const &short_name_, object_ptr<InputDocument> &&thumb_, array<object_ptr<inputStickerSetItem>> &&stickers_, string const &software_); + + static const std::int32_t ID = -1876841625; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_StickerSet>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stickers_removeStickerFromSet final : public Function { + public: + object_ptr<InputDocument> sticker_; + + explicit stickers_removeStickerFromSet(object_ptr<InputDocument> &&sticker_); + + static const std::int32_t ID = -143257775; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_StickerSet>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stickers_setStickerSetThumb final : public Function { + public: + object_ptr<InputStickerSet> stickerset_; + object_ptr<InputDocument> thumb_; + + stickers_setStickerSetThumb(object_ptr<InputStickerSet> &&stickerset_, object_ptr<InputDocument> &&thumb_); + + static const std::int32_t ID = -1707717072; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<messages_StickerSet>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class stickers_suggestShortName final : public Function { + public: + string title_; + + explicit stickers_suggestShortName(string const &title_); + + static const std::int32_t ID = 1303364867; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<stickers_suggestedShortName>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class test_parseInputAppEvent final : public Function { + public: + + static const std::int32_t ID = -1156741135; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<inputAppEvent>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class test_useConfigSimple final : public Function { + public: + + static const std::int32_t ID = -105401795; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<help_configSimple>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class test_useError final : public Function { + public: + + static const std::int32_t ID = -294277375; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<error>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class updates_getChannelDifference final : public Function { + public: + int32 flags_; + bool force_; + object_ptr<InputChannel> channel_; + object_ptr<ChannelMessagesFilter> filter_; + int32 pts_; + int32 limit_; + enum Flags : std::int32_t { FORCE_MASK = 1 }; + mutable int32 var0; + + updates_getChannelDifference(int32 flags_, bool force_, object_ptr<InputChannel> &&channel_, object_ptr<ChannelMessagesFilter> &&filter_, int32 pts_, int32 limit_); + + static const std::int32_t ID = 51854712; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<updates_ChannelDifference>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class updates_getDifference final : public Function { + public: + int32 flags_; + int32 pts_; + int32 pts_total_limit_; + int32 date_; + int32 qts_; + enum Flags : std::int32_t { PTS_TOTAL_LIMIT_MASK = 1 }; + mutable int32 var0; + + updates_getDifference(int32 flags_, int32 pts_, int32 pts_total_limit_, int32 date_, int32 qts_); + + static const std::int32_t ID = 630429265; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<updates_Difference>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class updates_getState final : public Function { + public: + + static const std::int32_t ID = -304838614; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<updates_state>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_getCdnFile final : public Function { + public: + bytes file_token_; + int64 offset_; + int32 limit_; + + upload_getCdnFile(bytes &&file_token_, int64 offset_, int32 limit_); + + static const std::int32_t ID = 962554330; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<upload_CdnFile>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_getCdnFileHashes final : public Function { + public: + bytes file_token_; + int64 offset_; + + upload_getCdnFileHashes(bytes &&file_token_, int64 offset_); + + static const std::int32_t ID = -1847836879; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<fileHash>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_getFile final : public Function { + public: + int32 flags_; + bool precise_; + bool cdn_supported_; + object_ptr<InputFileLocation> location_; + int64 offset_; + int32 limit_; + enum Flags : std::int32_t { PRECISE_MASK = 1, CDN_SUPPORTED_MASK = 2 }; + mutable int32 var0; + + upload_getFile(int32 flags_, bool precise_, bool cdn_supported_, object_ptr<InputFileLocation> &&location_, int64 offset_, int32 limit_); + + static const std::int32_t ID = -1101843010; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<upload_File>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_getFileHashes final : public Function { + public: + object_ptr<InputFileLocation> location_; + int64 offset_; + + upload_getFileHashes(object_ptr<InputFileLocation> &&location_, int64 offset_); + + static const std::int32_t ID = -1856595926; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<fileHash>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_getWebFile final : public Function { + public: + object_ptr<InputWebFileLocation> location_; + int32 offset_; + int32 limit_; + + upload_getWebFile(object_ptr<InputWebFileLocation> &&location_, int32 offset_, int32 limit_); + + static const std::int32_t ID = 619086221; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<upload_webFile>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_reuploadCdnFile final : public Function { + public: + bytes file_token_; + bytes request_token_; + + upload_reuploadCdnFile(bytes &&file_token_, bytes &&request_token_); + + static const std::int32_t ID = -1691921240; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<fileHash>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_saveBigFilePart final : public Function { + public: + int64 file_id_; + int32 file_part_; + int32 file_total_parts_; + bytes bytes_; + + upload_saveBigFilePart(int64 file_id_, int32 file_part_, int32 file_total_parts_, bytes &&bytes_); + + static const std::int32_t ID = -562337987; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class upload_saveFilePart final : public Function { + public: + int64 file_id_; + int32 file_part_; + bytes bytes_; + + upload_saveFilePart(int64 file_id_, int32 file_part_, bytes &&bytes_); + + static const std::int32_t ID = -1291540959; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class users_getFullUser final : public Function { + public: + object_ptr<InputUser> id_; + + explicit users_getFullUser(object_ptr<InputUser> &&id_); + + static const std::int32_t ID = -1240508136; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = object_ptr<users_userFull>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class users_getUsers final : public Function { + public: + array<object_ptr<InputUser>> id_; + + explicit users_getUsers(array<object_ptr<InputUser>> &&id_); + + static const std::int32_t ID = 227648840; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = array<object_ptr<User>>; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +class users_setSecureValueErrors final : public Function { + public: + object_ptr<InputUser> id_; + array<object_ptr<SecureValueError>> errors_; + + users_setSecureValueErrors(object_ptr<InputUser> &&id_, array<object_ptr<SecureValueError>> &&errors_); + + static const std::int32_t ID = -1865902923; + std::int32_t get_id() const final { + return ID; + } + + using ReturnType = bool; + + void store(TlStorerCalcLength &s) const final; + + void store(TlStorerUnsafe &s) const final; + + void store(TlStorerToString &s, const char *field_name) const final; + + static ReturnType fetch_result(TlBufferParser &p); +}; + +} // namespace telegram_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.hpp b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.hpp new file mode 100644 index 0000000000..f339ea4e81 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/td/telegram/telegram_api.hpp @@ -0,0 +1,9507 @@ +#pragma once + +/** + * \file + * Contains downcast_call methods for calling a function object on downcasted to + * the most derived class TDLib API object. + */ +#include "telegram_api.h" + +namespace td { +namespace telegram_api { + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Object &obj, const T &func) { + switch (obj.get_id()) { + case accessPointRule::ID: + func(static_cast<accessPointRule &>(obj)); + return true; + case accountDaysTTL::ID: + func(static_cast<accountDaysTTL &>(obj)); + return true; + case attachMenuBot::ID: + func(static_cast<attachMenuBot &>(obj)); + return true; + case attachMenuBotIcon::ID: + func(static_cast<attachMenuBotIcon &>(obj)); + return true; + case attachMenuBotIconColor::ID: + func(static_cast<attachMenuBotIconColor &>(obj)); + return true; + case attachMenuBotsNotModified::ID: + func(static_cast<attachMenuBotsNotModified &>(obj)); + return true; + case attachMenuBots::ID: + func(static_cast<attachMenuBots &>(obj)); + return true; + case attachMenuBotsBot::ID: + func(static_cast<attachMenuBotsBot &>(obj)); + return true; + case attachMenuPeerTypeSameBotPM::ID: + func(static_cast<attachMenuPeerTypeSameBotPM &>(obj)); + return true; + case attachMenuPeerTypeBotPM::ID: + func(static_cast<attachMenuPeerTypeBotPM &>(obj)); + return true; + case attachMenuPeerTypePM::ID: + func(static_cast<attachMenuPeerTypePM &>(obj)); + return true; + case attachMenuPeerTypeChat::ID: + func(static_cast<attachMenuPeerTypeChat &>(obj)); + return true; + case attachMenuPeerTypeBroadcast::ID: + func(static_cast<attachMenuPeerTypeBroadcast &>(obj)); + return true; + case authorization::ID: + func(static_cast<authorization &>(obj)); + return true; + case autoDownloadSettings::ID: + func(static_cast<autoDownloadSettings &>(obj)); + return true; + case availableReaction::ID: + func(static_cast<availableReaction &>(obj)); + return true; + case bankCardOpenUrl::ID: + func(static_cast<bankCardOpenUrl &>(obj)); + return true; + case baseThemeClassic::ID: + func(static_cast<baseThemeClassic &>(obj)); + return true; + case baseThemeDay::ID: + func(static_cast<baseThemeDay &>(obj)); + return true; + case baseThemeNight::ID: + func(static_cast<baseThemeNight &>(obj)); + return true; + case baseThemeTinted::ID: + func(static_cast<baseThemeTinted &>(obj)); + return true; + case baseThemeArctic::ID: + func(static_cast<baseThemeArctic &>(obj)); + return true; + case botCommand::ID: + func(static_cast<botCommand &>(obj)); + return true; + case botCommandScopeDefault::ID: + func(static_cast<botCommandScopeDefault &>(obj)); + return true; + case botCommandScopeUsers::ID: + func(static_cast<botCommandScopeUsers &>(obj)); + return true; + case botCommandScopeChats::ID: + func(static_cast<botCommandScopeChats &>(obj)); + return true; + case botCommandScopeChatAdmins::ID: + func(static_cast<botCommandScopeChatAdmins &>(obj)); + return true; + case botCommandScopePeer::ID: + func(static_cast<botCommandScopePeer &>(obj)); + return true; + case botCommandScopePeerAdmins::ID: + func(static_cast<botCommandScopePeerAdmins &>(obj)); + return true; + case botCommandScopePeerUser::ID: + func(static_cast<botCommandScopePeerUser &>(obj)); + return true; + case botInfo::ID: + func(static_cast<botInfo &>(obj)); + return true; + case botInlineMessageMediaAuto::ID: + func(static_cast<botInlineMessageMediaAuto &>(obj)); + return true; + case botInlineMessageText::ID: + func(static_cast<botInlineMessageText &>(obj)); + return true; + case botInlineMessageMediaGeo::ID: + func(static_cast<botInlineMessageMediaGeo &>(obj)); + return true; + case botInlineMessageMediaVenue::ID: + func(static_cast<botInlineMessageMediaVenue &>(obj)); + return true; + case botInlineMessageMediaContact::ID: + func(static_cast<botInlineMessageMediaContact &>(obj)); + return true; + case botInlineMessageMediaInvoice::ID: + func(static_cast<botInlineMessageMediaInvoice &>(obj)); + return true; + case botInlineResult::ID: + func(static_cast<botInlineResult &>(obj)); + return true; + case botInlineMediaResult::ID: + func(static_cast<botInlineMediaResult &>(obj)); + return true; + case botMenuButtonDefault::ID: + func(static_cast<botMenuButtonDefault &>(obj)); + return true; + case botMenuButtonCommands::ID: + func(static_cast<botMenuButtonCommands &>(obj)); + return true; + case botMenuButton::ID: + func(static_cast<botMenuButton &>(obj)); + return true; + case cdnConfig::ID: + func(static_cast<cdnConfig &>(obj)); + return true; + case cdnPublicKey::ID: + func(static_cast<cdnPublicKey &>(obj)); + return true; + case channelAdminLogEvent::ID: + func(static_cast<channelAdminLogEvent &>(obj)); + return true; + case channelAdminLogEventActionChangeTitle::ID: + func(static_cast<channelAdminLogEventActionChangeTitle &>(obj)); + return true; + case channelAdminLogEventActionChangeAbout::ID: + func(static_cast<channelAdminLogEventActionChangeAbout &>(obj)); + return true; + case channelAdminLogEventActionChangeUsername::ID: + func(static_cast<channelAdminLogEventActionChangeUsername &>(obj)); + return true; + case channelAdminLogEventActionChangePhoto::ID: + func(static_cast<channelAdminLogEventActionChangePhoto &>(obj)); + return true; + case channelAdminLogEventActionToggleInvites::ID: + func(static_cast<channelAdminLogEventActionToggleInvites &>(obj)); + return true; + case channelAdminLogEventActionToggleSignatures::ID: + func(static_cast<channelAdminLogEventActionToggleSignatures &>(obj)); + return true; + case channelAdminLogEventActionUpdatePinned::ID: + func(static_cast<channelAdminLogEventActionUpdatePinned &>(obj)); + return true; + case channelAdminLogEventActionEditMessage::ID: + func(static_cast<channelAdminLogEventActionEditMessage &>(obj)); + return true; + case channelAdminLogEventActionDeleteMessage::ID: + func(static_cast<channelAdminLogEventActionDeleteMessage &>(obj)); + return true; + case channelAdminLogEventActionParticipantJoin::ID: + func(static_cast<channelAdminLogEventActionParticipantJoin &>(obj)); + return true; + case channelAdminLogEventActionParticipantLeave::ID: + func(static_cast<channelAdminLogEventActionParticipantLeave &>(obj)); + return true; + case channelAdminLogEventActionParticipantInvite::ID: + func(static_cast<channelAdminLogEventActionParticipantInvite &>(obj)); + return true; + case channelAdminLogEventActionParticipantToggleBan::ID: + func(static_cast<channelAdminLogEventActionParticipantToggleBan &>(obj)); + return true; + case channelAdminLogEventActionParticipantToggleAdmin::ID: + func(static_cast<channelAdminLogEventActionParticipantToggleAdmin &>(obj)); + return true; + case channelAdminLogEventActionChangeStickerSet::ID: + func(static_cast<channelAdminLogEventActionChangeStickerSet &>(obj)); + return true; + case channelAdminLogEventActionTogglePreHistoryHidden::ID: + func(static_cast<channelAdminLogEventActionTogglePreHistoryHidden &>(obj)); + return true; + case channelAdminLogEventActionDefaultBannedRights::ID: + func(static_cast<channelAdminLogEventActionDefaultBannedRights &>(obj)); + return true; + case channelAdminLogEventActionStopPoll::ID: + func(static_cast<channelAdminLogEventActionStopPoll &>(obj)); + return true; + case channelAdminLogEventActionChangeLinkedChat::ID: + func(static_cast<channelAdminLogEventActionChangeLinkedChat &>(obj)); + return true; + case channelAdminLogEventActionChangeLocation::ID: + func(static_cast<channelAdminLogEventActionChangeLocation &>(obj)); + return true; + case channelAdminLogEventActionToggleSlowMode::ID: + func(static_cast<channelAdminLogEventActionToggleSlowMode &>(obj)); + return true; + case channelAdminLogEventActionStartGroupCall::ID: + func(static_cast<channelAdminLogEventActionStartGroupCall &>(obj)); + return true; + case channelAdminLogEventActionDiscardGroupCall::ID: + func(static_cast<channelAdminLogEventActionDiscardGroupCall &>(obj)); + return true; + case channelAdminLogEventActionParticipantMute::ID: + func(static_cast<channelAdminLogEventActionParticipantMute &>(obj)); + return true; + case channelAdminLogEventActionParticipantUnmute::ID: + func(static_cast<channelAdminLogEventActionParticipantUnmute &>(obj)); + return true; + case channelAdminLogEventActionToggleGroupCallSetting::ID: + func(static_cast<channelAdminLogEventActionToggleGroupCallSetting &>(obj)); + return true; + case channelAdminLogEventActionParticipantJoinByInvite::ID: + func(static_cast<channelAdminLogEventActionParticipantJoinByInvite &>(obj)); + return true; + case channelAdminLogEventActionExportedInviteDelete::ID: + func(static_cast<channelAdminLogEventActionExportedInviteDelete &>(obj)); + return true; + case channelAdminLogEventActionExportedInviteRevoke::ID: + func(static_cast<channelAdminLogEventActionExportedInviteRevoke &>(obj)); + return true; + case channelAdminLogEventActionExportedInviteEdit::ID: + func(static_cast<channelAdminLogEventActionExportedInviteEdit &>(obj)); + return true; + case channelAdminLogEventActionParticipantVolume::ID: + func(static_cast<channelAdminLogEventActionParticipantVolume &>(obj)); + return true; + case channelAdminLogEventActionChangeHistoryTTL::ID: + func(static_cast<channelAdminLogEventActionChangeHistoryTTL &>(obj)); + return true; + case channelAdminLogEventActionParticipantJoinByRequest::ID: + func(static_cast<channelAdminLogEventActionParticipantJoinByRequest &>(obj)); + return true; + case channelAdminLogEventActionToggleNoForwards::ID: + func(static_cast<channelAdminLogEventActionToggleNoForwards &>(obj)); + return true; + case channelAdminLogEventActionSendMessage::ID: + func(static_cast<channelAdminLogEventActionSendMessage &>(obj)); + return true; + case channelAdminLogEventActionChangeAvailableReactions::ID: + func(static_cast<channelAdminLogEventActionChangeAvailableReactions &>(obj)); + return true; + case channelAdminLogEventActionChangeUsernames::ID: + func(static_cast<channelAdminLogEventActionChangeUsernames &>(obj)); + return true; + case channelAdminLogEventActionToggleForum::ID: + func(static_cast<channelAdminLogEventActionToggleForum &>(obj)); + return true; + case channelAdminLogEventActionCreateTopic::ID: + func(static_cast<channelAdminLogEventActionCreateTopic &>(obj)); + return true; + case channelAdminLogEventActionEditTopic::ID: + func(static_cast<channelAdminLogEventActionEditTopic &>(obj)); + return true; + case channelAdminLogEventActionDeleteTopic::ID: + func(static_cast<channelAdminLogEventActionDeleteTopic &>(obj)); + return true; + case channelAdminLogEventActionPinTopic::ID: + func(static_cast<channelAdminLogEventActionPinTopic &>(obj)); + return true; + case channelAdminLogEventsFilter::ID: + func(static_cast<channelAdminLogEventsFilter &>(obj)); + return true; + case channelLocationEmpty::ID: + func(static_cast<channelLocationEmpty &>(obj)); + return true; + case channelLocation::ID: + func(static_cast<channelLocation &>(obj)); + return true; + case channelMessagesFilterEmpty::ID: + func(static_cast<channelMessagesFilterEmpty &>(obj)); + return true; + case channelMessagesFilter::ID: + func(static_cast<channelMessagesFilter &>(obj)); + return true; + case channelParticipant::ID: + func(static_cast<channelParticipant &>(obj)); + return true; + case channelParticipantSelf::ID: + func(static_cast<channelParticipantSelf &>(obj)); + return true; + case channelParticipantCreator::ID: + func(static_cast<channelParticipantCreator &>(obj)); + return true; + case channelParticipantAdmin::ID: + func(static_cast<channelParticipantAdmin &>(obj)); + return true; + case channelParticipantBanned::ID: + func(static_cast<channelParticipantBanned &>(obj)); + return true; + case channelParticipantLeft::ID: + func(static_cast<channelParticipantLeft &>(obj)); + return true; + case channelParticipantsRecent::ID: + func(static_cast<channelParticipantsRecent &>(obj)); + return true; + case channelParticipantsAdmins::ID: + func(static_cast<channelParticipantsAdmins &>(obj)); + return true; + case channelParticipantsKicked::ID: + func(static_cast<channelParticipantsKicked &>(obj)); + return true; + case channelParticipantsBots::ID: + func(static_cast<channelParticipantsBots &>(obj)); + return true; + case channelParticipantsBanned::ID: + func(static_cast<channelParticipantsBanned &>(obj)); + return true; + case channelParticipantsSearch::ID: + func(static_cast<channelParticipantsSearch &>(obj)); + return true; + case channelParticipantsContacts::ID: + func(static_cast<channelParticipantsContacts &>(obj)); + return true; + case channelParticipantsMentions::ID: + func(static_cast<channelParticipantsMentions &>(obj)); + return true; + case chatEmpty::ID: + func(static_cast<chatEmpty &>(obj)); + return true; + case chat::ID: + func(static_cast<chat &>(obj)); + return true; + case chatForbidden::ID: + func(static_cast<chatForbidden &>(obj)); + return true; + case channel::ID: + func(static_cast<channel &>(obj)); + return true; + case channelForbidden::ID: + func(static_cast<channelForbidden &>(obj)); + return true; + case chatAdminRights::ID: + func(static_cast<chatAdminRights &>(obj)); + return true; + case chatAdminWithInvites::ID: + func(static_cast<chatAdminWithInvites &>(obj)); + return true; + case chatBannedRights::ID: + func(static_cast<chatBannedRights &>(obj)); + return true; + case chatFull::ID: + func(static_cast<chatFull &>(obj)); + return true; + case channelFull::ID: + func(static_cast<channelFull &>(obj)); + return true; + case chatInviteAlready::ID: + func(static_cast<chatInviteAlready &>(obj)); + return true; + case chatInvite::ID: + func(static_cast<chatInvite &>(obj)); + return true; + case chatInvitePeek::ID: + func(static_cast<chatInvitePeek &>(obj)); + return true; + case chatInviteImporter::ID: + func(static_cast<chatInviteImporter &>(obj)); + return true; + case chatOnlines::ID: + func(static_cast<chatOnlines &>(obj)); + return true; + case chatParticipant::ID: + func(static_cast<chatParticipant &>(obj)); + return true; + case chatParticipantCreator::ID: + func(static_cast<chatParticipantCreator &>(obj)); + return true; + case chatParticipantAdmin::ID: + func(static_cast<chatParticipantAdmin &>(obj)); + return true; + case chatParticipantsForbidden::ID: + func(static_cast<chatParticipantsForbidden &>(obj)); + return true; + case chatParticipants::ID: + func(static_cast<chatParticipants &>(obj)); + return true; + case chatPhotoEmpty::ID: + func(static_cast<chatPhotoEmpty &>(obj)); + return true; + case chatPhoto::ID: + func(static_cast<chatPhoto &>(obj)); + return true; + case chatReactionsNone::ID: + func(static_cast<chatReactionsNone &>(obj)); + return true; + case chatReactionsAll::ID: + func(static_cast<chatReactionsAll &>(obj)); + return true; + case chatReactionsSome::ID: + func(static_cast<chatReactionsSome &>(obj)); + return true; + case codeSettings::ID: + func(static_cast<codeSettings &>(obj)); + return true; + case config::ID: + func(static_cast<config &>(obj)); + return true; + case contact::ID: + func(static_cast<contact &>(obj)); + return true; + case contactStatus::ID: + func(static_cast<contactStatus &>(obj)); + return true; + case dataJSON::ID: + func(static_cast<dataJSON &>(obj)); + return true; + case dcOption::ID: + func(static_cast<dcOption &>(obj)); + return true; + case dialog::ID: + func(static_cast<dialog &>(obj)); + return true; + case dialogFolder::ID: + func(static_cast<dialogFolder &>(obj)); + return true; + case dialogFilter::ID: + func(static_cast<dialogFilter &>(obj)); + return true; + case dialogFilterDefault::ID: + func(static_cast<dialogFilterDefault &>(obj)); + return true; + case dialogFilterSuggested::ID: + func(static_cast<dialogFilterSuggested &>(obj)); + return true; + case dialogPeer::ID: + func(static_cast<dialogPeer &>(obj)); + return true; + case dialogPeerFolder::ID: + func(static_cast<dialogPeerFolder &>(obj)); + return true; + case documentEmpty::ID: + func(static_cast<documentEmpty &>(obj)); + return true; + case document::ID: + func(static_cast<document &>(obj)); + return true; + case documentAttributeImageSize::ID: + func(static_cast<documentAttributeImageSize &>(obj)); + return true; + case documentAttributeAnimated::ID: + func(static_cast<documentAttributeAnimated &>(obj)); + return true; + case documentAttributeSticker::ID: + func(static_cast<documentAttributeSticker &>(obj)); + return true; + case documentAttributeVideo::ID: + func(static_cast<documentAttributeVideo &>(obj)); + return true; + case documentAttributeAudio::ID: + func(static_cast<documentAttributeAudio &>(obj)); + return true; + case documentAttributeFilename::ID: + func(static_cast<documentAttributeFilename &>(obj)); + return true; + case documentAttributeHasStickers::ID: + func(static_cast<documentAttributeHasStickers &>(obj)); + return true; + case documentAttributeCustomEmoji::ID: + func(static_cast<documentAttributeCustomEmoji &>(obj)); + return true; + case draftMessageEmpty::ID: + func(static_cast<draftMessageEmpty &>(obj)); + return true; + case draftMessage::ID: + func(static_cast<draftMessage &>(obj)); + return true; + case emailVerificationCode::ID: + func(static_cast<emailVerificationCode &>(obj)); + return true; + case emailVerificationGoogle::ID: + func(static_cast<emailVerificationGoogle &>(obj)); + return true; + case emailVerificationApple::ID: + func(static_cast<emailVerificationApple &>(obj)); + return true; + case emailVerifyPurposeLoginSetup::ID: + func(static_cast<emailVerifyPurposeLoginSetup &>(obj)); + return true; + case emailVerifyPurposeLoginChange::ID: + func(static_cast<emailVerifyPurposeLoginChange &>(obj)); + return true; + case emailVerifyPurposePassport::ID: + func(static_cast<emailVerifyPurposePassport &>(obj)); + return true; + case emojiKeyword::ID: + func(static_cast<emojiKeyword &>(obj)); + return true; + case emojiKeywordDeleted::ID: + func(static_cast<emojiKeywordDeleted &>(obj)); + return true; + case emojiKeywordsDifference::ID: + func(static_cast<emojiKeywordsDifference &>(obj)); + return true; + case emojiLanguage::ID: + func(static_cast<emojiLanguage &>(obj)); + return true; + case emojiStatusEmpty::ID: + func(static_cast<emojiStatusEmpty &>(obj)); + return true; + case emojiStatus::ID: + func(static_cast<emojiStatus &>(obj)); + return true; + case emojiStatusUntil::ID: + func(static_cast<emojiStatusUntil &>(obj)); + return true; + case emojiURL::ID: + func(static_cast<emojiURL &>(obj)); + return true; + case encryptedChatEmpty::ID: + func(static_cast<encryptedChatEmpty &>(obj)); + return true; + case encryptedChatWaiting::ID: + func(static_cast<encryptedChatWaiting &>(obj)); + return true; + case encryptedChatRequested::ID: + func(static_cast<encryptedChatRequested &>(obj)); + return true; + case encryptedChat::ID: + func(static_cast<encryptedChat &>(obj)); + return true; + case encryptedChatDiscarded::ID: + func(static_cast<encryptedChatDiscarded &>(obj)); + return true; + case encryptedFileEmpty::ID: + func(static_cast<encryptedFileEmpty &>(obj)); + return true; + case encryptedFile::ID: + func(static_cast<encryptedFile &>(obj)); + return true; + case encryptedMessage::ID: + func(static_cast<encryptedMessage &>(obj)); + return true; + case encryptedMessageService::ID: + func(static_cast<encryptedMessageService &>(obj)); + return true; + case error::ID: + func(static_cast<error &>(obj)); + return true; + case chatInviteExported::ID: + func(static_cast<chatInviteExported &>(obj)); + return true; + case chatInvitePublicJoinRequests::ID: + func(static_cast<chatInvitePublicJoinRequests &>(obj)); + return true; + case exportedMessageLink::ID: + func(static_cast<exportedMessageLink &>(obj)); + return true; + case fileHash::ID: + func(static_cast<fileHash &>(obj)); + return true; + case folder::ID: + func(static_cast<folder &>(obj)); + return true; + case folderPeer::ID: + func(static_cast<folderPeer &>(obj)); + return true; + case forumTopicDeleted::ID: + func(static_cast<forumTopicDeleted &>(obj)); + return true; + case forumTopic::ID: + func(static_cast<forumTopic &>(obj)); + return true; + case game::ID: + func(static_cast<game &>(obj)); + return true; + case geoPointEmpty::ID: + func(static_cast<geoPointEmpty &>(obj)); + return true; + case geoPoint::ID: + func(static_cast<geoPoint &>(obj)); + return true; + case globalPrivacySettings::ID: + func(static_cast<globalPrivacySettings &>(obj)); + return true; + case groupCallDiscarded::ID: + func(static_cast<groupCallDiscarded &>(obj)); + return true; + case groupCall::ID: + func(static_cast<groupCall &>(obj)); + return true; + case groupCallParticipant::ID: + func(static_cast<groupCallParticipant &>(obj)); + return true; + case groupCallParticipantVideo::ID: + func(static_cast<groupCallParticipantVideo &>(obj)); + return true; + case groupCallParticipantVideoSourceGroup::ID: + func(static_cast<groupCallParticipantVideoSourceGroup &>(obj)); + return true; + case groupCallStreamChannel::ID: + func(static_cast<groupCallStreamChannel &>(obj)); + return true; + case highScore::ID: + func(static_cast<highScore &>(obj)); + return true; + case importedContact::ID: + func(static_cast<importedContact &>(obj)); + return true; + case inlineBotSwitchPM::ID: + func(static_cast<inlineBotSwitchPM &>(obj)); + return true; + case inlineQueryPeerTypeSameBotPM::ID: + func(static_cast<inlineQueryPeerTypeSameBotPM &>(obj)); + return true; + case inlineQueryPeerTypePM::ID: + func(static_cast<inlineQueryPeerTypePM &>(obj)); + return true; + case inlineQueryPeerTypeChat::ID: + func(static_cast<inlineQueryPeerTypeChat &>(obj)); + return true; + case inlineQueryPeerTypeMegagroup::ID: + func(static_cast<inlineQueryPeerTypeMegagroup &>(obj)); + return true; + case inlineQueryPeerTypeBroadcast::ID: + func(static_cast<inlineQueryPeerTypeBroadcast &>(obj)); + return true; + case inputAppEvent::ID: + func(static_cast<inputAppEvent &>(obj)); + return true; + case inputBotInlineMessageMediaAuto::ID: + func(static_cast<inputBotInlineMessageMediaAuto &>(obj)); + return true; + case inputBotInlineMessageText::ID: + func(static_cast<inputBotInlineMessageText &>(obj)); + return true; + case inputBotInlineMessageMediaGeo::ID: + func(static_cast<inputBotInlineMessageMediaGeo &>(obj)); + return true; + case inputBotInlineMessageMediaVenue::ID: + func(static_cast<inputBotInlineMessageMediaVenue &>(obj)); + return true; + case inputBotInlineMessageMediaContact::ID: + func(static_cast<inputBotInlineMessageMediaContact &>(obj)); + return true; + case inputBotInlineMessageGame::ID: + func(static_cast<inputBotInlineMessageGame &>(obj)); + return true; + case inputBotInlineMessageMediaInvoice::ID: + func(static_cast<inputBotInlineMessageMediaInvoice &>(obj)); + return true; + case inputBotInlineMessageID::ID: + func(static_cast<inputBotInlineMessageID &>(obj)); + return true; + case inputBotInlineMessageID64::ID: + func(static_cast<inputBotInlineMessageID64 &>(obj)); + return true; + case inputBotInlineResult::ID: + func(static_cast<inputBotInlineResult &>(obj)); + return true; + case inputBotInlineResultPhoto::ID: + func(static_cast<inputBotInlineResultPhoto &>(obj)); + return true; + case inputBotInlineResultDocument::ID: + func(static_cast<inputBotInlineResultDocument &>(obj)); + return true; + case inputBotInlineResultGame::ID: + func(static_cast<inputBotInlineResultGame &>(obj)); + return true; + case inputChannelEmpty::ID: + func(static_cast<inputChannelEmpty &>(obj)); + return true; + case inputChannel::ID: + func(static_cast<inputChannel &>(obj)); + return true; + case inputChannelFromMessage::ID: + func(static_cast<inputChannelFromMessage &>(obj)); + return true; + case inputChatPhotoEmpty::ID: + func(static_cast<inputChatPhotoEmpty &>(obj)); + return true; + case inputChatUploadedPhoto::ID: + func(static_cast<inputChatUploadedPhoto &>(obj)); + return true; + case inputChatPhoto::ID: + func(static_cast<inputChatPhoto &>(obj)); + return true; + case inputCheckPasswordEmpty::ID: + func(static_cast<inputCheckPasswordEmpty &>(obj)); + return true; + case inputCheckPasswordSRP::ID: + func(static_cast<inputCheckPasswordSRP &>(obj)); + return true; + case inputClientProxy::ID: + func(static_cast<inputClientProxy &>(obj)); + return true; + case inputPhoneContact::ID: + func(static_cast<inputPhoneContact &>(obj)); + return true; + case inputDialogPeer::ID: + func(static_cast<inputDialogPeer &>(obj)); + return true; + case inputDialogPeerFolder::ID: + func(static_cast<inputDialogPeerFolder &>(obj)); + return true; + case inputDocumentEmpty::ID: + func(static_cast<inputDocumentEmpty &>(obj)); + return true; + case inputDocument::ID: + func(static_cast<inputDocument &>(obj)); + return true; + case inputEncryptedChat::ID: + func(static_cast<inputEncryptedChat &>(obj)); + return true; + case inputEncryptedFileEmpty::ID: + func(static_cast<inputEncryptedFileEmpty &>(obj)); + return true; + case inputEncryptedFileUploaded::ID: + func(static_cast<inputEncryptedFileUploaded &>(obj)); + return true; + case inputEncryptedFile::ID: + func(static_cast<inputEncryptedFile &>(obj)); + return true; + case inputEncryptedFileBigUploaded::ID: + func(static_cast<inputEncryptedFileBigUploaded &>(obj)); + return true; + case inputFile::ID: + func(static_cast<inputFile &>(obj)); + return true; + case inputFileBig::ID: + func(static_cast<inputFileBig &>(obj)); + return true; + case inputPeerPhotoFileLocationLegacy::ID: + func(static_cast<inputPeerPhotoFileLocationLegacy &>(obj)); + return true; + case inputStickerSetThumbLegacy::ID: + func(static_cast<inputStickerSetThumbLegacy &>(obj)); + return true; + case inputFileLocation::ID: + func(static_cast<inputFileLocation &>(obj)); + return true; + case inputEncryptedFileLocation::ID: + func(static_cast<inputEncryptedFileLocation &>(obj)); + return true; + case inputDocumentFileLocation::ID: + func(static_cast<inputDocumentFileLocation &>(obj)); + return true; + case inputSecureFileLocation::ID: + func(static_cast<inputSecureFileLocation &>(obj)); + return true; + case inputTakeoutFileLocation::ID: + func(static_cast<inputTakeoutFileLocation &>(obj)); + return true; + case inputPhotoFileLocation::ID: + func(static_cast<inputPhotoFileLocation &>(obj)); + return true; + case inputPhotoLegacyFileLocation::ID: + func(static_cast<inputPhotoLegacyFileLocation &>(obj)); + return true; + case inputPeerPhotoFileLocation::ID: + func(static_cast<inputPeerPhotoFileLocation &>(obj)); + return true; + case inputStickerSetThumb::ID: + func(static_cast<inputStickerSetThumb &>(obj)); + return true; + case inputGroupCallStream::ID: + func(static_cast<inputGroupCallStream &>(obj)); + return true; + case inputFolderPeer::ID: + func(static_cast<inputFolderPeer &>(obj)); + return true; + case inputGameID::ID: + func(static_cast<inputGameID &>(obj)); + return true; + case inputGameShortName::ID: + func(static_cast<inputGameShortName &>(obj)); + return true; + case inputGeoPointEmpty::ID: + func(static_cast<inputGeoPointEmpty &>(obj)); + return true; + case inputGeoPoint::ID: + func(static_cast<inputGeoPoint &>(obj)); + return true; + case inputGroupCall::ID: + func(static_cast<inputGroupCall &>(obj)); + return true; + case inputInvoiceMessage::ID: + func(static_cast<inputInvoiceMessage &>(obj)); + return true; + case inputInvoiceSlug::ID: + func(static_cast<inputInvoiceSlug &>(obj)); + return true; + case inputMediaEmpty::ID: + func(static_cast<inputMediaEmpty &>(obj)); + return true; + case inputMediaUploadedPhoto::ID: + func(static_cast<inputMediaUploadedPhoto &>(obj)); + return true; + case inputMediaPhoto::ID: + func(static_cast<inputMediaPhoto &>(obj)); + return true; + case inputMediaGeoPoint::ID: + func(static_cast<inputMediaGeoPoint &>(obj)); + return true; + case inputMediaContact::ID: + func(static_cast<inputMediaContact &>(obj)); + return true; + case inputMediaUploadedDocument::ID: + func(static_cast<inputMediaUploadedDocument &>(obj)); + return true; + case inputMediaDocument::ID: + func(static_cast<inputMediaDocument &>(obj)); + return true; + case inputMediaVenue::ID: + func(static_cast<inputMediaVenue &>(obj)); + return true; + case inputMediaPhotoExternal::ID: + func(static_cast<inputMediaPhotoExternal &>(obj)); + return true; + case inputMediaDocumentExternal::ID: + func(static_cast<inputMediaDocumentExternal &>(obj)); + return true; + case inputMediaGame::ID: + func(static_cast<inputMediaGame &>(obj)); + return true; + case inputMediaInvoice::ID: + func(static_cast<inputMediaInvoice &>(obj)); + return true; + case inputMediaGeoLive::ID: + func(static_cast<inputMediaGeoLive &>(obj)); + return true; + case inputMediaPoll::ID: + func(static_cast<inputMediaPoll &>(obj)); + return true; + case inputMediaDice::ID: + func(static_cast<inputMediaDice &>(obj)); + return true; + case inputMessageID::ID: + func(static_cast<inputMessageID &>(obj)); + return true; + case inputMessageReplyTo::ID: + func(static_cast<inputMessageReplyTo &>(obj)); + return true; + case inputMessagePinned::ID: + func(static_cast<inputMessagePinned &>(obj)); + return true; + case inputMessageCallbackQuery::ID: + func(static_cast<inputMessageCallbackQuery &>(obj)); + return true; + case inputNotifyPeer::ID: + func(static_cast<inputNotifyPeer &>(obj)); + return true; + case inputNotifyUsers::ID: + func(static_cast<inputNotifyUsers &>(obj)); + return true; + case inputNotifyChats::ID: + func(static_cast<inputNotifyChats &>(obj)); + return true; + case inputNotifyBroadcasts::ID: + func(static_cast<inputNotifyBroadcasts &>(obj)); + return true; + case inputNotifyForumTopic::ID: + func(static_cast<inputNotifyForumTopic &>(obj)); + return true; + case inputPaymentCredentialsSaved::ID: + func(static_cast<inputPaymentCredentialsSaved &>(obj)); + return true; + case inputPaymentCredentials::ID: + func(static_cast<inputPaymentCredentials &>(obj)); + return true; + case inputPaymentCredentialsApplePay::ID: + func(static_cast<inputPaymentCredentialsApplePay &>(obj)); + return true; + case inputPaymentCredentialsGooglePay::ID: + func(static_cast<inputPaymentCredentialsGooglePay &>(obj)); + return true; + case inputPeerEmpty::ID: + func(static_cast<inputPeerEmpty &>(obj)); + return true; + case inputPeerSelf::ID: + func(static_cast<inputPeerSelf &>(obj)); + return true; + case inputPeerChat::ID: + func(static_cast<inputPeerChat &>(obj)); + return true; + case inputPeerUser::ID: + func(static_cast<inputPeerUser &>(obj)); + return true; + case inputPeerChannel::ID: + func(static_cast<inputPeerChannel &>(obj)); + return true; + case inputPeerUserFromMessage::ID: + func(static_cast<inputPeerUserFromMessage &>(obj)); + return true; + case inputPeerChannelFromMessage::ID: + func(static_cast<inputPeerChannelFromMessage &>(obj)); + return true; + case inputPeerNotifySettings::ID: + func(static_cast<inputPeerNotifySettings &>(obj)); + return true; + case inputPhoneCall::ID: + func(static_cast<inputPhoneCall &>(obj)); + return true; + case inputPhotoEmpty::ID: + func(static_cast<inputPhotoEmpty &>(obj)); + return true; + case inputPhoto::ID: + func(static_cast<inputPhoto &>(obj)); + return true; + case inputPrivacyKeyStatusTimestamp::ID: + func(static_cast<inputPrivacyKeyStatusTimestamp &>(obj)); + return true; + case inputPrivacyKeyChatInvite::ID: + func(static_cast<inputPrivacyKeyChatInvite &>(obj)); + return true; + case inputPrivacyKeyPhoneCall::ID: + func(static_cast<inputPrivacyKeyPhoneCall &>(obj)); + return true; + case inputPrivacyKeyPhoneP2P::ID: + func(static_cast<inputPrivacyKeyPhoneP2P &>(obj)); + return true; + case inputPrivacyKeyForwards::ID: + func(static_cast<inputPrivacyKeyForwards &>(obj)); + return true; + case inputPrivacyKeyProfilePhoto::ID: + func(static_cast<inputPrivacyKeyProfilePhoto &>(obj)); + return true; + case inputPrivacyKeyPhoneNumber::ID: + func(static_cast<inputPrivacyKeyPhoneNumber &>(obj)); + return true; + case inputPrivacyKeyAddedByPhone::ID: + func(static_cast<inputPrivacyKeyAddedByPhone &>(obj)); + return true; + case inputPrivacyKeyVoiceMessages::ID: + func(static_cast<inputPrivacyKeyVoiceMessages &>(obj)); + return true; + case inputPrivacyValueAllowContacts::ID: + func(static_cast<inputPrivacyValueAllowContacts &>(obj)); + return true; + case inputPrivacyValueAllowAll::ID: + func(static_cast<inputPrivacyValueAllowAll &>(obj)); + return true; + case inputPrivacyValueAllowUsers::ID: + func(static_cast<inputPrivacyValueAllowUsers &>(obj)); + return true; + case inputPrivacyValueDisallowContacts::ID: + func(static_cast<inputPrivacyValueDisallowContacts &>(obj)); + return true; + case inputPrivacyValueDisallowAll::ID: + func(static_cast<inputPrivacyValueDisallowAll &>(obj)); + return true; + case inputPrivacyValueDisallowUsers::ID: + func(static_cast<inputPrivacyValueDisallowUsers &>(obj)); + return true; + case inputPrivacyValueAllowChatParticipants::ID: + func(static_cast<inputPrivacyValueAllowChatParticipants &>(obj)); + return true; + case inputPrivacyValueDisallowChatParticipants::ID: + func(static_cast<inputPrivacyValueDisallowChatParticipants &>(obj)); + return true; + case inputSecureFileUploaded::ID: + func(static_cast<inputSecureFileUploaded &>(obj)); + return true; + case inputSecureFile::ID: + func(static_cast<inputSecureFile &>(obj)); + return true; + case inputSecureValue::ID: + func(static_cast<inputSecureValue &>(obj)); + return true; + case inputSingleMedia::ID: + func(static_cast<inputSingleMedia &>(obj)); + return true; + case inputStickerSetEmpty::ID: + func(static_cast<inputStickerSetEmpty &>(obj)); + return true; + case inputStickerSetID::ID: + func(static_cast<inputStickerSetID &>(obj)); + return true; + case inputStickerSetShortName::ID: + func(static_cast<inputStickerSetShortName &>(obj)); + return true; + case inputStickerSetAnimatedEmoji::ID: + func(static_cast<inputStickerSetAnimatedEmoji &>(obj)); + return true; + case inputStickerSetDice::ID: + func(static_cast<inputStickerSetDice &>(obj)); + return true; + case inputStickerSetAnimatedEmojiAnimations::ID: + func(static_cast<inputStickerSetAnimatedEmojiAnimations &>(obj)); + return true; + case inputStickerSetPremiumGifts::ID: + func(static_cast<inputStickerSetPremiumGifts &>(obj)); + return true; + case inputStickerSetEmojiGenericAnimations::ID: + func(static_cast<inputStickerSetEmojiGenericAnimations &>(obj)); + return true; + case inputStickerSetEmojiDefaultStatuses::ID: + func(static_cast<inputStickerSetEmojiDefaultStatuses &>(obj)); + return true; + case inputStickerSetEmojiDefaultTopicIcons::ID: + func(static_cast<inputStickerSetEmojiDefaultTopicIcons &>(obj)); + return true; + case inputStickerSetItem::ID: + func(static_cast<inputStickerSetItem &>(obj)); + return true; + case inputStickeredMediaPhoto::ID: + func(static_cast<inputStickeredMediaPhoto &>(obj)); + return true; + case inputStickeredMediaDocument::ID: + func(static_cast<inputStickeredMediaDocument &>(obj)); + return true; + case inputStorePaymentPremiumSubscription::ID: + func(static_cast<inputStorePaymentPremiumSubscription &>(obj)); + return true; + case inputStorePaymentGiftPremium::ID: + func(static_cast<inputStorePaymentGiftPremium &>(obj)); + return true; + case inputTheme::ID: + func(static_cast<inputTheme &>(obj)); + return true; + case inputThemeSlug::ID: + func(static_cast<inputThemeSlug &>(obj)); + return true; + case inputThemeSettings::ID: + func(static_cast<inputThemeSettings &>(obj)); + return true; + case inputUserEmpty::ID: + func(static_cast<inputUserEmpty &>(obj)); + return true; + case inputUserSelf::ID: + func(static_cast<inputUserSelf &>(obj)); + return true; + case inputUser::ID: + func(static_cast<inputUser &>(obj)); + return true; + case inputUserFromMessage::ID: + func(static_cast<inputUserFromMessage &>(obj)); + return true; + case inputWallPaper::ID: + func(static_cast<inputWallPaper &>(obj)); + return true; + case inputWallPaperSlug::ID: + func(static_cast<inputWallPaperSlug &>(obj)); + return true; + case inputWallPaperNoFile::ID: + func(static_cast<inputWallPaperNoFile &>(obj)); + return true; + case inputWebDocument::ID: + func(static_cast<inputWebDocument &>(obj)); + return true; + case inputWebFileLocation::ID: + func(static_cast<inputWebFileLocation &>(obj)); + return true; + case inputWebFileGeoPointLocation::ID: + func(static_cast<inputWebFileGeoPointLocation &>(obj)); + return true; + case inputWebFileAudioAlbumThumbLocation::ID: + func(static_cast<inputWebFileAudioAlbumThumbLocation &>(obj)); + return true; + case invoice::ID: + func(static_cast<invoice &>(obj)); + return true; + case ipPort::ID: + func(static_cast<ipPort &>(obj)); + return true; + case ipPortSecret::ID: + func(static_cast<ipPortSecret &>(obj)); + return true; + case jsonObjectValue::ID: + func(static_cast<jsonObjectValue &>(obj)); + return true; + case jsonNull::ID: + func(static_cast<jsonNull &>(obj)); + return true; + case jsonBool::ID: + func(static_cast<jsonBool &>(obj)); + return true; + case jsonNumber::ID: + func(static_cast<jsonNumber &>(obj)); + return true; + case jsonString::ID: + func(static_cast<jsonString &>(obj)); + return true; + case jsonArray::ID: + func(static_cast<jsonArray &>(obj)); + return true; + case jsonObject::ID: + func(static_cast<jsonObject &>(obj)); + return true; + case keyboardButton::ID: + func(static_cast<keyboardButton &>(obj)); + return true; + case keyboardButtonUrl::ID: + func(static_cast<keyboardButtonUrl &>(obj)); + return true; + case keyboardButtonCallback::ID: + func(static_cast<keyboardButtonCallback &>(obj)); + return true; + case keyboardButtonRequestPhone::ID: + func(static_cast<keyboardButtonRequestPhone &>(obj)); + return true; + case keyboardButtonRequestGeoLocation::ID: + func(static_cast<keyboardButtonRequestGeoLocation &>(obj)); + return true; + case keyboardButtonSwitchInline::ID: + func(static_cast<keyboardButtonSwitchInline &>(obj)); + return true; + case keyboardButtonGame::ID: + func(static_cast<keyboardButtonGame &>(obj)); + return true; + case keyboardButtonBuy::ID: + func(static_cast<keyboardButtonBuy &>(obj)); + return true; + case keyboardButtonUrlAuth::ID: + func(static_cast<keyboardButtonUrlAuth &>(obj)); + return true; + case inputKeyboardButtonUrlAuth::ID: + func(static_cast<inputKeyboardButtonUrlAuth &>(obj)); + return true; + case keyboardButtonRequestPoll::ID: + func(static_cast<keyboardButtonRequestPoll &>(obj)); + return true; + case inputKeyboardButtonUserProfile::ID: + func(static_cast<inputKeyboardButtonUserProfile &>(obj)); + return true; + case keyboardButtonUserProfile::ID: + func(static_cast<keyboardButtonUserProfile &>(obj)); + return true; + case keyboardButtonWebView::ID: + func(static_cast<keyboardButtonWebView &>(obj)); + return true; + case keyboardButtonSimpleWebView::ID: + func(static_cast<keyboardButtonSimpleWebView &>(obj)); + return true; + case keyboardButtonRow::ID: + func(static_cast<keyboardButtonRow &>(obj)); + return true; + case labeledPrice::ID: + func(static_cast<labeledPrice &>(obj)); + return true; + case langPackDifference::ID: + func(static_cast<langPackDifference &>(obj)); + return true; + case langPackLanguage::ID: + func(static_cast<langPackLanguage &>(obj)); + return true; + case langPackString::ID: + func(static_cast<langPackString &>(obj)); + return true; + case langPackStringPluralized::ID: + func(static_cast<langPackStringPluralized &>(obj)); + return true; + case langPackStringDeleted::ID: + func(static_cast<langPackStringDeleted &>(obj)); + return true; + case maskCoords::ID: + func(static_cast<maskCoords &>(obj)); + return true; + case messageEmpty::ID: + func(static_cast<messageEmpty &>(obj)); + return true; + case message::ID: + func(static_cast<message &>(obj)); + return true; + case messageService::ID: + func(static_cast<messageService &>(obj)); + return true; + case messageActionEmpty::ID: + func(static_cast<messageActionEmpty &>(obj)); + return true; + case messageActionChatCreate::ID: + func(static_cast<messageActionChatCreate &>(obj)); + return true; + case messageActionChatEditTitle::ID: + func(static_cast<messageActionChatEditTitle &>(obj)); + return true; + case messageActionChatEditPhoto::ID: + func(static_cast<messageActionChatEditPhoto &>(obj)); + return true; + case messageActionChatDeletePhoto::ID: + func(static_cast<messageActionChatDeletePhoto &>(obj)); + return true; + case messageActionChatAddUser::ID: + func(static_cast<messageActionChatAddUser &>(obj)); + return true; + case messageActionChatDeleteUser::ID: + func(static_cast<messageActionChatDeleteUser &>(obj)); + return true; + case messageActionChatJoinedByLink::ID: + func(static_cast<messageActionChatJoinedByLink &>(obj)); + return true; + case messageActionChannelCreate::ID: + func(static_cast<messageActionChannelCreate &>(obj)); + return true; + case messageActionChatMigrateTo::ID: + func(static_cast<messageActionChatMigrateTo &>(obj)); + return true; + case messageActionChannelMigrateFrom::ID: + func(static_cast<messageActionChannelMigrateFrom &>(obj)); + return true; + case messageActionPinMessage::ID: + func(static_cast<messageActionPinMessage &>(obj)); + return true; + case messageActionHistoryClear::ID: + func(static_cast<messageActionHistoryClear &>(obj)); + return true; + case messageActionGameScore::ID: + func(static_cast<messageActionGameScore &>(obj)); + return true; + case messageActionPaymentSentMe::ID: + func(static_cast<messageActionPaymentSentMe &>(obj)); + return true; + case messageActionPaymentSent::ID: + func(static_cast<messageActionPaymentSent &>(obj)); + return true; + case messageActionPhoneCall::ID: + func(static_cast<messageActionPhoneCall &>(obj)); + return true; + case messageActionScreenshotTaken::ID: + func(static_cast<messageActionScreenshotTaken &>(obj)); + return true; + case messageActionCustomAction::ID: + func(static_cast<messageActionCustomAction &>(obj)); + return true; + case messageActionBotAllowed::ID: + func(static_cast<messageActionBotAllowed &>(obj)); + return true; + case messageActionSecureValuesSentMe::ID: + func(static_cast<messageActionSecureValuesSentMe &>(obj)); + return true; + case messageActionSecureValuesSent::ID: + func(static_cast<messageActionSecureValuesSent &>(obj)); + return true; + case messageActionContactSignUp::ID: + func(static_cast<messageActionContactSignUp &>(obj)); + return true; + case messageActionGeoProximityReached::ID: + func(static_cast<messageActionGeoProximityReached &>(obj)); + return true; + case messageActionGroupCall::ID: + func(static_cast<messageActionGroupCall &>(obj)); + return true; + case messageActionInviteToGroupCall::ID: + func(static_cast<messageActionInviteToGroupCall &>(obj)); + return true; + case messageActionSetMessagesTTL::ID: + func(static_cast<messageActionSetMessagesTTL &>(obj)); + return true; + case messageActionGroupCallScheduled::ID: + func(static_cast<messageActionGroupCallScheduled &>(obj)); + return true; + case messageActionSetChatTheme::ID: + func(static_cast<messageActionSetChatTheme &>(obj)); + return true; + case messageActionChatJoinedByRequest::ID: + func(static_cast<messageActionChatJoinedByRequest &>(obj)); + return true; + case messageActionWebViewDataSentMe::ID: + func(static_cast<messageActionWebViewDataSentMe &>(obj)); + return true; + case messageActionWebViewDataSent::ID: + func(static_cast<messageActionWebViewDataSent &>(obj)); + return true; + case messageActionGiftPremium::ID: + func(static_cast<messageActionGiftPremium &>(obj)); + return true; + case messageActionTopicCreate::ID: + func(static_cast<messageActionTopicCreate &>(obj)); + return true; + case messageActionTopicEdit::ID: + func(static_cast<messageActionTopicEdit &>(obj)); + return true; + case messageEntityUnknown::ID: + func(static_cast<messageEntityUnknown &>(obj)); + return true; + case messageEntityMention::ID: + func(static_cast<messageEntityMention &>(obj)); + return true; + case messageEntityHashtag::ID: + func(static_cast<messageEntityHashtag &>(obj)); + return true; + case messageEntityBotCommand::ID: + func(static_cast<messageEntityBotCommand &>(obj)); + return true; + case messageEntityUrl::ID: + func(static_cast<messageEntityUrl &>(obj)); + return true; + case messageEntityEmail::ID: + func(static_cast<messageEntityEmail &>(obj)); + return true; + case messageEntityBold::ID: + func(static_cast<messageEntityBold &>(obj)); + return true; + case messageEntityItalic::ID: + func(static_cast<messageEntityItalic &>(obj)); + return true; + case messageEntityCode::ID: + func(static_cast<messageEntityCode &>(obj)); + return true; + case messageEntityPre::ID: + func(static_cast<messageEntityPre &>(obj)); + return true; + case messageEntityTextUrl::ID: + func(static_cast<messageEntityTextUrl &>(obj)); + return true; + case messageEntityMentionName::ID: + func(static_cast<messageEntityMentionName &>(obj)); + return true; + case inputMessageEntityMentionName::ID: + func(static_cast<inputMessageEntityMentionName &>(obj)); + return true; + case messageEntityPhone::ID: + func(static_cast<messageEntityPhone &>(obj)); + return true; + case messageEntityCashtag::ID: + func(static_cast<messageEntityCashtag &>(obj)); + return true; + case messageEntityUnderline::ID: + func(static_cast<messageEntityUnderline &>(obj)); + return true; + case messageEntityStrike::ID: + func(static_cast<messageEntityStrike &>(obj)); + return true; + case messageEntityBlockquote::ID: + func(static_cast<messageEntityBlockquote &>(obj)); + return true; + case messageEntityBankCard::ID: + func(static_cast<messageEntityBankCard &>(obj)); + return true; + case messageEntitySpoiler::ID: + func(static_cast<messageEntitySpoiler &>(obj)); + return true; + case messageEntityCustomEmoji::ID: + func(static_cast<messageEntityCustomEmoji &>(obj)); + return true; + case messageExtendedMediaPreview::ID: + func(static_cast<messageExtendedMediaPreview &>(obj)); + return true; + case messageExtendedMedia::ID: + func(static_cast<messageExtendedMedia &>(obj)); + return true; + case messageFwdHeader::ID: + func(static_cast<messageFwdHeader &>(obj)); + return true; + case messageInteractionCounters::ID: + func(static_cast<messageInteractionCounters &>(obj)); + return true; + case messageMediaEmpty::ID: + func(static_cast<messageMediaEmpty &>(obj)); + return true; + case messageMediaPhoto::ID: + func(static_cast<messageMediaPhoto &>(obj)); + return true; + case messageMediaGeo::ID: + func(static_cast<messageMediaGeo &>(obj)); + return true; + case messageMediaContact::ID: + func(static_cast<messageMediaContact &>(obj)); + return true; + case messageMediaUnsupported::ID: + func(static_cast<messageMediaUnsupported &>(obj)); + return true; + case messageMediaDocument::ID: + func(static_cast<messageMediaDocument &>(obj)); + return true; + case messageMediaWebPage::ID: + func(static_cast<messageMediaWebPage &>(obj)); + return true; + case messageMediaVenue::ID: + func(static_cast<messageMediaVenue &>(obj)); + return true; + case messageMediaGame::ID: + func(static_cast<messageMediaGame &>(obj)); + return true; + case messageMediaInvoice::ID: + func(static_cast<messageMediaInvoice &>(obj)); + return true; + case messageMediaGeoLive::ID: + func(static_cast<messageMediaGeoLive &>(obj)); + return true; + case messageMediaPoll::ID: + func(static_cast<messageMediaPoll &>(obj)); + return true; + case messageMediaDice::ID: + func(static_cast<messageMediaDice &>(obj)); + return true; + case messagePeerReaction::ID: + func(static_cast<messagePeerReaction &>(obj)); + return true; + case messageRange::ID: + func(static_cast<messageRange &>(obj)); + return true; + case messageReactions::ID: + func(static_cast<messageReactions &>(obj)); + return true; + case messageReplies::ID: + func(static_cast<messageReplies &>(obj)); + return true; + case messageReplyHeader::ID: + func(static_cast<messageReplyHeader &>(obj)); + return true; + case messageUserVote::ID: + func(static_cast<messageUserVote &>(obj)); + return true; + case messageUserVoteInputOption::ID: + func(static_cast<messageUserVoteInputOption &>(obj)); + return true; + case messageUserVoteMultiple::ID: + func(static_cast<messageUserVoteMultiple &>(obj)); + return true; + case messageViews::ID: + func(static_cast<messageViews &>(obj)); + return true; + case inputMessagesFilterEmpty::ID: + func(static_cast<inputMessagesFilterEmpty &>(obj)); + return true; + case inputMessagesFilterPhotos::ID: + func(static_cast<inputMessagesFilterPhotos &>(obj)); + return true; + case inputMessagesFilterVideo::ID: + func(static_cast<inputMessagesFilterVideo &>(obj)); + return true; + case inputMessagesFilterPhotoVideo::ID: + func(static_cast<inputMessagesFilterPhotoVideo &>(obj)); + return true; + case inputMessagesFilterDocument::ID: + func(static_cast<inputMessagesFilterDocument &>(obj)); + return true; + case inputMessagesFilterUrl::ID: + func(static_cast<inputMessagesFilterUrl &>(obj)); + return true; + case inputMessagesFilterGif::ID: + func(static_cast<inputMessagesFilterGif &>(obj)); + return true; + case inputMessagesFilterVoice::ID: + func(static_cast<inputMessagesFilterVoice &>(obj)); + return true; + case inputMessagesFilterMusic::ID: + func(static_cast<inputMessagesFilterMusic &>(obj)); + return true; + case inputMessagesFilterChatPhotos::ID: + func(static_cast<inputMessagesFilterChatPhotos &>(obj)); + return true; + case inputMessagesFilterPhoneCalls::ID: + func(static_cast<inputMessagesFilterPhoneCalls &>(obj)); + return true; + case inputMessagesFilterRoundVoice::ID: + func(static_cast<inputMessagesFilterRoundVoice &>(obj)); + return true; + case inputMessagesFilterRoundVideo::ID: + func(static_cast<inputMessagesFilterRoundVideo &>(obj)); + return true; + case inputMessagesFilterMyMentions::ID: + func(static_cast<inputMessagesFilterMyMentions &>(obj)); + return true; + case inputMessagesFilterGeo::ID: + func(static_cast<inputMessagesFilterGeo &>(obj)); + return true; + case inputMessagesFilterContacts::ID: + func(static_cast<inputMessagesFilterContacts &>(obj)); + return true; + case inputMessagesFilterPinned::ID: + func(static_cast<inputMessagesFilterPinned &>(obj)); + return true; + case nearestDc::ID: + func(static_cast<nearestDc &>(obj)); + return true; + case notificationSoundDefault::ID: + func(static_cast<notificationSoundDefault &>(obj)); + return true; + case notificationSoundNone::ID: + func(static_cast<notificationSoundNone &>(obj)); + return true; + case notificationSoundLocal::ID: + func(static_cast<notificationSoundLocal &>(obj)); + return true; + case notificationSoundRingtone::ID: + func(static_cast<notificationSoundRingtone &>(obj)); + return true; + case notifyPeer::ID: + func(static_cast<notifyPeer &>(obj)); + return true; + case notifyUsers::ID: + func(static_cast<notifyUsers &>(obj)); + return true; + case notifyChats::ID: + func(static_cast<notifyChats &>(obj)); + return true; + case notifyBroadcasts::ID: + func(static_cast<notifyBroadcasts &>(obj)); + return true; + case notifyForumTopic::ID: + func(static_cast<notifyForumTopic &>(obj)); + return true; + case page::ID: + func(static_cast<page &>(obj)); + return true; + case pageBlockUnsupported::ID: + func(static_cast<pageBlockUnsupported &>(obj)); + return true; + case pageBlockTitle::ID: + func(static_cast<pageBlockTitle &>(obj)); + return true; + case pageBlockSubtitle::ID: + func(static_cast<pageBlockSubtitle &>(obj)); + return true; + case pageBlockAuthorDate::ID: + func(static_cast<pageBlockAuthorDate &>(obj)); + return true; + case pageBlockHeader::ID: + func(static_cast<pageBlockHeader &>(obj)); + return true; + case pageBlockSubheader::ID: + func(static_cast<pageBlockSubheader &>(obj)); + return true; + case pageBlockParagraph::ID: + func(static_cast<pageBlockParagraph &>(obj)); + return true; + case pageBlockPreformatted::ID: + func(static_cast<pageBlockPreformatted &>(obj)); + return true; + case pageBlockFooter::ID: + func(static_cast<pageBlockFooter &>(obj)); + return true; + case pageBlockDivider::ID: + func(static_cast<pageBlockDivider &>(obj)); + return true; + case pageBlockAnchor::ID: + func(static_cast<pageBlockAnchor &>(obj)); + return true; + case pageBlockList::ID: + func(static_cast<pageBlockList &>(obj)); + return true; + case pageBlockBlockquote::ID: + func(static_cast<pageBlockBlockquote &>(obj)); + return true; + case pageBlockPullquote::ID: + func(static_cast<pageBlockPullquote &>(obj)); + return true; + case pageBlockPhoto::ID: + func(static_cast<pageBlockPhoto &>(obj)); + return true; + case pageBlockVideo::ID: + func(static_cast<pageBlockVideo &>(obj)); + return true; + case pageBlockCover::ID: + func(static_cast<pageBlockCover &>(obj)); + return true; + case pageBlockEmbed::ID: + func(static_cast<pageBlockEmbed &>(obj)); + return true; + case pageBlockEmbedPost::ID: + func(static_cast<pageBlockEmbedPost &>(obj)); + return true; + case pageBlockCollage::ID: + func(static_cast<pageBlockCollage &>(obj)); + return true; + case pageBlockSlideshow::ID: + func(static_cast<pageBlockSlideshow &>(obj)); + return true; + case pageBlockChannel::ID: + func(static_cast<pageBlockChannel &>(obj)); + return true; + case pageBlockAudio::ID: + func(static_cast<pageBlockAudio &>(obj)); + return true; + case pageBlockKicker::ID: + func(static_cast<pageBlockKicker &>(obj)); + return true; + case pageBlockTable::ID: + func(static_cast<pageBlockTable &>(obj)); + return true; + case pageBlockOrderedList::ID: + func(static_cast<pageBlockOrderedList &>(obj)); + return true; + case pageBlockDetails::ID: + func(static_cast<pageBlockDetails &>(obj)); + return true; + case pageBlockRelatedArticles::ID: + func(static_cast<pageBlockRelatedArticles &>(obj)); + return true; + case pageBlockMap::ID: + func(static_cast<pageBlockMap &>(obj)); + return true; + case pageCaption::ID: + func(static_cast<pageCaption &>(obj)); + return true; + case pageListItemText::ID: + func(static_cast<pageListItemText &>(obj)); + return true; + case pageListItemBlocks::ID: + func(static_cast<pageListItemBlocks &>(obj)); + return true; + case pageListOrderedItemText::ID: + func(static_cast<pageListOrderedItemText &>(obj)); + return true; + case pageListOrderedItemBlocks::ID: + func(static_cast<pageListOrderedItemBlocks &>(obj)); + return true; + case pageRelatedArticle::ID: + func(static_cast<pageRelatedArticle &>(obj)); + return true; + case pageTableCell::ID: + func(static_cast<pageTableCell &>(obj)); + return true; + case pageTableRow::ID: + func(static_cast<pageTableRow &>(obj)); + return true; + case passwordKdfAlgoUnknown::ID: + func(static_cast<passwordKdfAlgoUnknown &>(obj)); + return true; + case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID: + func(static_cast<passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow &>(obj)); + return true; + case paymentCharge::ID: + func(static_cast<paymentCharge &>(obj)); + return true; + case paymentFormMethod::ID: + func(static_cast<paymentFormMethod &>(obj)); + return true; + case paymentRequestedInfo::ID: + func(static_cast<paymentRequestedInfo &>(obj)); + return true; + case paymentSavedCredentialsCard::ID: + func(static_cast<paymentSavedCredentialsCard &>(obj)); + return true; + case peerUser::ID: + func(static_cast<peerUser &>(obj)); + return true; + case peerChat::ID: + func(static_cast<peerChat &>(obj)); + return true; + case peerChannel::ID: + func(static_cast<peerChannel &>(obj)); + return true; + case peerBlocked::ID: + func(static_cast<peerBlocked &>(obj)); + return true; + case peerLocated::ID: + func(static_cast<peerLocated &>(obj)); + return true; + case peerSelfLocated::ID: + func(static_cast<peerSelfLocated &>(obj)); + return true; + case peerNotifySettings::ID: + func(static_cast<peerNotifySettings &>(obj)); + return true; + case peerSettings::ID: + func(static_cast<peerSettings &>(obj)); + return true; + case phoneCallEmpty::ID: + func(static_cast<phoneCallEmpty &>(obj)); + return true; + case phoneCallWaiting::ID: + func(static_cast<phoneCallWaiting &>(obj)); + return true; + case phoneCallRequested::ID: + func(static_cast<phoneCallRequested &>(obj)); + return true; + case phoneCallAccepted::ID: + func(static_cast<phoneCallAccepted &>(obj)); + return true; + case phoneCall::ID: + func(static_cast<phoneCall &>(obj)); + return true; + case phoneCallDiscarded::ID: + func(static_cast<phoneCallDiscarded &>(obj)); + return true; + case phoneCallDiscardReasonMissed::ID: + func(static_cast<phoneCallDiscardReasonMissed &>(obj)); + return true; + case phoneCallDiscardReasonDisconnect::ID: + func(static_cast<phoneCallDiscardReasonDisconnect &>(obj)); + return true; + case phoneCallDiscardReasonHangup::ID: + func(static_cast<phoneCallDiscardReasonHangup &>(obj)); + return true; + case phoneCallDiscardReasonBusy::ID: + func(static_cast<phoneCallDiscardReasonBusy &>(obj)); + return true; + case phoneCallProtocol::ID: + func(static_cast<phoneCallProtocol &>(obj)); + return true; + case phoneConnection::ID: + func(static_cast<phoneConnection &>(obj)); + return true; + case phoneConnectionWebrtc::ID: + func(static_cast<phoneConnectionWebrtc &>(obj)); + return true; + case photoEmpty::ID: + func(static_cast<photoEmpty &>(obj)); + return true; + case photo::ID: + func(static_cast<photo &>(obj)); + return true; + case photoSizeEmpty::ID: + func(static_cast<photoSizeEmpty &>(obj)); + return true; + case photoSize::ID: + func(static_cast<photoSize &>(obj)); + return true; + case photoCachedSize::ID: + func(static_cast<photoCachedSize &>(obj)); + return true; + case photoStrippedSize::ID: + func(static_cast<photoStrippedSize &>(obj)); + return true; + case photoSizeProgressive::ID: + func(static_cast<photoSizeProgressive &>(obj)); + return true; + case photoPathSize::ID: + func(static_cast<photoPathSize &>(obj)); + return true; + case poll::ID: + func(static_cast<poll &>(obj)); + return true; + case pollAnswer::ID: + func(static_cast<pollAnswer &>(obj)); + return true; + case pollAnswerVoters::ID: + func(static_cast<pollAnswerVoters &>(obj)); + return true; + case pollResults::ID: + func(static_cast<pollResults &>(obj)); + return true; + case popularContact::ID: + func(static_cast<popularContact &>(obj)); + return true; + case postAddress::ID: + func(static_cast<postAddress &>(obj)); + return true; + case premiumGiftOption::ID: + func(static_cast<premiumGiftOption &>(obj)); + return true; + case premiumSubscriptionOption::ID: + func(static_cast<premiumSubscriptionOption &>(obj)); + return true; + case privacyKeyStatusTimestamp::ID: + func(static_cast<privacyKeyStatusTimestamp &>(obj)); + return true; + case privacyKeyChatInvite::ID: + func(static_cast<privacyKeyChatInvite &>(obj)); + return true; + case privacyKeyPhoneCall::ID: + func(static_cast<privacyKeyPhoneCall &>(obj)); + return true; + case privacyKeyPhoneP2P::ID: + func(static_cast<privacyKeyPhoneP2P &>(obj)); + return true; + case privacyKeyForwards::ID: + func(static_cast<privacyKeyForwards &>(obj)); + return true; + case privacyKeyProfilePhoto::ID: + func(static_cast<privacyKeyProfilePhoto &>(obj)); + return true; + case privacyKeyPhoneNumber::ID: + func(static_cast<privacyKeyPhoneNumber &>(obj)); + return true; + case privacyKeyAddedByPhone::ID: + func(static_cast<privacyKeyAddedByPhone &>(obj)); + return true; + case privacyKeyVoiceMessages::ID: + func(static_cast<privacyKeyVoiceMessages &>(obj)); + return true; + case privacyValueAllowContacts::ID: + func(static_cast<privacyValueAllowContacts &>(obj)); + return true; + case privacyValueAllowAll::ID: + func(static_cast<privacyValueAllowAll &>(obj)); + return true; + case privacyValueAllowUsers::ID: + func(static_cast<privacyValueAllowUsers &>(obj)); + return true; + case privacyValueDisallowContacts::ID: + func(static_cast<privacyValueDisallowContacts &>(obj)); + return true; + case privacyValueDisallowAll::ID: + func(static_cast<privacyValueDisallowAll &>(obj)); + return true; + case privacyValueDisallowUsers::ID: + func(static_cast<privacyValueDisallowUsers &>(obj)); + return true; + case privacyValueAllowChatParticipants::ID: + func(static_cast<privacyValueAllowChatParticipants &>(obj)); + return true; + case privacyValueDisallowChatParticipants::ID: + func(static_cast<privacyValueDisallowChatParticipants &>(obj)); + return true; + case reactionEmpty::ID: + func(static_cast<reactionEmpty &>(obj)); + return true; + case reactionEmoji::ID: + func(static_cast<reactionEmoji &>(obj)); + return true; + case reactionCustomEmoji::ID: + func(static_cast<reactionCustomEmoji &>(obj)); + return true; + case reactionCount::ID: + func(static_cast<reactionCount &>(obj)); + return true; + case receivedNotifyMessage::ID: + func(static_cast<receivedNotifyMessage &>(obj)); + return true; + case recentMeUrlUnknown::ID: + func(static_cast<recentMeUrlUnknown &>(obj)); + return true; + case recentMeUrlUser::ID: + func(static_cast<recentMeUrlUser &>(obj)); + return true; + case recentMeUrlChat::ID: + func(static_cast<recentMeUrlChat &>(obj)); + return true; + case recentMeUrlChatInvite::ID: + func(static_cast<recentMeUrlChatInvite &>(obj)); + return true; + case recentMeUrlStickerSet::ID: + func(static_cast<recentMeUrlStickerSet &>(obj)); + return true; + case replyKeyboardHide::ID: + func(static_cast<replyKeyboardHide &>(obj)); + return true; + case replyKeyboardForceReply::ID: + func(static_cast<replyKeyboardForceReply &>(obj)); + return true; + case replyKeyboardMarkup::ID: + func(static_cast<replyKeyboardMarkup &>(obj)); + return true; + case replyInlineMarkup::ID: + func(static_cast<replyInlineMarkup &>(obj)); + return true; + case inputReportReasonSpam::ID: + func(static_cast<inputReportReasonSpam &>(obj)); + return true; + case inputReportReasonViolence::ID: + func(static_cast<inputReportReasonViolence &>(obj)); + return true; + case inputReportReasonPornography::ID: + func(static_cast<inputReportReasonPornography &>(obj)); + return true; + case inputReportReasonChildAbuse::ID: + func(static_cast<inputReportReasonChildAbuse &>(obj)); + return true; + case inputReportReasonOther::ID: + func(static_cast<inputReportReasonOther &>(obj)); + return true; + case inputReportReasonCopyright::ID: + func(static_cast<inputReportReasonCopyright &>(obj)); + return true; + case inputReportReasonGeoIrrelevant::ID: + func(static_cast<inputReportReasonGeoIrrelevant &>(obj)); + return true; + case inputReportReasonFake::ID: + func(static_cast<inputReportReasonFake &>(obj)); + return true; + case inputReportReasonIllegalDrugs::ID: + func(static_cast<inputReportReasonIllegalDrugs &>(obj)); + return true; + case inputReportReasonPersonalDetails::ID: + func(static_cast<inputReportReasonPersonalDetails &>(obj)); + return true; + case restrictionReason::ID: + func(static_cast<restrictionReason &>(obj)); + return true; + case textEmpty::ID: + func(static_cast<textEmpty &>(obj)); + return true; + case textPlain::ID: + func(static_cast<textPlain &>(obj)); + return true; + case textBold::ID: + func(static_cast<textBold &>(obj)); + return true; + case textItalic::ID: + func(static_cast<textItalic &>(obj)); + return true; + case textUnderline::ID: + func(static_cast<textUnderline &>(obj)); + return true; + case textStrike::ID: + func(static_cast<textStrike &>(obj)); + return true; + case textFixed::ID: + func(static_cast<textFixed &>(obj)); + return true; + case textUrl::ID: + func(static_cast<textUrl &>(obj)); + return true; + case textEmail::ID: + func(static_cast<textEmail &>(obj)); + return true; + case textConcat::ID: + func(static_cast<textConcat &>(obj)); + return true; + case textSubscript::ID: + func(static_cast<textSubscript &>(obj)); + return true; + case textSuperscript::ID: + func(static_cast<textSuperscript &>(obj)); + return true; + case textMarked::ID: + func(static_cast<textMarked &>(obj)); + return true; + case textPhone::ID: + func(static_cast<textPhone &>(obj)); + return true; + case textImage::ID: + func(static_cast<textImage &>(obj)); + return true; + case textAnchor::ID: + func(static_cast<textAnchor &>(obj)); + return true; + case savedPhoneContact::ID: + func(static_cast<savedPhoneContact &>(obj)); + return true; + case searchResultsCalendarPeriod::ID: + func(static_cast<searchResultsCalendarPeriod &>(obj)); + return true; + case searchResultPosition::ID: + func(static_cast<searchResultPosition &>(obj)); + return true; + case secureCredentialsEncrypted::ID: + func(static_cast<secureCredentialsEncrypted &>(obj)); + return true; + case secureData::ID: + func(static_cast<secureData &>(obj)); + return true; + case secureFileEmpty::ID: + func(static_cast<secureFileEmpty &>(obj)); + return true; + case secureFile::ID: + func(static_cast<secureFile &>(obj)); + return true; + case securePasswordKdfAlgoUnknown::ID: + func(static_cast<securePasswordKdfAlgoUnknown &>(obj)); + return true; + case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID: + func(static_cast<securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 &>(obj)); + return true; + case securePasswordKdfAlgoSHA512::ID: + func(static_cast<securePasswordKdfAlgoSHA512 &>(obj)); + return true; + case securePlainPhone::ID: + func(static_cast<securePlainPhone &>(obj)); + return true; + case securePlainEmail::ID: + func(static_cast<securePlainEmail &>(obj)); + return true; + case secureRequiredType::ID: + func(static_cast<secureRequiredType &>(obj)); + return true; + case secureRequiredTypeOneOf::ID: + func(static_cast<secureRequiredTypeOneOf &>(obj)); + return true; + case secureSecretSettings::ID: + func(static_cast<secureSecretSettings &>(obj)); + return true; + case secureValue::ID: + func(static_cast<secureValue &>(obj)); + return true; + case secureValueErrorData::ID: + func(static_cast<secureValueErrorData &>(obj)); + return true; + case secureValueErrorFrontSide::ID: + func(static_cast<secureValueErrorFrontSide &>(obj)); + return true; + case secureValueErrorReverseSide::ID: + func(static_cast<secureValueErrorReverseSide &>(obj)); + return true; + case secureValueErrorSelfie::ID: + func(static_cast<secureValueErrorSelfie &>(obj)); + return true; + case secureValueErrorFile::ID: + func(static_cast<secureValueErrorFile &>(obj)); + return true; + case secureValueErrorFiles::ID: + func(static_cast<secureValueErrorFiles &>(obj)); + return true; + case secureValueError::ID: + func(static_cast<secureValueError &>(obj)); + return true; + case secureValueErrorTranslationFile::ID: + func(static_cast<secureValueErrorTranslationFile &>(obj)); + return true; + case secureValueErrorTranslationFiles::ID: + func(static_cast<secureValueErrorTranslationFiles &>(obj)); + return true; + case secureValueHash::ID: + func(static_cast<secureValueHash &>(obj)); + return true; + case secureValueTypePersonalDetails::ID: + func(static_cast<secureValueTypePersonalDetails &>(obj)); + return true; + case secureValueTypePassport::ID: + func(static_cast<secureValueTypePassport &>(obj)); + return true; + case secureValueTypeDriverLicense::ID: + func(static_cast<secureValueTypeDriverLicense &>(obj)); + return true; + case secureValueTypeIdentityCard::ID: + func(static_cast<secureValueTypeIdentityCard &>(obj)); + return true; + case secureValueTypeInternalPassport::ID: + func(static_cast<secureValueTypeInternalPassport &>(obj)); + return true; + case secureValueTypeAddress::ID: + func(static_cast<secureValueTypeAddress &>(obj)); + return true; + case secureValueTypeUtilityBill::ID: + func(static_cast<secureValueTypeUtilityBill &>(obj)); + return true; + case secureValueTypeBankStatement::ID: + func(static_cast<secureValueTypeBankStatement &>(obj)); + return true; + case secureValueTypeRentalAgreement::ID: + func(static_cast<secureValueTypeRentalAgreement &>(obj)); + return true; + case secureValueTypePassportRegistration::ID: + func(static_cast<secureValueTypePassportRegistration &>(obj)); + return true; + case secureValueTypeTemporaryRegistration::ID: + func(static_cast<secureValueTypeTemporaryRegistration &>(obj)); + return true; + case secureValueTypePhone::ID: + func(static_cast<secureValueTypePhone &>(obj)); + return true; + case secureValueTypeEmail::ID: + func(static_cast<secureValueTypeEmail &>(obj)); + return true; + case sendAsPeer::ID: + func(static_cast<sendAsPeer &>(obj)); + return true; + case sendMessageTypingAction::ID: + func(static_cast<sendMessageTypingAction &>(obj)); + return true; + case sendMessageCancelAction::ID: + func(static_cast<sendMessageCancelAction &>(obj)); + return true; + case sendMessageRecordVideoAction::ID: + func(static_cast<sendMessageRecordVideoAction &>(obj)); + return true; + case sendMessageUploadVideoAction::ID: + func(static_cast<sendMessageUploadVideoAction &>(obj)); + return true; + case sendMessageRecordAudioAction::ID: + func(static_cast<sendMessageRecordAudioAction &>(obj)); + return true; + case sendMessageUploadAudioAction::ID: + func(static_cast<sendMessageUploadAudioAction &>(obj)); + return true; + case sendMessageUploadPhotoAction::ID: + func(static_cast<sendMessageUploadPhotoAction &>(obj)); + return true; + case sendMessageUploadDocumentAction::ID: + func(static_cast<sendMessageUploadDocumentAction &>(obj)); + return true; + case sendMessageGeoLocationAction::ID: + func(static_cast<sendMessageGeoLocationAction &>(obj)); + return true; + case sendMessageChooseContactAction::ID: + func(static_cast<sendMessageChooseContactAction &>(obj)); + return true; + case sendMessageGamePlayAction::ID: + func(static_cast<sendMessageGamePlayAction &>(obj)); + return true; + case sendMessageRecordRoundAction::ID: + func(static_cast<sendMessageRecordRoundAction &>(obj)); + return true; + case sendMessageUploadRoundAction::ID: + func(static_cast<sendMessageUploadRoundAction &>(obj)); + return true; + case speakingInGroupCallAction::ID: + func(static_cast<speakingInGroupCallAction &>(obj)); + return true; + case sendMessageHistoryImportAction::ID: + func(static_cast<sendMessageHistoryImportAction &>(obj)); + return true; + case sendMessageChooseStickerAction::ID: + func(static_cast<sendMessageChooseStickerAction &>(obj)); + return true; + case sendMessageEmojiInteraction::ID: + func(static_cast<sendMessageEmojiInteraction &>(obj)); + return true; + case sendMessageEmojiInteractionSeen::ID: + func(static_cast<sendMessageEmojiInteractionSeen &>(obj)); + return true; + case shippingOption::ID: + func(static_cast<shippingOption &>(obj)); + return true; + case simpleWebViewResultUrl::ID: + func(static_cast<simpleWebViewResultUrl &>(obj)); + return true; + case sponsoredMessage::ID: + func(static_cast<sponsoredMessage &>(obj)); + return true; + case statsAbsValueAndPrev::ID: + func(static_cast<statsAbsValueAndPrev &>(obj)); + return true; + case statsDateRangeDays::ID: + func(static_cast<statsDateRangeDays &>(obj)); + return true; + case statsGraphAsync::ID: + func(static_cast<statsGraphAsync &>(obj)); + return true; + case statsGraphError::ID: + func(static_cast<statsGraphError &>(obj)); + return true; + case statsGraph::ID: + func(static_cast<statsGraph &>(obj)); + return true; + case statsGroupTopAdmin::ID: + func(static_cast<statsGroupTopAdmin &>(obj)); + return true; + case statsGroupTopInviter::ID: + func(static_cast<statsGroupTopInviter &>(obj)); + return true; + case statsGroupTopPoster::ID: + func(static_cast<statsGroupTopPoster &>(obj)); + return true; + case statsPercentValue::ID: + func(static_cast<statsPercentValue &>(obj)); + return true; + case statsURL::ID: + func(static_cast<statsURL &>(obj)); + return true; + case stickerKeyword::ID: + func(static_cast<stickerKeyword &>(obj)); + return true; + case stickerPack::ID: + func(static_cast<stickerPack &>(obj)); + return true; + case stickerSet::ID: + func(static_cast<stickerSet &>(obj)); + return true; + case stickerSetCovered::ID: + func(static_cast<stickerSetCovered &>(obj)); + return true; + case stickerSetMultiCovered::ID: + func(static_cast<stickerSetMultiCovered &>(obj)); + return true; + case stickerSetFullCovered::ID: + func(static_cast<stickerSetFullCovered &>(obj)); + return true; + case theme::ID: + func(static_cast<theme &>(obj)); + return true; + case themeSettings::ID: + func(static_cast<themeSettings &>(obj)); + return true; + case topPeer::ID: + func(static_cast<topPeer &>(obj)); + return true; + case topPeerCategoryBotsPM::ID: + func(static_cast<topPeerCategoryBotsPM &>(obj)); + return true; + case topPeerCategoryBotsInline::ID: + func(static_cast<topPeerCategoryBotsInline &>(obj)); + return true; + case topPeerCategoryCorrespondents::ID: + func(static_cast<topPeerCategoryCorrespondents &>(obj)); + return true; + case topPeerCategoryGroups::ID: + func(static_cast<topPeerCategoryGroups &>(obj)); + return true; + case topPeerCategoryChannels::ID: + func(static_cast<topPeerCategoryChannels &>(obj)); + return true; + case topPeerCategoryPhoneCalls::ID: + func(static_cast<topPeerCategoryPhoneCalls &>(obj)); + return true; + case topPeerCategoryForwardUsers::ID: + func(static_cast<topPeerCategoryForwardUsers &>(obj)); + return true; + case topPeerCategoryForwardChats::ID: + func(static_cast<topPeerCategoryForwardChats &>(obj)); + return true; + case topPeerCategoryPeers::ID: + func(static_cast<topPeerCategoryPeers &>(obj)); + return true; + case updateNewMessage::ID: + func(static_cast<updateNewMessage &>(obj)); + return true; + case updateMessageID::ID: + func(static_cast<updateMessageID &>(obj)); + return true; + case updateDeleteMessages::ID: + func(static_cast<updateDeleteMessages &>(obj)); + return true; + case updateUserTyping::ID: + func(static_cast<updateUserTyping &>(obj)); + return true; + case updateChatUserTyping::ID: + func(static_cast<updateChatUserTyping &>(obj)); + return true; + case updateChatParticipants::ID: + func(static_cast<updateChatParticipants &>(obj)); + return true; + case updateUserStatus::ID: + func(static_cast<updateUserStatus &>(obj)); + return true; + case updateUserName::ID: + func(static_cast<updateUserName &>(obj)); + return true; + case updateUserPhoto::ID: + func(static_cast<updateUserPhoto &>(obj)); + return true; + case updateNewEncryptedMessage::ID: + func(static_cast<updateNewEncryptedMessage &>(obj)); + return true; + case updateEncryptedChatTyping::ID: + func(static_cast<updateEncryptedChatTyping &>(obj)); + return true; + case updateEncryption::ID: + func(static_cast<updateEncryption &>(obj)); + return true; + case updateEncryptedMessagesRead::ID: + func(static_cast<updateEncryptedMessagesRead &>(obj)); + return true; + case updateChatParticipantAdd::ID: + func(static_cast<updateChatParticipantAdd &>(obj)); + return true; + case updateChatParticipantDelete::ID: + func(static_cast<updateChatParticipantDelete &>(obj)); + return true; + case updateDcOptions::ID: + func(static_cast<updateDcOptions &>(obj)); + return true; + case updateNotifySettings::ID: + func(static_cast<updateNotifySettings &>(obj)); + return true; + case updateServiceNotification::ID: + func(static_cast<updateServiceNotification &>(obj)); + return true; + case updatePrivacy::ID: + func(static_cast<updatePrivacy &>(obj)); + return true; + case updateUserPhone::ID: + func(static_cast<updateUserPhone &>(obj)); + return true; + case updateReadHistoryInbox::ID: + func(static_cast<updateReadHistoryInbox &>(obj)); + return true; + case updateReadHistoryOutbox::ID: + func(static_cast<updateReadHistoryOutbox &>(obj)); + return true; + case updateWebPage::ID: + func(static_cast<updateWebPage &>(obj)); + return true; + case updateReadMessagesContents::ID: + func(static_cast<updateReadMessagesContents &>(obj)); + return true; + case updateChannelTooLong::ID: + func(static_cast<updateChannelTooLong &>(obj)); + return true; + case updateChannel::ID: + func(static_cast<updateChannel &>(obj)); + return true; + case updateNewChannelMessage::ID: + func(static_cast<updateNewChannelMessage &>(obj)); + return true; + case updateReadChannelInbox::ID: + func(static_cast<updateReadChannelInbox &>(obj)); + return true; + case updateDeleteChannelMessages::ID: + func(static_cast<updateDeleteChannelMessages &>(obj)); + return true; + case updateChannelMessageViews::ID: + func(static_cast<updateChannelMessageViews &>(obj)); + return true; + case updateChatParticipantAdmin::ID: + func(static_cast<updateChatParticipantAdmin &>(obj)); + return true; + case updateNewStickerSet::ID: + func(static_cast<updateNewStickerSet &>(obj)); + return true; + case updateStickerSetsOrder::ID: + func(static_cast<updateStickerSetsOrder &>(obj)); + return true; + case updateStickerSets::ID: + func(static_cast<updateStickerSets &>(obj)); + return true; + case updateSavedGifs::ID: + func(static_cast<updateSavedGifs &>(obj)); + return true; + case updateBotInlineQuery::ID: + func(static_cast<updateBotInlineQuery &>(obj)); + return true; + case updateBotInlineSend::ID: + func(static_cast<updateBotInlineSend &>(obj)); + return true; + case updateEditChannelMessage::ID: + func(static_cast<updateEditChannelMessage &>(obj)); + return true; + case updateBotCallbackQuery::ID: + func(static_cast<updateBotCallbackQuery &>(obj)); + return true; + case updateEditMessage::ID: + func(static_cast<updateEditMessage &>(obj)); + return true; + case updateInlineBotCallbackQuery::ID: + func(static_cast<updateInlineBotCallbackQuery &>(obj)); + return true; + case updateReadChannelOutbox::ID: + func(static_cast<updateReadChannelOutbox &>(obj)); + return true; + case updateDraftMessage::ID: + func(static_cast<updateDraftMessage &>(obj)); + return true; + case updateReadFeaturedStickers::ID: + func(static_cast<updateReadFeaturedStickers &>(obj)); + return true; + case updateRecentStickers::ID: + func(static_cast<updateRecentStickers &>(obj)); + return true; + case updateConfig::ID: + func(static_cast<updateConfig &>(obj)); + return true; + case updatePtsChanged::ID: + func(static_cast<updatePtsChanged &>(obj)); + return true; + case updateChannelWebPage::ID: + func(static_cast<updateChannelWebPage &>(obj)); + return true; + case updateDialogPinned::ID: + func(static_cast<updateDialogPinned &>(obj)); + return true; + case updatePinnedDialogs::ID: + func(static_cast<updatePinnedDialogs &>(obj)); + return true; + case updateBotWebhookJSON::ID: + func(static_cast<updateBotWebhookJSON &>(obj)); + return true; + case updateBotWebhookJSONQuery::ID: + func(static_cast<updateBotWebhookJSONQuery &>(obj)); + return true; + case updateBotShippingQuery::ID: + func(static_cast<updateBotShippingQuery &>(obj)); + return true; + case updateBotPrecheckoutQuery::ID: + func(static_cast<updateBotPrecheckoutQuery &>(obj)); + return true; + case updatePhoneCall::ID: + func(static_cast<updatePhoneCall &>(obj)); + return true; + case updateLangPackTooLong::ID: + func(static_cast<updateLangPackTooLong &>(obj)); + return true; + case updateLangPack::ID: + func(static_cast<updateLangPack &>(obj)); + return true; + case updateFavedStickers::ID: + func(static_cast<updateFavedStickers &>(obj)); + return true; + case updateChannelReadMessagesContents::ID: + func(static_cast<updateChannelReadMessagesContents &>(obj)); + return true; + case updateContactsReset::ID: + func(static_cast<updateContactsReset &>(obj)); + return true; + case updateChannelAvailableMessages::ID: + func(static_cast<updateChannelAvailableMessages &>(obj)); + return true; + case updateDialogUnreadMark::ID: + func(static_cast<updateDialogUnreadMark &>(obj)); + return true; + case updateMessagePoll::ID: + func(static_cast<updateMessagePoll &>(obj)); + return true; + case updateChatDefaultBannedRights::ID: + func(static_cast<updateChatDefaultBannedRights &>(obj)); + return true; + case updateFolderPeers::ID: + func(static_cast<updateFolderPeers &>(obj)); + return true; + case updatePeerSettings::ID: + func(static_cast<updatePeerSettings &>(obj)); + return true; + case updatePeerLocated::ID: + func(static_cast<updatePeerLocated &>(obj)); + return true; + case updateNewScheduledMessage::ID: + func(static_cast<updateNewScheduledMessage &>(obj)); + return true; + case updateDeleteScheduledMessages::ID: + func(static_cast<updateDeleteScheduledMessages &>(obj)); + return true; + case updateTheme::ID: + func(static_cast<updateTheme &>(obj)); + return true; + case updateGeoLiveViewed::ID: + func(static_cast<updateGeoLiveViewed &>(obj)); + return true; + case updateLoginToken::ID: + func(static_cast<updateLoginToken &>(obj)); + return true; + case updateMessagePollVote::ID: + func(static_cast<updateMessagePollVote &>(obj)); + return true; + case updateDialogFilter::ID: + func(static_cast<updateDialogFilter &>(obj)); + return true; + case updateDialogFilterOrder::ID: + func(static_cast<updateDialogFilterOrder &>(obj)); + return true; + case updateDialogFilters::ID: + func(static_cast<updateDialogFilters &>(obj)); + return true; + case updatePhoneCallSignalingData::ID: + func(static_cast<updatePhoneCallSignalingData &>(obj)); + return true; + case updateChannelMessageForwards::ID: + func(static_cast<updateChannelMessageForwards &>(obj)); + return true; + case updateReadChannelDiscussionInbox::ID: + func(static_cast<updateReadChannelDiscussionInbox &>(obj)); + return true; + case updateReadChannelDiscussionOutbox::ID: + func(static_cast<updateReadChannelDiscussionOutbox &>(obj)); + return true; + case updatePeerBlocked::ID: + func(static_cast<updatePeerBlocked &>(obj)); + return true; + case updateChannelUserTyping::ID: + func(static_cast<updateChannelUserTyping &>(obj)); + return true; + case updatePinnedMessages::ID: + func(static_cast<updatePinnedMessages &>(obj)); + return true; + case updatePinnedChannelMessages::ID: + func(static_cast<updatePinnedChannelMessages &>(obj)); + return true; + case updateChat::ID: + func(static_cast<updateChat &>(obj)); + return true; + case updateGroupCallParticipants::ID: + func(static_cast<updateGroupCallParticipants &>(obj)); + return true; + case updateGroupCall::ID: + func(static_cast<updateGroupCall &>(obj)); + return true; + case updatePeerHistoryTTL::ID: + func(static_cast<updatePeerHistoryTTL &>(obj)); + return true; + case updateChatParticipant::ID: + func(static_cast<updateChatParticipant &>(obj)); + return true; + case updateChannelParticipant::ID: + func(static_cast<updateChannelParticipant &>(obj)); + return true; + case updateBotStopped::ID: + func(static_cast<updateBotStopped &>(obj)); + return true; + case updateGroupCallConnection::ID: + func(static_cast<updateGroupCallConnection &>(obj)); + return true; + case updateBotCommands::ID: + func(static_cast<updateBotCommands &>(obj)); + return true; + case updatePendingJoinRequests::ID: + func(static_cast<updatePendingJoinRequests &>(obj)); + return true; + case updateBotChatInviteRequester::ID: + func(static_cast<updateBotChatInviteRequester &>(obj)); + return true; + case updateMessageReactions::ID: + func(static_cast<updateMessageReactions &>(obj)); + return true; + case updateAttachMenuBots::ID: + func(static_cast<updateAttachMenuBots &>(obj)); + return true; + case updateWebViewResultSent::ID: + func(static_cast<updateWebViewResultSent &>(obj)); + return true; + case updateBotMenuButton::ID: + func(static_cast<updateBotMenuButton &>(obj)); + return true; + case updateSavedRingtones::ID: + func(static_cast<updateSavedRingtones &>(obj)); + return true; + case updateTranscribedAudio::ID: + func(static_cast<updateTranscribedAudio &>(obj)); + return true; + case updateReadFeaturedEmojiStickers::ID: + func(static_cast<updateReadFeaturedEmojiStickers &>(obj)); + return true; + case updateUserEmojiStatus::ID: + func(static_cast<updateUserEmojiStatus &>(obj)); + return true; + case updateRecentEmojiStatuses::ID: + func(static_cast<updateRecentEmojiStatuses &>(obj)); + return true; + case updateRecentReactions::ID: + func(static_cast<updateRecentReactions &>(obj)); + return true; + case updateMoveStickerSetToTop::ID: + func(static_cast<updateMoveStickerSetToTop &>(obj)); + return true; + case updateMessageExtendedMedia::ID: + func(static_cast<updateMessageExtendedMedia &>(obj)); + return true; + case updateChannelPinnedTopic::ID: + func(static_cast<updateChannelPinnedTopic &>(obj)); + return true; + case updatesTooLong::ID: + func(static_cast<updatesTooLong &>(obj)); + return true; + case updateShortMessage::ID: + func(static_cast<updateShortMessage &>(obj)); + return true; + case updateShortChatMessage::ID: + func(static_cast<updateShortChatMessage &>(obj)); + return true; + case updateShort::ID: + func(static_cast<updateShort &>(obj)); + return true; + case updatesCombined::ID: + func(static_cast<updatesCombined &>(obj)); + return true; + case updates::ID: + func(static_cast<updates &>(obj)); + return true; + case updateShortSentMessage::ID: + func(static_cast<updateShortSentMessage &>(obj)); + return true; + case urlAuthResultRequest::ID: + func(static_cast<urlAuthResultRequest &>(obj)); + return true; + case urlAuthResultAccepted::ID: + func(static_cast<urlAuthResultAccepted &>(obj)); + return true; + case urlAuthResultDefault::ID: + func(static_cast<urlAuthResultDefault &>(obj)); + return true; + case userEmpty::ID: + func(static_cast<userEmpty &>(obj)); + return true; + case user::ID: + func(static_cast<user &>(obj)); + return true; + case userFull::ID: + func(static_cast<userFull &>(obj)); + return true; + case userProfilePhotoEmpty::ID: + func(static_cast<userProfilePhotoEmpty &>(obj)); + return true; + case userProfilePhoto::ID: + func(static_cast<userProfilePhoto &>(obj)); + return true; + case userStatusEmpty::ID: + func(static_cast<userStatusEmpty &>(obj)); + return true; + case userStatusOnline::ID: + func(static_cast<userStatusOnline &>(obj)); + return true; + case userStatusOffline::ID: + func(static_cast<userStatusOffline &>(obj)); + return true; + case userStatusRecently::ID: + func(static_cast<userStatusRecently &>(obj)); + return true; + case userStatusLastWeek::ID: + func(static_cast<userStatusLastWeek &>(obj)); + return true; + case userStatusLastMonth::ID: + func(static_cast<userStatusLastMonth &>(obj)); + return true; + case username::ID: + func(static_cast<username &>(obj)); + return true; + case videoSize::ID: + func(static_cast<videoSize &>(obj)); + return true; + case wallPaper::ID: + func(static_cast<wallPaper &>(obj)); + return true; + case wallPaperNoFile::ID: + func(static_cast<wallPaperNoFile &>(obj)); + return true; + case wallPaperSettings::ID: + func(static_cast<wallPaperSettings &>(obj)); + return true; + case webAuthorization::ID: + func(static_cast<webAuthorization &>(obj)); + return true; + case webDocument::ID: + func(static_cast<webDocument &>(obj)); + return true; + case webDocumentNoProxy::ID: + func(static_cast<webDocumentNoProxy &>(obj)); + return true; + case webPageEmpty::ID: + func(static_cast<webPageEmpty &>(obj)); + return true; + case webPagePending::ID: + func(static_cast<webPagePending &>(obj)); + return true; + case webPage::ID: + func(static_cast<webPage &>(obj)); + return true; + case webPageNotModified::ID: + func(static_cast<webPageNotModified &>(obj)); + return true; + case webPageAttributeTheme::ID: + func(static_cast<webPageAttributeTheme &>(obj)); + return true; + case webViewMessageSent::ID: + func(static_cast<webViewMessageSent &>(obj)); + return true; + case webViewResultUrl::ID: + func(static_cast<webViewResultUrl &>(obj)); + return true; + case account_authorizationForm::ID: + func(static_cast<account_authorizationForm &>(obj)); + return true; + case account_authorizations::ID: + func(static_cast<account_authorizations &>(obj)); + return true; + case account_autoDownloadSettings::ID: + func(static_cast<account_autoDownloadSettings &>(obj)); + return true; + case account_contentSettings::ID: + func(static_cast<account_contentSettings &>(obj)); + return true; + case account_emailVerified::ID: + func(static_cast<account_emailVerified &>(obj)); + return true; + case account_emailVerifiedLogin::ID: + func(static_cast<account_emailVerifiedLogin &>(obj)); + return true; + case account_emojiStatusesNotModified::ID: + func(static_cast<account_emojiStatusesNotModified &>(obj)); + return true; + case account_emojiStatuses::ID: + func(static_cast<account_emojiStatuses &>(obj)); + return true; + case account_password::ID: + func(static_cast<account_password &>(obj)); + return true; + case account_passwordInputSettings::ID: + func(static_cast<account_passwordInputSettings &>(obj)); + return true; + case account_passwordSettings::ID: + func(static_cast<account_passwordSettings &>(obj)); + return true; + case account_privacyRules::ID: + func(static_cast<account_privacyRules &>(obj)); + return true; + case account_resetPasswordFailedWait::ID: + func(static_cast<account_resetPasswordFailedWait &>(obj)); + return true; + case account_resetPasswordRequestedWait::ID: + func(static_cast<account_resetPasswordRequestedWait &>(obj)); + return true; + case account_resetPasswordOk::ID: + func(static_cast<account_resetPasswordOk &>(obj)); + return true; + case account_savedRingtone::ID: + func(static_cast<account_savedRingtone &>(obj)); + return true; + case account_savedRingtoneConverted::ID: + func(static_cast<account_savedRingtoneConverted &>(obj)); + return true; + case account_savedRingtonesNotModified::ID: + func(static_cast<account_savedRingtonesNotModified &>(obj)); + return true; + case account_savedRingtones::ID: + func(static_cast<account_savedRingtones &>(obj)); + return true; + case account_sentEmailCode::ID: + func(static_cast<account_sentEmailCode &>(obj)); + return true; + case account_takeout::ID: + func(static_cast<account_takeout &>(obj)); + return true; + case account_themesNotModified::ID: + func(static_cast<account_themesNotModified &>(obj)); + return true; + case account_themes::ID: + func(static_cast<account_themes &>(obj)); + return true; + case account_tmpPassword::ID: + func(static_cast<account_tmpPassword &>(obj)); + return true; + case account_wallPapersNotModified::ID: + func(static_cast<account_wallPapersNotModified &>(obj)); + return true; + case account_wallPapers::ID: + func(static_cast<account_wallPapers &>(obj)); + return true; + case account_webAuthorizations::ID: + func(static_cast<account_webAuthorizations &>(obj)); + return true; + case auth_authorization::ID: + func(static_cast<auth_authorization &>(obj)); + return true; + case auth_authorizationSignUpRequired::ID: + func(static_cast<auth_authorizationSignUpRequired &>(obj)); + return true; + case auth_codeTypeSms::ID: + func(static_cast<auth_codeTypeSms &>(obj)); + return true; + case auth_codeTypeCall::ID: + func(static_cast<auth_codeTypeCall &>(obj)); + return true; + case auth_codeTypeFlashCall::ID: + func(static_cast<auth_codeTypeFlashCall &>(obj)); + return true; + case auth_codeTypeMissedCall::ID: + func(static_cast<auth_codeTypeMissedCall &>(obj)); + return true; + case auth_exportedAuthorization::ID: + func(static_cast<auth_exportedAuthorization &>(obj)); + return true; + case auth_loggedOut::ID: + func(static_cast<auth_loggedOut &>(obj)); + return true; + case auth_loginToken::ID: + func(static_cast<auth_loginToken &>(obj)); + return true; + case auth_loginTokenMigrateTo::ID: + func(static_cast<auth_loginTokenMigrateTo &>(obj)); + return true; + case auth_loginTokenSuccess::ID: + func(static_cast<auth_loginTokenSuccess &>(obj)); + return true; + case auth_passwordRecovery::ID: + func(static_cast<auth_passwordRecovery &>(obj)); + return true; + case auth_sentCode::ID: + func(static_cast<auth_sentCode &>(obj)); + return true; + case auth_sentCodeTypeApp::ID: + func(static_cast<auth_sentCodeTypeApp &>(obj)); + return true; + case auth_sentCodeTypeSms::ID: + func(static_cast<auth_sentCodeTypeSms &>(obj)); + return true; + case auth_sentCodeTypeCall::ID: + func(static_cast<auth_sentCodeTypeCall &>(obj)); + return true; + case auth_sentCodeTypeFlashCall::ID: + func(static_cast<auth_sentCodeTypeFlashCall &>(obj)); + return true; + case auth_sentCodeTypeMissedCall::ID: + func(static_cast<auth_sentCodeTypeMissedCall &>(obj)); + return true; + case auth_sentCodeTypeEmailCode::ID: + func(static_cast<auth_sentCodeTypeEmailCode &>(obj)); + return true; + case auth_sentCodeTypeSetUpEmailRequired::ID: + func(static_cast<auth_sentCodeTypeSetUpEmailRequired &>(obj)); + return true; + case channels_adminLogResults::ID: + func(static_cast<channels_adminLogResults &>(obj)); + return true; + case channels_channelParticipant::ID: + func(static_cast<channels_channelParticipant &>(obj)); + return true; + case channels_channelParticipants::ID: + func(static_cast<channels_channelParticipants &>(obj)); + return true; + case channels_channelParticipantsNotModified::ID: + func(static_cast<channels_channelParticipantsNotModified &>(obj)); + return true; + case channels_sendAsPeers::ID: + func(static_cast<channels_sendAsPeers &>(obj)); + return true; + case contacts_blocked::ID: + func(static_cast<contacts_blocked &>(obj)); + return true; + case contacts_blockedSlice::ID: + func(static_cast<contacts_blockedSlice &>(obj)); + return true; + case contacts_contactsNotModified::ID: + func(static_cast<contacts_contactsNotModified &>(obj)); + return true; + case contacts_contacts::ID: + func(static_cast<contacts_contacts &>(obj)); + return true; + case contacts_found::ID: + func(static_cast<contacts_found &>(obj)); + return true; + case contacts_importedContacts::ID: + func(static_cast<contacts_importedContacts &>(obj)); + return true; + case contacts_resolvedPeer::ID: + func(static_cast<contacts_resolvedPeer &>(obj)); + return true; + case contacts_topPeersNotModified::ID: + func(static_cast<contacts_topPeersNotModified &>(obj)); + return true; + case contacts_topPeers::ID: + func(static_cast<contacts_topPeers &>(obj)); + return true; + case contacts_topPeersDisabled::ID: + func(static_cast<contacts_topPeersDisabled &>(obj)); + return true; + case help_appUpdate::ID: + func(static_cast<help_appUpdate &>(obj)); + return true; + case help_noAppUpdate::ID: + func(static_cast<help_noAppUpdate &>(obj)); + return true; + case help_configSimple::ID: + func(static_cast<help_configSimple &>(obj)); + return true; + case help_countriesListNotModified::ID: + func(static_cast<help_countriesListNotModified &>(obj)); + return true; + case help_countriesList::ID: + func(static_cast<help_countriesList &>(obj)); + return true; + case help_country::ID: + func(static_cast<help_country &>(obj)); + return true; + case help_countryCode::ID: + func(static_cast<help_countryCode &>(obj)); + return true; + case help_deepLinkInfoEmpty::ID: + func(static_cast<help_deepLinkInfoEmpty &>(obj)); + return true; + case help_deepLinkInfo::ID: + func(static_cast<help_deepLinkInfo &>(obj)); + return true; + case help_inviteText::ID: + func(static_cast<help_inviteText &>(obj)); + return true; + case help_passportConfigNotModified::ID: + func(static_cast<help_passportConfigNotModified &>(obj)); + return true; + case help_passportConfig::ID: + func(static_cast<help_passportConfig &>(obj)); + return true; + case help_premiumPromo::ID: + func(static_cast<help_premiumPromo &>(obj)); + return true; + case help_promoDataEmpty::ID: + func(static_cast<help_promoDataEmpty &>(obj)); + return true; + case help_promoData::ID: + func(static_cast<help_promoData &>(obj)); + return true; + case help_recentMeUrls::ID: + func(static_cast<help_recentMeUrls &>(obj)); + return true; + case help_support::ID: + func(static_cast<help_support &>(obj)); + return true; + case help_supportName::ID: + func(static_cast<help_supportName &>(obj)); + return true; + case help_termsOfService::ID: + func(static_cast<help_termsOfService &>(obj)); + return true; + case help_termsOfServiceUpdateEmpty::ID: + func(static_cast<help_termsOfServiceUpdateEmpty &>(obj)); + return true; + case help_termsOfServiceUpdate::ID: + func(static_cast<help_termsOfServiceUpdate &>(obj)); + return true; + case help_userInfoEmpty::ID: + func(static_cast<help_userInfoEmpty &>(obj)); + return true; + case help_userInfo::ID: + func(static_cast<help_userInfo &>(obj)); + return true; + case messages_affectedFoundMessages::ID: + func(static_cast<messages_affectedFoundMessages &>(obj)); + return true; + case messages_affectedHistory::ID: + func(static_cast<messages_affectedHistory &>(obj)); + return true; + case messages_affectedMessages::ID: + func(static_cast<messages_affectedMessages &>(obj)); + return true; + case messages_allStickersNotModified::ID: + func(static_cast<messages_allStickersNotModified &>(obj)); + return true; + case messages_allStickers::ID: + func(static_cast<messages_allStickers &>(obj)); + return true; + case messages_archivedStickers::ID: + func(static_cast<messages_archivedStickers &>(obj)); + return true; + case messages_availableReactionsNotModified::ID: + func(static_cast<messages_availableReactionsNotModified &>(obj)); + return true; + case messages_availableReactions::ID: + func(static_cast<messages_availableReactions &>(obj)); + return true; + case messages_botCallbackAnswer::ID: + func(static_cast<messages_botCallbackAnswer &>(obj)); + return true; + case messages_botResults::ID: + func(static_cast<messages_botResults &>(obj)); + return true; + case messages_chatAdminsWithInvites::ID: + func(static_cast<messages_chatAdminsWithInvites &>(obj)); + return true; + case messages_chatFull::ID: + func(static_cast<messages_chatFull &>(obj)); + return true; + case messages_chatInviteImporters::ID: + func(static_cast<messages_chatInviteImporters &>(obj)); + return true; + case messages_chats::ID: + func(static_cast<messages_chats &>(obj)); + return true; + case messages_chatsSlice::ID: + func(static_cast<messages_chatsSlice &>(obj)); + return true; + case messages_checkedHistoryImportPeer::ID: + func(static_cast<messages_checkedHistoryImportPeer &>(obj)); + return true; + case messages_dhConfigNotModified::ID: + func(static_cast<messages_dhConfigNotModified &>(obj)); + return true; + case messages_dhConfig::ID: + func(static_cast<messages_dhConfig &>(obj)); + return true; + case messages_dialogs::ID: + func(static_cast<messages_dialogs &>(obj)); + return true; + case messages_dialogsSlice::ID: + func(static_cast<messages_dialogsSlice &>(obj)); + return true; + case messages_dialogsNotModified::ID: + func(static_cast<messages_dialogsNotModified &>(obj)); + return true; + case messages_discussionMessage::ID: + func(static_cast<messages_discussionMessage &>(obj)); + return true; + case messages_exportedChatInvite::ID: + func(static_cast<messages_exportedChatInvite &>(obj)); + return true; + case messages_exportedChatInviteReplaced::ID: + func(static_cast<messages_exportedChatInviteReplaced &>(obj)); + return true; + case messages_exportedChatInvites::ID: + func(static_cast<messages_exportedChatInvites &>(obj)); + return true; + case messages_favedStickersNotModified::ID: + func(static_cast<messages_favedStickersNotModified &>(obj)); + return true; + case messages_favedStickers::ID: + func(static_cast<messages_favedStickers &>(obj)); + return true; + case messages_featuredStickersNotModified::ID: + func(static_cast<messages_featuredStickersNotModified &>(obj)); + return true; + case messages_featuredStickers::ID: + func(static_cast<messages_featuredStickers &>(obj)); + return true; + case messages_forumTopics::ID: + func(static_cast<messages_forumTopics &>(obj)); + return true; + case messages_foundStickerSetsNotModified::ID: + func(static_cast<messages_foundStickerSetsNotModified &>(obj)); + return true; + case messages_foundStickerSets::ID: + func(static_cast<messages_foundStickerSets &>(obj)); + return true; + case messages_highScores::ID: + func(static_cast<messages_highScores &>(obj)); + return true; + case messages_historyImport::ID: + func(static_cast<messages_historyImport &>(obj)); + return true; + case messages_historyImportParsed::ID: + func(static_cast<messages_historyImportParsed &>(obj)); + return true; + case messages_inactiveChats::ID: + func(static_cast<messages_inactiveChats &>(obj)); + return true; + case messages_messageEditData::ID: + func(static_cast<messages_messageEditData &>(obj)); + return true; + case messages_messageReactionsList::ID: + func(static_cast<messages_messageReactionsList &>(obj)); + return true; + case messages_messageViews::ID: + func(static_cast<messages_messageViews &>(obj)); + return true; + case messages_messages::ID: + func(static_cast<messages_messages &>(obj)); + return true; + case messages_messagesSlice::ID: + func(static_cast<messages_messagesSlice &>(obj)); + return true; + case messages_channelMessages::ID: + func(static_cast<messages_channelMessages &>(obj)); + return true; + case messages_messagesNotModified::ID: + func(static_cast<messages_messagesNotModified &>(obj)); + return true; + case messages_peerDialogs::ID: + func(static_cast<messages_peerDialogs &>(obj)); + return true; + case messages_peerSettings::ID: + func(static_cast<messages_peerSettings &>(obj)); + return true; + case messages_reactionsNotModified::ID: + func(static_cast<messages_reactionsNotModified &>(obj)); + return true; + case messages_reactions::ID: + func(static_cast<messages_reactions &>(obj)); + return true; + case messages_recentStickersNotModified::ID: + func(static_cast<messages_recentStickersNotModified &>(obj)); + return true; + case messages_recentStickers::ID: + func(static_cast<messages_recentStickers &>(obj)); + return true; + case messages_savedGifsNotModified::ID: + func(static_cast<messages_savedGifsNotModified &>(obj)); + return true; + case messages_savedGifs::ID: + func(static_cast<messages_savedGifs &>(obj)); + return true; + case messages_searchCounter::ID: + func(static_cast<messages_searchCounter &>(obj)); + return true; + case messages_searchResultsCalendar::ID: + func(static_cast<messages_searchResultsCalendar &>(obj)); + return true; + case messages_searchResultsPositions::ID: + func(static_cast<messages_searchResultsPositions &>(obj)); + return true; + case messages_sentEncryptedMessage::ID: + func(static_cast<messages_sentEncryptedMessage &>(obj)); + return true; + case messages_sentEncryptedFile::ID: + func(static_cast<messages_sentEncryptedFile &>(obj)); + return true; + case messages_sponsoredMessages::ID: + func(static_cast<messages_sponsoredMessages &>(obj)); + return true; + case messages_sponsoredMessagesEmpty::ID: + func(static_cast<messages_sponsoredMessagesEmpty &>(obj)); + return true; + case messages_stickerSet::ID: + func(static_cast<messages_stickerSet &>(obj)); + return true; + case messages_stickerSetNotModified::ID: + func(static_cast<messages_stickerSetNotModified &>(obj)); + return true; + case messages_stickerSetInstallResultSuccess::ID: + func(static_cast<messages_stickerSetInstallResultSuccess &>(obj)); + return true; + case messages_stickerSetInstallResultArchive::ID: + func(static_cast<messages_stickerSetInstallResultArchive &>(obj)); + return true; + case messages_stickersNotModified::ID: + func(static_cast<messages_stickersNotModified &>(obj)); + return true; + case messages_stickers::ID: + func(static_cast<messages_stickers &>(obj)); + return true; + case messages_transcribedAudio::ID: + func(static_cast<messages_transcribedAudio &>(obj)); + return true; + case messages_translateNoResult::ID: + func(static_cast<messages_translateNoResult &>(obj)); + return true; + case messages_translateResultText::ID: + func(static_cast<messages_translateResultText &>(obj)); + return true; + case messages_votesList::ID: + func(static_cast<messages_votesList &>(obj)); + return true; + case payments_bankCardData::ID: + func(static_cast<payments_bankCardData &>(obj)); + return true; + case payments_exportedInvoice::ID: + func(static_cast<payments_exportedInvoice &>(obj)); + return true; + case payments_paymentForm::ID: + func(static_cast<payments_paymentForm &>(obj)); + return true; + case payments_paymentReceipt::ID: + func(static_cast<payments_paymentReceipt &>(obj)); + return true; + case payments_paymentResult::ID: + func(static_cast<payments_paymentResult &>(obj)); + return true; + case payments_paymentVerificationNeeded::ID: + func(static_cast<payments_paymentVerificationNeeded &>(obj)); + return true; + case payments_savedInfo::ID: + func(static_cast<payments_savedInfo &>(obj)); + return true; + case payments_validatedRequestedInfo::ID: + func(static_cast<payments_validatedRequestedInfo &>(obj)); + return true; + case phone_exportedGroupCallInvite::ID: + func(static_cast<phone_exportedGroupCallInvite &>(obj)); + return true; + case phone_groupCall::ID: + func(static_cast<phone_groupCall &>(obj)); + return true; + case phone_groupCallStreamChannels::ID: + func(static_cast<phone_groupCallStreamChannels &>(obj)); + return true; + case phone_groupCallStreamRtmpUrl::ID: + func(static_cast<phone_groupCallStreamRtmpUrl &>(obj)); + return true; + case phone_groupParticipants::ID: + func(static_cast<phone_groupParticipants &>(obj)); + return true; + case phone_joinAsPeers::ID: + func(static_cast<phone_joinAsPeers &>(obj)); + return true; + case phone_phoneCall::ID: + func(static_cast<phone_phoneCall &>(obj)); + return true; + case photos_photo::ID: + func(static_cast<photos_photo &>(obj)); + return true; + case photos_photos::ID: + func(static_cast<photos_photos &>(obj)); + return true; + case photos_photosSlice::ID: + func(static_cast<photos_photosSlice &>(obj)); + return true; + case stats_broadcastStats::ID: + func(static_cast<stats_broadcastStats &>(obj)); + return true; + case stats_megagroupStats::ID: + func(static_cast<stats_megagroupStats &>(obj)); + return true; + case stats_messageStats::ID: + func(static_cast<stats_messageStats &>(obj)); + return true; + case stickers_suggestedShortName::ID: + func(static_cast<stickers_suggestedShortName &>(obj)); + return true; + case storage_fileUnknown::ID: + func(static_cast<storage_fileUnknown &>(obj)); + return true; + case storage_filePartial::ID: + func(static_cast<storage_filePartial &>(obj)); + return true; + case storage_fileJpeg::ID: + func(static_cast<storage_fileJpeg &>(obj)); + return true; + case storage_fileGif::ID: + func(static_cast<storage_fileGif &>(obj)); + return true; + case storage_filePng::ID: + func(static_cast<storage_filePng &>(obj)); + return true; + case storage_filePdf::ID: + func(static_cast<storage_filePdf &>(obj)); + return true; + case storage_fileMp3::ID: + func(static_cast<storage_fileMp3 &>(obj)); + return true; + case storage_fileMov::ID: + func(static_cast<storage_fileMov &>(obj)); + return true; + case storage_fileMp4::ID: + func(static_cast<storage_fileMp4 &>(obj)); + return true; + case storage_fileWebp::ID: + func(static_cast<storage_fileWebp &>(obj)); + return true; + case updates_channelDifferenceEmpty::ID: + func(static_cast<updates_channelDifferenceEmpty &>(obj)); + return true; + case updates_channelDifferenceTooLong::ID: + func(static_cast<updates_channelDifferenceTooLong &>(obj)); + return true; + case updates_channelDifference::ID: + func(static_cast<updates_channelDifference &>(obj)); + return true; + case updates_differenceEmpty::ID: + func(static_cast<updates_differenceEmpty &>(obj)); + return true; + case updates_difference::ID: + func(static_cast<updates_difference &>(obj)); + return true; + case updates_differenceSlice::ID: + func(static_cast<updates_differenceSlice &>(obj)); + return true; + case updates_differenceTooLong::ID: + func(static_cast<updates_differenceTooLong &>(obj)); + return true; + case updates_state::ID: + func(static_cast<updates_state &>(obj)); + return true; + case upload_cdnFileReuploadNeeded::ID: + func(static_cast<upload_cdnFileReuploadNeeded &>(obj)); + return true; + case upload_cdnFile::ID: + func(static_cast<upload_cdnFile &>(obj)); + return true; + case upload_file::ID: + func(static_cast<upload_file &>(obj)); + return true; + case upload_fileCdnRedirect::ID: + func(static_cast<upload_fileCdnRedirect &>(obj)); + return true; + case upload_webFile::ID: + func(static_cast<upload_webFile &>(obj)); + return true; + case users_userFull::ID: + func(static_cast<users_userFull &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Function &obj, const T &func) { + switch (obj.get_id()) { + case account_acceptAuthorization::ID: + func(static_cast<account_acceptAuthorization &>(obj)); + return true; + case account_cancelPasswordEmail::ID: + func(static_cast<account_cancelPasswordEmail &>(obj)); + return true; + case account_changeAuthorizationSettings::ID: + func(static_cast<account_changeAuthorizationSettings &>(obj)); + return true; + case account_changePhone::ID: + func(static_cast<account_changePhone &>(obj)); + return true; + case account_checkUsername::ID: + func(static_cast<account_checkUsername &>(obj)); + return true; + case account_clearRecentEmojiStatuses::ID: + func(static_cast<account_clearRecentEmojiStatuses &>(obj)); + return true; + case account_confirmPasswordEmail::ID: + func(static_cast<account_confirmPasswordEmail &>(obj)); + return true; + case account_confirmPhone::ID: + func(static_cast<account_confirmPhone &>(obj)); + return true; + case account_createTheme::ID: + func(static_cast<account_createTheme &>(obj)); + return true; + case account_declinePasswordReset::ID: + func(static_cast<account_declinePasswordReset &>(obj)); + return true; + case account_deleteAccount::ID: + func(static_cast<account_deleteAccount &>(obj)); + return true; + case account_deleteSecureValue::ID: + func(static_cast<account_deleteSecureValue &>(obj)); + return true; + case account_finishTakeoutSession::ID: + func(static_cast<account_finishTakeoutSession &>(obj)); + return true; + case account_getAccountTTL::ID: + func(static_cast<account_getAccountTTL &>(obj)); + return true; + case account_getAllSecureValues::ID: + func(static_cast<account_getAllSecureValues &>(obj)); + return true; + case account_getAuthorizationForm::ID: + func(static_cast<account_getAuthorizationForm &>(obj)); + return true; + case account_getAuthorizations::ID: + func(static_cast<account_getAuthorizations &>(obj)); + return true; + case account_getAutoDownloadSettings::ID: + func(static_cast<account_getAutoDownloadSettings &>(obj)); + return true; + case account_getChatThemes::ID: + func(static_cast<account_getChatThemes &>(obj)); + return true; + case account_getContactSignUpNotification::ID: + func(static_cast<account_getContactSignUpNotification &>(obj)); + return true; + case account_getContentSettings::ID: + func(static_cast<account_getContentSettings &>(obj)); + return true; + case account_getDefaultEmojiStatuses::ID: + func(static_cast<account_getDefaultEmojiStatuses &>(obj)); + return true; + case account_getGlobalPrivacySettings::ID: + func(static_cast<account_getGlobalPrivacySettings &>(obj)); + return true; + case account_getMultiWallPapers::ID: + func(static_cast<account_getMultiWallPapers &>(obj)); + return true; + case account_getNotifyExceptions::ID: + func(static_cast<account_getNotifyExceptions &>(obj)); + return true; + case account_getNotifySettings::ID: + func(static_cast<account_getNotifySettings &>(obj)); + return true; + case account_getPassword::ID: + func(static_cast<account_getPassword &>(obj)); + return true; + case account_getPasswordSettings::ID: + func(static_cast<account_getPasswordSettings &>(obj)); + return true; + case account_getPrivacy::ID: + func(static_cast<account_getPrivacy &>(obj)); + return true; + case account_getRecentEmojiStatuses::ID: + func(static_cast<account_getRecentEmojiStatuses &>(obj)); + return true; + case account_getSavedRingtones::ID: + func(static_cast<account_getSavedRingtones &>(obj)); + return true; + case account_getSecureValue::ID: + func(static_cast<account_getSecureValue &>(obj)); + return true; + case account_getTheme::ID: + func(static_cast<account_getTheme &>(obj)); + return true; + case account_getThemes::ID: + func(static_cast<account_getThemes &>(obj)); + return true; + case account_getTmpPassword::ID: + func(static_cast<account_getTmpPassword &>(obj)); + return true; + case account_getWallPaper::ID: + func(static_cast<account_getWallPaper &>(obj)); + return true; + case account_getWallPapers::ID: + func(static_cast<account_getWallPapers &>(obj)); + return true; + case account_getWebAuthorizations::ID: + func(static_cast<account_getWebAuthorizations &>(obj)); + return true; + case account_initTakeoutSession::ID: + func(static_cast<account_initTakeoutSession &>(obj)); + return true; + case account_installTheme::ID: + func(static_cast<account_installTheme &>(obj)); + return true; + case account_installWallPaper::ID: + func(static_cast<account_installWallPaper &>(obj)); + return true; + case account_registerDevice::ID: + func(static_cast<account_registerDevice &>(obj)); + return true; + case account_reorderUsernames::ID: + func(static_cast<account_reorderUsernames &>(obj)); + return true; + case account_reportPeer::ID: + func(static_cast<account_reportPeer &>(obj)); + return true; + case account_reportProfilePhoto::ID: + func(static_cast<account_reportProfilePhoto &>(obj)); + return true; + case account_resendPasswordEmail::ID: + func(static_cast<account_resendPasswordEmail &>(obj)); + return true; + case account_resetAuthorization::ID: + func(static_cast<account_resetAuthorization &>(obj)); + return true; + case account_resetNotifySettings::ID: + func(static_cast<account_resetNotifySettings &>(obj)); + return true; + case account_resetPassword::ID: + func(static_cast<account_resetPassword &>(obj)); + return true; + case account_resetWallPapers::ID: + func(static_cast<account_resetWallPapers &>(obj)); + return true; + case account_resetWebAuthorization::ID: + func(static_cast<account_resetWebAuthorization &>(obj)); + return true; + case account_resetWebAuthorizations::ID: + func(static_cast<account_resetWebAuthorizations &>(obj)); + return true; + case account_saveAutoDownloadSettings::ID: + func(static_cast<account_saveAutoDownloadSettings &>(obj)); + return true; + case account_saveRingtone::ID: + func(static_cast<account_saveRingtone &>(obj)); + return true; + case account_saveSecureValue::ID: + func(static_cast<account_saveSecureValue &>(obj)); + return true; + case account_saveTheme::ID: + func(static_cast<account_saveTheme &>(obj)); + return true; + case account_saveWallPaper::ID: + func(static_cast<account_saveWallPaper &>(obj)); + return true; + case account_sendChangePhoneCode::ID: + func(static_cast<account_sendChangePhoneCode &>(obj)); + return true; + case account_sendConfirmPhoneCode::ID: + func(static_cast<account_sendConfirmPhoneCode &>(obj)); + return true; + case account_sendVerifyEmailCode::ID: + func(static_cast<account_sendVerifyEmailCode &>(obj)); + return true; + case account_sendVerifyPhoneCode::ID: + func(static_cast<account_sendVerifyPhoneCode &>(obj)); + return true; + case account_setAccountTTL::ID: + func(static_cast<account_setAccountTTL &>(obj)); + return true; + case account_setAuthorizationTTL::ID: + func(static_cast<account_setAuthorizationTTL &>(obj)); + return true; + case account_setContactSignUpNotification::ID: + func(static_cast<account_setContactSignUpNotification &>(obj)); + return true; + case account_setContentSettings::ID: + func(static_cast<account_setContentSettings &>(obj)); + return true; + case account_setGlobalPrivacySettings::ID: + func(static_cast<account_setGlobalPrivacySettings &>(obj)); + return true; + case account_setPrivacy::ID: + func(static_cast<account_setPrivacy &>(obj)); + return true; + case account_toggleUsername::ID: + func(static_cast<account_toggleUsername &>(obj)); + return true; + case account_unregisterDevice::ID: + func(static_cast<account_unregisterDevice &>(obj)); + return true; + case account_updateDeviceLocked::ID: + func(static_cast<account_updateDeviceLocked &>(obj)); + return true; + case account_updateEmojiStatus::ID: + func(static_cast<account_updateEmojiStatus &>(obj)); + return true; + case account_updateNotifySettings::ID: + func(static_cast<account_updateNotifySettings &>(obj)); + return true; + case account_updatePasswordSettings::ID: + func(static_cast<account_updatePasswordSettings &>(obj)); + return true; + case account_updateProfile::ID: + func(static_cast<account_updateProfile &>(obj)); + return true; + case account_updateStatus::ID: + func(static_cast<account_updateStatus &>(obj)); + return true; + case account_updateTheme::ID: + func(static_cast<account_updateTheme &>(obj)); + return true; + case account_updateUsername::ID: + func(static_cast<account_updateUsername &>(obj)); + return true; + case account_uploadRingtone::ID: + func(static_cast<account_uploadRingtone &>(obj)); + return true; + case account_uploadTheme::ID: + func(static_cast<account_uploadTheme &>(obj)); + return true; + case account_uploadWallPaper::ID: + func(static_cast<account_uploadWallPaper &>(obj)); + return true; + case account_verifyEmail::ID: + func(static_cast<account_verifyEmail &>(obj)); + return true; + case account_verifyPhone::ID: + func(static_cast<account_verifyPhone &>(obj)); + return true; + case auth_acceptLoginToken::ID: + func(static_cast<auth_acceptLoginToken &>(obj)); + return true; + case auth_bindTempAuthKey::ID: + func(static_cast<auth_bindTempAuthKey &>(obj)); + return true; + case auth_cancelCode::ID: + func(static_cast<auth_cancelCode &>(obj)); + return true; + case auth_checkPassword::ID: + func(static_cast<auth_checkPassword &>(obj)); + return true; + case auth_checkRecoveryPassword::ID: + func(static_cast<auth_checkRecoveryPassword &>(obj)); + return true; + case auth_dropTempAuthKeys::ID: + func(static_cast<auth_dropTempAuthKeys &>(obj)); + return true; + case auth_exportAuthorization::ID: + func(static_cast<auth_exportAuthorization &>(obj)); + return true; + case auth_exportLoginToken::ID: + func(static_cast<auth_exportLoginToken &>(obj)); + return true; + case auth_importAuthorization::ID: + func(static_cast<auth_importAuthorization &>(obj)); + return true; + case auth_importBotAuthorization::ID: + func(static_cast<auth_importBotAuthorization &>(obj)); + return true; + case auth_importLoginToken::ID: + func(static_cast<auth_importLoginToken &>(obj)); + return true; + case auth_logOut::ID: + func(static_cast<auth_logOut &>(obj)); + return true; + case auth_recoverPassword::ID: + func(static_cast<auth_recoverPassword &>(obj)); + return true; + case auth_requestPasswordRecovery::ID: + func(static_cast<auth_requestPasswordRecovery &>(obj)); + return true; + case auth_resendCode::ID: + func(static_cast<auth_resendCode &>(obj)); + return true; + case auth_resetAuthorizations::ID: + func(static_cast<auth_resetAuthorizations &>(obj)); + return true; + case auth_sendCode::ID: + func(static_cast<auth_sendCode &>(obj)); + return true; + case auth_signIn::ID: + func(static_cast<auth_signIn &>(obj)); + return true; + case auth_signUp::ID: + func(static_cast<auth_signUp &>(obj)); + return true; + case bots_answerWebhookJSONQuery::ID: + func(static_cast<bots_answerWebhookJSONQuery &>(obj)); + return true; + case bots_getBotCommands::ID: + func(static_cast<bots_getBotCommands &>(obj)); + return true; + case bots_getBotMenuButton::ID: + func(static_cast<bots_getBotMenuButton &>(obj)); + return true; + case bots_resetBotCommands::ID: + func(static_cast<bots_resetBotCommands &>(obj)); + return true; + case bots_sendCustomRequest::ID: + func(static_cast<bots_sendCustomRequest &>(obj)); + return true; + case bots_setBotBroadcastDefaultAdminRights::ID: + func(static_cast<bots_setBotBroadcastDefaultAdminRights &>(obj)); + return true; + case bots_setBotCommands::ID: + func(static_cast<bots_setBotCommands &>(obj)); + return true; + case bots_setBotGroupDefaultAdminRights::ID: + func(static_cast<bots_setBotGroupDefaultAdminRights &>(obj)); + return true; + case bots_setBotMenuButton::ID: + func(static_cast<bots_setBotMenuButton &>(obj)); + return true; + case channels_checkUsername::ID: + func(static_cast<channels_checkUsername &>(obj)); + return true; + case channels_convertToGigagroup::ID: + func(static_cast<channels_convertToGigagroup &>(obj)); + return true; + case channels_createChannel::ID: + func(static_cast<channels_createChannel &>(obj)); + return true; + case channels_createForumTopic::ID: + func(static_cast<channels_createForumTopic &>(obj)); + return true; + case channels_deactivateAllUsernames::ID: + func(static_cast<channels_deactivateAllUsernames &>(obj)); + return true; + case channels_deleteChannel::ID: + func(static_cast<channels_deleteChannel &>(obj)); + return true; + case channels_deleteHistory::ID: + func(static_cast<channels_deleteHistory &>(obj)); + return true; + case channels_deleteMessages::ID: + func(static_cast<channels_deleteMessages &>(obj)); + return true; + case channels_deleteParticipantHistory::ID: + func(static_cast<channels_deleteParticipantHistory &>(obj)); + return true; + case channels_deleteTopicHistory::ID: + func(static_cast<channels_deleteTopicHistory &>(obj)); + return true; + case channels_editAdmin::ID: + func(static_cast<channels_editAdmin &>(obj)); + return true; + case channels_editBanned::ID: + func(static_cast<channels_editBanned &>(obj)); + return true; + case channels_editCreator::ID: + func(static_cast<channels_editCreator &>(obj)); + return true; + case channels_editForumTopic::ID: + func(static_cast<channels_editForumTopic &>(obj)); + return true; + case channels_editLocation::ID: + func(static_cast<channels_editLocation &>(obj)); + return true; + case channels_editPhoto::ID: + func(static_cast<channels_editPhoto &>(obj)); + return true; + case channels_editTitle::ID: + func(static_cast<channels_editTitle &>(obj)); + return true; + case channels_exportMessageLink::ID: + func(static_cast<channels_exportMessageLink &>(obj)); + return true; + case channels_getAdminLog::ID: + func(static_cast<channels_getAdminLog &>(obj)); + return true; + case channels_getAdminedPublicChannels::ID: + func(static_cast<channels_getAdminedPublicChannels &>(obj)); + return true; + case channels_getChannels::ID: + func(static_cast<channels_getChannels &>(obj)); + return true; + case channels_getForumTopics::ID: + func(static_cast<channels_getForumTopics &>(obj)); + return true; + case channels_getForumTopicsByID::ID: + func(static_cast<channels_getForumTopicsByID &>(obj)); + return true; + case channels_getFullChannel::ID: + func(static_cast<channels_getFullChannel &>(obj)); + return true; + case channels_getGroupsForDiscussion::ID: + func(static_cast<channels_getGroupsForDiscussion &>(obj)); + return true; + case channels_getInactiveChannels::ID: + func(static_cast<channels_getInactiveChannels &>(obj)); + return true; + case channels_getLeftChannels::ID: + func(static_cast<channels_getLeftChannels &>(obj)); + return true; + case channels_getMessages::ID: + func(static_cast<channels_getMessages &>(obj)); + return true; + case channels_getParticipant::ID: + func(static_cast<channels_getParticipant &>(obj)); + return true; + case channels_getParticipants::ID: + func(static_cast<channels_getParticipants &>(obj)); + return true; + case channels_getSendAs::ID: + func(static_cast<channels_getSendAs &>(obj)); + return true; + case channels_getSponsoredMessages::ID: + func(static_cast<channels_getSponsoredMessages &>(obj)); + return true; + case channels_inviteToChannel::ID: + func(static_cast<channels_inviteToChannel &>(obj)); + return true; + case channels_joinChannel::ID: + func(static_cast<channels_joinChannel &>(obj)); + return true; + case channels_leaveChannel::ID: + func(static_cast<channels_leaveChannel &>(obj)); + return true; + case channels_readHistory::ID: + func(static_cast<channels_readHistory &>(obj)); + return true; + case channels_readMessageContents::ID: + func(static_cast<channels_readMessageContents &>(obj)); + return true; + case channels_reorderUsernames::ID: + func(static_cast<channels_reorderUsernames &>(obj)); + return true; + case channels_reportSpam::ID: + func(static_cast<channels_reportSpam &>(obj)); + return true; + case channels_setDiscussionGroup::ID: + func(static_cast<channels_setDiscussionGroup &>(obj)); + return true; + case channels_setStickers::ID: + func(static_cast<channels_setStickers &>(obj)); + return true; + case channels_toggleForum::ID: + func(static_cast<channels_toggleForum &>(obj)); + return true; + case channels_toggleJoinRequest::ID: + func(static_cast<channels_toggleJoinRequest &>(obj)); + return true; + case channels_toggleJoinToSend::ID: + func(static_cast<channels_toggleJoinToSend &>(obj)); + return true; + case channels_togglePreHistoryHidden::ID: + func(static_cast<channels_togglePreHistoryHidden &>(obj)); + return true; + case channels_toggleSignatures::ID: + func(static_cast<channels_toggleSignatures &>(obj)); + return true; + case channels_toggleSlowMode::ID: + func(static_cast<channels_toggleSlowMode &>(obj)); + return true; + case channels_toggleUsername::ID: + func(static_cast<channels_toggleUsername &>(obj)); + return true; + case channels_updatePinnedForumTopic::ID: + func(static_cast<channels_updatePinnedForumTopic &>(obj)); + return true; + case channels_updateUsername::ID: + func(static_cast<channels_updateUsername &>(obj)); + return true; + case channels_viewSponsoredMessage::ID: + func(static_cast<channels_viewSponsoredMessage &>(obj)); + return true; + case contacts_acceptContact::ID: + func(static_cast<contacts_acceptContact &>(obj)); + return true; + case contacts_addContact::ID: + func(static_cast<contacts_addContact &>(obj)); + return true; + case contacts_block::ID: + func(static_cast<contacts_block &>(obj)); + return true; + case contacts_blockFromReplies::ID: + func(static_cast<contacts_blockFromReplies &>(obj)); + return true; + case contacts_deleteByPhones::ID: + func(static_cast<contacts_deleteByPhones &>(obj)); + return true; + case contacts_deleteContacts::ID: + func(static_cast<contacts_deleteContacts &>(obj)); + return true; + case contacts_getBlocked::ID: + func(static_cast<contacts_getBlocked &>(obj)); + return true; + case contacts_getContactIDs::ID: + func(static_cast<contacts_getContactIDs &>(obj)); + return true; + case contacts_getContacts::ID: + func(static_cast<contacts_getContacts &>(obj)); + return true; + case contacts_getLocated::ID: + func(static_cast<contacts_getLocated &>(obj)); + return true; + case contacts_getSaved::ID: + func(static_cast<contacts_getSaved &>(obj)); + return true; + case contacts_getStatuses::ID: + func(static_cast<contacts_getStatuses &>(obj)); + return true; + case contacts_getTopPeers::ID: + func(static_cast<contacts_getTopPeers &>(obj)); + return true; + case contacts_importContacts::ID: + func(static_cast<contacts_importContacts &>(obj)); + return true; + case contacts_resetSaved::ID: + func(static_cast<contacts_resetSaved &>(obj)); + return true; + case contacts_resetTopPeerRating::ID: + func(static_cast<contacts_resetTopPeerRating &>(obj)); + return true; + case contacts_resolvePhone::ID: + func(static_cast<contacts_resolvePhone &>(obj)); + return true; + case contacts_resolveUsername::ID: + func(static_cast<contacts_resolveUsername &>(obj)); + return true; + case contacts_search::ID: + func(static_cast<contacts_search &>(obj)); + return true; + case contacts_toggleTopPeers::ID: + func(static_cast<contacts_toggleTopPeers &>(obj)); + return true; + case contacts_unblock::ID: + func(static_cast<contacts_unblock &>(obj)); + return true; + case folders_deleteFolder::ID: + func(static_cast<folders_deleteFolder &>(obj)); + return true; + case folders_editPeerFolders::ID: + func(static_cast<folders_editPeerFolders &>(obj)); + return true; + case help_acceptTermsOfService::ID: + func(static_cast<help_acceptTermsOfService &>(obj)); + return true; + case help_dismissSuggestion::ID: + func(static_cast<help_dismissSuggestion &>(obj)); + return true; + case help_editUserInfo::ID: + func(static_cast<help_editUserInfo &>(obj)); + return true; + case help_getAppChangelog::ID: + func(static_cast<help_getAppChangelog &>(obj)); + return true; + case help_getAppConfig::ID: + func(static_cast<help_getAppConfig &>(obj)); + return true; + case help_getAppUpdate::ID: + func(static_cast<help_getAppUpdate &>(obj)); + return true; + case help_getCdnConfig::ID: + func(static_cast<help_getCdnConfig &>(obj)); + return true; + case help_getConfig::ID: + func(static_cast<help_getConfig &>(obj)); + return true; + case help_getCountriesList::ID: + func(static_cast<help_getCountriesList &>(obj)); + return true; + case help_getDeepLinkInfo::ID: + func(static_cast<help_getDeepLinkInfo &>(obj)); + return true; + case help_getInviteText::ID: + func(static_cast<help_getInviteText &>(obj)); + return true; + case help_getNearestDc::ID: + func(static_cast<help_getNearestDc &>(obj)); + return true; + case help_getPassportConfig::ID: + func(static_cast<help_getPassportConfig &>(obj)); + return true; + case help_getPremiumPromo::ID: + func(static_cast<help_getPremiumPromo &>(obj)); + return true; + case help_getPromoData::ID: + func(static_cast<help_getPromoData &>(obj)); + return true; + case help_getRecentMeUrls::ID: + func(static_cast<help_getRecentMeUrls &>(obj)); + return true; + case help_getSupport::ID: + func(static_cast<help_getSupport &>(obj)); + return true; + case help_getSupportName::ID: + func(static_cast<help_getSupportName &>(obj)); + return true; + case help_getTermsOfServiceUpdate::ID: + func(static_cast<help_getTermsOfServiceUpdate &>(obj)); + return true; + case help_getUserInfo::ID: + func(static_cast<help_getUserInfo &>(obj)); + return true; + case help_hidePromoData::ID: + func(static_cast<help_hidePromoData &>(obj)); + return true; + case help_saveAppLog::ID: + func(static_cast<help_saveAppLog &>(obj)); + return true; + case help_setBotUpdatesStatus::ID: + func(static_cast<help_setBotUpdatesStatus &>(obj)); + return true; + case langpack_getDifference::ID: + func(static_cast<langpack_getDifference &>(obj)); + return true; + case langpack_getLangPack::ID: + func(static_cast<langpack_getLangPack &>(obj)); + return true; + case langpack_getLanguage::ID: + func(static_cast<langpack_getLanguage &>(obj)); + return true; + case langpack_getLanguages::ID: + func(static_cast<langpack_getLanguages &>(obj)); + return true; + case langpack_getStrings::ID: + func(static_cast<langpack_getStrings &>(obj)); + return true; + case messages_acceptEncryption::ID: + func(static_cast<messages_acceptEncryption &>(obj)); + return true; + case messages_acceptUrlAuth::ID: + func(static_cast<messages_acceptUrlAuth &>(obj)); + return true; + case messages_addChatUser::ID: + func(static_cast<messages_addChatUser &>(obj)); + return true; + case messages_checkChatInvite::ID: + func(static_cast<messages_checkChatInvite &>(obj)); + return true; + case messages_checkHistoryImport::ID: + func(static_cast<messages_checkHistoryImport &>(obj)); + return true; + case messages_checkHistoryImportPeer::ID: + func(static_cast<messages_checkHistoryImportPeer &>(obj)); + return true; + case messages_clearAllDrafts::ID: + func(static_cast<messages_clearAllDrafts &>(obj)); + return true; + case messages_clearRecentReactions::ID: + func(static_cast<messages_clearRecentReactions &>(obj)); + return true; + case messages_clearRecentStickers::ID: + func(static_cast<messages_clearRecentStickers &>(obj)); + return true; + case messages_createChat::ID: + func(static_cast<messages_createChat &>(obj)); + return true; + case messages_deleteChat::ID: + func(static_cast<messages_deleteChat &>(obj)); + return true; + case messages_deleteChatUser::ID: + func(static_cast<messages_deleteChatUser &>(obj)); + return true; + case messages_deleteExportedChatInvite::ID: + func(static_cast<messages_deleteExportedChatInvite &>(obj)); + return true; + case messages_deleteHistory::ID: + func(static_cast<messages_deleteHistory &>(obj)); + return true; + case messages_deleteMessages::ID: + func(static_cast<messages_deleteMessages &>(obj)); + return true; + case messages_deletePhoneCallHistory::ID: + func(static_cast<messages_deletePhoneCallHistory &>(obj)); + return true; + case messages_deleteRevokedExportedChatInvites::ID: + func(static_cast<messages_deleteRevokedExportedChatInvites &>(obj)); + return true; + case messages_deleteScheduledMessages::ID: + func(static_cast<messages_deleteScheduledMessages &>(obj)); + return true; + case messages_discardEncryption::ID: + func(static_cast<messages_discardEncryption &>(obj)); + return true; + case messages_editChatAbout::ID: + func(static_cast<messages_editChatAbout &>(obj)); + return true; + case messages_editChatAdmin::ID: + func(static_cast<messages_editChatAdmin &>(obj)); + return true; + case messages_editChatDefaultBannedRights::ID: + func(static_cast<messages_editChatDefaultBannedRights &>(obj)); + return true; + case messages_editChatPhoto::ID: + func(static_cast<messages_editChatPhoto &>(obj)); + return true; + case messages_editChatTitle::ID: + func(static_cast<messages_editChatTitle &>(obj)); + return true; + case messages_editExportedChatInvite::ID: + func(static_cast<messages_editExportedChatInvite &>(obj)); + return true; + case messages_editInlineBotMessage::ID: + func(static_cast<messages_editInlineBotMessage &>(obj)); + return true; + case messages_editMessage::ID: + func(static_cast<messages_editMessage &>(obj)); + return true; + case messages_exportChatInvite::ID: + func(static_cast<messages_exportChatInvite &>(obj)); + return true; + case messages_faveSticker::ID: + func(static_cast<messages_faveSticker &>(obj)); + return true; + case messages_forwardMessages::ID: + func(static_cast<messages_forwardMessages &>(obj)); + return true; + case messages_getAdminsWithInvites::ID: + func(static_cast<messages_getAdminsWithInvites &>(obj)); + return true; + case messages_getAllChats::ID: + func(static_cast<messages_getAllChats &>(obj)); + return true; + case messages_getAllDrafts::ID: + func(static_cast<messages_getAllDrafts &>(obj)); + return true; + case messages_getAllStickers::ID: + func(static_cast<messages_getAllStickers &>(obj)); + return true; + case messages_getArchivedStickers::ID: + func(static_cast<messages_getArchivedStickers &>(obj)); + return true; + case messages_getAttachMenuBot::ID: + func(static_cast<messages_getAttachMenuBot &>(obj)); + return true; + case messages_getAttachMenuBots::ID: + func(static_cast<messages_getAttachMenuBots &>(obj)); + return true; + case messages_getAttachedStickers::ID: + func(static_cast<messages_getAttachedStickers &>(obj)); + return true; + case messages_getAvailableReactions::ID: + func(static_cast<messages_getAvailableReactions &>(obj)); + return true; + case messages_getBotCallbackAnswer::ID: + func(static_cast<messages_getBotCallbackAnswer &>(obj)); + return true; + case messages_getChatInviteImporters::ID: + func(static_cast<messages_getChatInviteImporters &>(obj)); + return true; + case messages_getChats::ID: + func(static_cast<messages_getChats &>(obj)); + return true; + case messages_getCommonChats::ID: + func(static_cast<messages_getCommonChats &>(obj)); + return true; + case messages_getCustomEmojiDocuments::ID: + func(static_cast<messages_getCustomEmojiDocuments &>(obj)); + return true; + case messages_getDhConfig::ID: + func(static_cast<messages_getDhConfig &>(obj)); + return true; + case messages_getDialogFilters::ID: + func(static_cast<messages_getDialogFilters &>(obj)); + return true; + case messages_getDialogUnreadMarks::ID: + func(static_cast<messages_getDialogUnreadMarks &>(obj)); + return true; + case messages_getDialogs::ID: + func(static_cast<messages_getDialogs &>(obj)); + return true; + case messages_getDiscussionMessage::ID: + func(static_cast<messages_getDiscussionMessage &>(obj)); + return true; + case messages_getDocumentByHash::ID: + func(static_cast<messages_getDocumentByHash &>(obj)); + return true; + case messages_getEmojiKeywords::ID: + func(static_cast<messages_getEmojiKeywords &>(obj)); + return true; + case messages_getEmojiKeywordsDifference::ID: + func(static_cast<messages_getEmojiKeywordsDifference &>(obj)); + return true; + case messages_getEmojiKeywordsLanguages::ID: + func(static_cast<messages_getEmojiKeywordsLanguages &>(obj)); + return true; + case messages_getEmojiStickers::ID: + func(static_cast<messages_getEmojiStickers &>(obj)); + return true; + case messages_getEmojiURL::ID: + func(static_cast<messages_getEmojiURL &>(obj)); + return true; + case messages_getExportedChatInvite::ID: + func(static_cast<messages_getExportedChatInvite &>(obj)); + return true; + case messages_getExportedChatInvites::ID: + func(static_cast<messages_getExportedChatInvites &>(obj)); + return true; + case messages_getExtendedMedia::ID: + func(static_cast<messages_getExtendedMedia &>(obj)); + return true; + case messages_getFavedStickers::ID: + func(static_cast<messages_getFavedStickers &>(obj)); + return true; + case messages_getFeaturedEmojiStickers::ID: + func(static_cast<messages_getFeaturedEmojiStickers &>(obj)); + return true; + case messages_getFeaturedStickers::ID: + func(static_cast<messages_getFeaturedStickers &>(obj)); + return true; + case messages_getFullChat::ID: + func(static_cast<messages_getFullChat &>(obj)); + return true; + case messages_getGameHighScores::ID: + func(static_cast<messages_getGameHighScores &>(obj)); + return true; + case messages_getHistory::ID: + func(static_cast<messages_getHistory &>(obj)); + return true; + case messages_getInlineBotResults::ID: + func(static_cast<messages_getInlineBotResults &>(obj)); + return true; + case messages_getInlineGameHighScores::ID: + func(static_cast<messages_getInlineGameHighScores &>(obj)); + return true; + case messages_getMaskStickers::ID: + func(static_cast<messages_getMaskStickers &>(obj)); + return true; + case messages_getMessageEditData::ID: + func(static_cast<messages_getMessageEditData &>(obj)); + return true; + case messages_getMessageReactionsList::ID: + func(static_cast<messages_getMessageReactionsList &>(obj)); + return true; + case messages_getMessageReadParticipants::ID: + func(static_cast<messages_getMessageReadParticipants &>(obj)); + return true; + case messages_getMessages::ID: + func(static_cast<messages_getMessages &>(obj)); + return true; + case messages_getMessagesReactions::ID: + func(static_cast<messages_getMessagesReactions &>(obj)); + return true; + case messages_getMessagesViews::ID: + func(static_cast<messages_getMessagesViews &>(obj)); + return true; + case messages_getOldFeaturedStickers::ID: + func(static_cast<messages_getOldFeaturedStickers &>(obj)); + return true; + case messages_getOnlines::ID: + func(static_cast<messages_getOnlines &>(obj)); + return true; + case messages_getPeerDialogs::ID: + func(static_cast<messages_getPeerDialogs &>(obj)); + return true; + case messages_getPeerSettings::ID: + func(static_cast<messages_getPeerSettings &>(obj)); + return true; + case messages_getPinnedDialogs::ID: + func(static_cast<messages_getPinnedDialogs &>(obj)); + return true; + case messages_getPollResults::ID: + func(static_cast<messages_getPollResults &>(obj)); + return true; + case messages_getPollVotes::ID: + func(static_cast<messages_getPollVotes &>(obj)); + return true; + case messages_getRecentLocations::ID: + func(static_cast<messages_getRecentLocations &>(obj)); + return true; + case messages_getRecentReactions::ID: + func(static_cast<messages_getRecentReactions &>(obj)); + return true; + case messages_getRecentStickers::ID: + func(static_cast<messages_getRecentStickers &>(obj)); + return true; + case messages_getReplies::ID: + func(static_cast<messages_getReplies &>(obj)); + return true; + case messages_getSavedGifs::ID: + func(static_cast<messages_getSavedGifs &>(obj)); + return true; + case messages_getScheduledHistory::ID: + func(static_cast<messages_getScheduledHistory &>(obj)); + return true; + case messages_getScheduledMessages::ID: + func(static_cast<messages_getScheduledMessages &>(obj)); + return true; + case messages_getSearchCounters::ID: + func(static_cast<messages_getSearchCounters &>(obj)); + return true; + case messages_getSearchResultsCalendar::ID: + func(static_cast<messages_getSearchResultsCalendar &>(obj)); + return true; + case messages_getSearchResultsPositions::ID: + func(static_cast<messages_getSearchResultsPositions &>(obj)); + return true; + case messages_getSplitRanges::ID: + func(static_cast<messages_getSplitRanges &>(obj)); + return true; + case messages_getStickerSet::ID: + func(static_cast<messages_getStickerSet &>(obj)); + return true; + case messages_getStickers::ID: + func(static_cast<messages_getStickers &>(obj)); + return true; + case messages_getSuggestedDialogFilters::ID: + func(static_cast<messages_getSuggestedDialogFilters &>(obj)); + return true; + case messages_getTopReactions::ID: + func(static_cast<messages_getTopReactions &>(obj)); + return true; + case messages_getUnreadMentions::ID: + func(static_cast<messages_getUnreadMentions &>(obj)); + return true; + case messages_getUnreadReactions::ID: + func(static_cast<messages_getUnreadReactions &>(obj)); + return true; + case messages_getWebPage::ID: + func(static_cast<messages_getWebPage &>(obj)); + return true; + case messages_getWebPagePreview::ID: + func(static_cast<messages_getWebPagePreview &>(obj)); + return true; + case messages_hideAllChatJoinRequests::ID: + func(static_cast<messages_hideAllChatJoinRequests &>(obj)); + return true; + case messages_hideChatJoinRequest::ID: + func(static_cast<messages_hideChatJoinRequest &>(obj)); + return true; + case messages_hidePeerSettingsBar::ID: + func(static_cast<messages_hidePeerSettingsBar &>(obj)); + return true; + case messages_importChatInvite::ID: + func(static_cast<messages_importChatInvite &>(obj)); + return true; + case messages_initHistoryImport::ID: + func(static_cast<messages_initHistoryImport &>(obj)); + return true; + case messages_installStickerSet::ID: + func(static_cast<messages_installStickerSet &>(obj)); + return true; + case messages_markDialogUnread::ID: + func(static_cast<messages_markDialogUnread &>(obj)); + return true; + case messages_migrateChat::ID: + func(static_cast<messages_migrateChat &>(obj)); + return true; + case messages_prolongWebView::ID: + func(static_cast<messages_prolongWebView &>(obj)); + return true; + case messages_rateTranscribedAudio::ID: + func(static_cast<messages_rateTranscribedAudio &>(obj)); + return true; + case messages_readDiscussion::ID: + func(static_cast<messages_readDiscussion &>(obj)); + return true; + case messages_readEncryptedHistory::ID: + func(static_cast<messages_readEncryptedHistory &>(obj)); + return true; + case messages_readFeaturedStickers::ID: + func(static_cast<messages_readFeaturedStickers &>(obj)); + return true; + case messages_readHistory::ID: + func(static_cast<messages_readHistory &>(obj)); + return true; + case messages_readMentions::ID: + func(static_cast<messages_readMentions &>(obj)); + return true; + case messages_readMessageContents::ID: + func(static_cast<messages_readMessageContents &>(obj)); + return true; + case messages_readReactions::ID: + func(static_cast<messages_readReactions &>(obj)); + return true; + case messages_receivedMessages::ID: + func(static_cast<messages_receivedMessages &>(obj)); + return true; + case messages_receivedQueue::ID: + func(static_cast<messages_receivedQueue &>(obj)); + return true; + case messages_reorderPinnedDialogs::ID: + func(static_cast<messages_reorderPinnedDialogs &>(obj)); + return true; + case messages_reorderStickerSets::ID: + func(static_cast<messages_reorderStickerSets &>(obj)); + return true; + case messages_report::ID: + func(static_cast<messages_report &>(obj)); + return true; + case messages_reportEncryptedSpam::ID: + func(static_cast<messages_reportEncryptedSpam &>(obj)); + return true; + case messages_reportReaction::ID: + func(static_cast<messages_reportReaction &>(obj)); + return true; + case messages_reportSpam::ID: + func(static_cast<messages_reportSpam &>(obj)); + return true; + case messages_requestEncryption::ID: + func(static_cast<messages_requestEncryption &>(obj)); + return true; + case messages_requestSimpleWebView::ID: + func(static_cast<messages_requestSimpleWebView &>(obj)); + return true; + case messages_requestUrlAuth::ID: + func(static_cast<messages_requestUrlAuth &>(obj)); + return true; + case messages_requestWebView::ID: + func(static_cast<messages_requestWebView &>(obj)); + return true; + case messages_saveDefaultSendAs::ID: + func(static_cast<messages_saveDefaultSendAs &>(obj)); + return true; + case messages_saveDraft::ID: + func(static_cast<messages_saveDraft &>(obj)); + return true; + case messages_saveGif::ID: + func(static_cast<messages_saveGif &>(obj)); + return true; + case messages_saveRecentSticker::ID: + func(static_cast<messages_saveRecentSticker &>(obj)); + return true; + case messages_search::ID: + func(static_cast<messages_search &>(obj)); + return true; + case messages_searchGlobal::ID: + func(static_cast<messages_searchGlobal &>(obj)); + return true; + case messages_searchSentMedia::ID: + func(static_cast<messages_searchSentMedia &>(obj)); + return true; + case messages_searchStickerSets::ID: + func(static_cast<messages_searchStickerSets &>(obj)); + return true; + case messages_sendEncrypted::ID: + func(static_cast<messages_sendEncrypted &>(obj)); + return true; + case messages_sendEncryptedFile::ID: + func(static_cast<messages_sendEncryptedFile &>(obj)); + return true; + case messages_sendEncryptedService::ID: + func(static_cast<messages_sendEncryptedService &>(obj)); + return true; + case messages_sendInlineBotResult::ID: + func(static_cast<messages_sendInlineBotResult &>(obj)); + return true; + case messages_sendMedia::ID: + func(static_cast<messages_sendMedia &>(obj)); + return true; + case messages_sendMessage::ID: + func(static_cast<messages_sendMessage &>(obj)); + return true; + case messages_sendMultiMedia::ID: + func(static_cast<messages_sendMultiMedia &>(obj)); + return true; + case messages_sendReaction::ID: + func(static_cast<messages_sendReaction &>(obj)); + return true; + case messages_sendScheduledMessages::ID: + func(static_cast<messages_sendScheduledMessages &>(obj)); + return true; + case messages_sendScreenshotNotification::ID: + func(static_cast<messages_sendScreenshotNotification &>(obj)); + return true; + case messages_sendVote::ID: + func(static_cast<messages_sendVote &>(obj)); + return true; + case messages_sendWebViewData::ID: + func(static_cast<messages_sendWebViewData &>(obj)); + return true; + case messages_sendWebViewResultMessage::ID: + func(static_cast<messages_sendWebViewResultMessage &>(obj)); + return true; + case messages_setBotCallbackAnswer::ID: + func(static_cast<messages_setBotCallbackAnswer &>(obj)); + return true; + case messages_setBotPrecheckoutResults::ID: + func(static_cast<messages_setBotPrecheckoutResults &>(obj)); + return true; + case messages_setBotShippingResults::ID: + func(static_cast<messages_setBotShippingResults &>(obj)); + return true; + case messages_setChatAvailableReactions::ID: + func(static_cast<messages_setChatAvailableReactions &>(obj)); + return true; + case messages_setChatTheme::ID: + func(static_cast<messages_setChatTheme &>(obj)); + return true; + case messages_setDefaultReaction::ID: + func(static_cast<messages_setDefaultReaction &>(obj)); + return true; + case messages_setEncryptedTyping::ID: + func(static_cast<messages_setEncryptedTyping &>(obj)); + return true; + case messages_setGameScore::ID: + func(static_cast<messages_setGameScore &>(obj)); + return true; + case messages_setHistoryTTL::ID: + func(static_cast<messages_setHistoryTTL &>(obj)); + return true; + case messages_setInlineBotResults::ID: + func(static_cast<messages_setInlineBotResults &>(obj)); + return true; + case messages_setInlineGameScore::ID: + func(static_cast<messages_setInlineGameScore &>(obj)); + return true; + case messages_setTyping::ID: + func(static_cast<messages_setTyping &>(obj)); + return true; + case messages_startBot::ID: + func(static_cast<messages_startBot &>(obj)); + return true; + case messages_startHistoryImport::ID: + func(static_cast<messages_startHistoryImport &>(obj)); + return true; + case messages_toggleBotInAttachMenu::ID: + func(static_cast<messages_toggleBotInAttachMenu &>(obj)); + return true; + case messages_toggleDialogPin::ID: + func(static_cast<messages_toggleDialogPin &>(obj)); + return true; + case messages_toggleNoForwards::ID: + func(static_cast<messages_toggleNoForwards &>(obj)); + return true; + case messages_toggleStickerSets::ID: + func(static_cast<messages_toggleStickerSets &>(obj)); + return true; + case messages_transcribeAudio::ID: + func(static_cast<messages_transcribeAudio &>(obj)); + return true; + case messages_translateText::ID: + func(static_cast<messages_translateText &>(obj)); + return true; + case messages_uninstallStickerSet::ID: + func(static_cast<messages_uninstallStickerSet &>(obj)); + return true; + case messages_unpinAllMessages::ID: + func(static_cast<messages_unpinAllMessages &>(obj)); + return true; + case messages_updateDialogFilter::ID: + func(static_cast<messages_updateDialogFilter &>(obj)); + return true; + case messages_updateDialogFiltersOrder::ID: + func(static_cast<messages_updateDialogFiltersOrder &>(obj)); + return true; + case messages_updatePinnedMessage::ID: + func(static_cast<messages_updatePinnedMessage &>(obj)); + return true; + case messages_uploadEncryptedFile::ID: + func(static_cast<messages_uploadEncryptedFile &>(obj)); + return true; + case messages_uploadImportedMedia::ID: + func(static_cast<messages_uploadImportedMedia &>(obj)); + return true; + case messages_uploadMedia::ID: + func(static_cast<messages_uploadMedia &>(obj)); + return true; + case payments_assignAppStoreTransaction::ID: + func(static_cast<payments_assignAppStoreTransaction &>(obj)); + return true; + case payments_assignPlayMarketTransaction::ID: + func(static_cast<payments_assignPlayMarketTransaction &>(obj)); + return true; + case payments_canPurchasePremium::ID: + func(static_cast<payments_canPurchasePremium &>(obj)); + return true; + case payments_clearSavedInfo::ID: + func(static_cast<payments_clearSavedInfo &>(obj)); + return true; + case payments_exportInvoice::ID: + func(static_cast<payments_exportInvoice &>(obj)); + return true; + case payments_getBankCardData::ID: + func(static_cast<payments_getBankCardData &>(obj)); + return true; + case payments_getPaymentForm::ID: + func(static_cast<payments_getPaymentForm &>(obj)); + return true; + case payments_getPaymentReceipt::ID: + func(static_cast<payments_getPaymentReceipt &>(obj)); + return true; + case payments_getSavedInfo::ID: + func(static_cast<payments_getSavedInfo &>(obj)); + return true; + case payments_sendPaymentForm::ID: + func(static_cast<payments_sendPaymentForm &>(obj)); + return true; + case payments_validateRequestedInfo::ID: + func(static_cast<payments_validateRequestedInfo &>(obj)); + return true; + case phone_acceptCall::ID: + func(static_cast<phone_acceptCall &>(obj)); + return true; + case phone_checkGroupCall::ID: + func(static_cast<phone_checkGroupCall &>(obj)); + return true; + case phone_confirmCall::ID: + func(static_cast<phone_confirmCall &>(obj)); + return true; + case phone_createGroupCall::ID: + func(static_cast<phone_createGroupCall &>(obj)); + return true; + case phone_discardCall::ID: + func(static_cast<phone_discardCall &>(obj)); + return true; + case phone_discardGroupCall::ID: + func(static_cast<phone_discardGroupCall &>(obj)); + return true; + case phone_editGroupCallParticipant::ID: + func(static_cast<phone_editGroupCallParticipant &>(obj)); + return true; + case phone_editGroupCallTitle::ID: + func(static_cast<phone_editGroupCallTitle &>(obj)); + return true; + case phone_exportGroupCallInvite::ID: + func(static_cast<phone_exportGroupCallInvite &>(obj)); + return true; + case phone_getCallConfig::ID: + func(static_cast<phone_getCallConfig &>(obj)); + return true; + case phone_getGroupCall::ID: + func(static_cast<phone_getGroupCall &>(obj)); + return true; + case phone_getGroupCallJoinAs::ID: + func(static_cast<phone_getGroupCallJoinAs &>(obj)); + return true; + case phone_getGroupCallStreamChannels::ID: + func(static_cast<phone_getGroupCallStreamChannels &>(obj)); + return true; + case phone_getGroupCallStreamRtmpUrl::ID: + func(static_cast<phone_getGroupCallStreamRtmpUrl &>(obj)); + return true; + case phone_getGroupParticipants::ID: + func(static_cast<phone_getGroupParticipants &>(obj)); + return true; + case phone_inviteToGroupCall::ID: + func(static_cast<phone_inviteToGroupCall &>(obj)); + return true; + case phone_joinGroupCall::ID: + func(static_cast<phone_joinGroupCall &>(obj)); + return true; + case phone_joinGroupCallPresentation::ID: + func(static_cast<phone_joinGroupCallPresentation &>(obj)); + return true; + case phone_leaveGroupCall::ID: + func(static_cast<phone_leaveGroupCall &>(obj)); + return true; + case phone_leaveGroupCallPresentation::ID: + func(static_cast<phone_leaveGroupCallPresentation &>(obj)); + return true; + case phone_receivedCall::ID: + func(static_cast<phone_receivedCall &>(obj)); + return true; + case phone_requestCall::ID: + func(static_cast<phone_requestCall &>(obj)); + return true; + case phone_saveCallDebug::ID: + func(static_cast<phone_saveCallDebug &>(obj)); + return true; + case phone_saveCallLog::ID: + func(static_cast<phone_saveCallLog &>(obj)); + return true; + case phone_saveDefaultGroupCallJoinAs::ID: + func(static_cast<phone_saveDefaultGroupCallJoinAs &>(obj)); + return true; + case phone_sendSignalingData::ID: + func(static_cast<phone_sendSignalingData &>(obj)); + return true; + case phone_setCallRating::ID: + func(static_cast<phone_setCallRating &>(obj)); + return true; + case phone_startScheduledGroupCall::ID: + func(static_cast<phone_startScheduledGroupCall &>(obj)); + return true; + case phone_toggleGroupCallRecord::ID: + func(static_cast<phone_toggleGroupCallRecord &>(obj)); + return true; + case phone_toggleGroupCallSettings::ID: + func(static_cast<phone_toggleGroupCallSettings &>(obj)); + return true; + case phone_toggleGroupCallStartSubscription::ID: + func(static_cast<phone_toggleGroupCallStartSubscription &>(obj)); + return true; + case photos_deletePhotos::ID: + func(static_cast<photos_deletePhotos &>(obj)); + return true; + case photos_getUserPhotos::ID: + func(static_cast<photos_getUserPhotos &>(obj)); + return true; + case photos_updateProfilePhoto::ID: + func(static_cast<photos_updateProfilePhoto &>(obj)); + return true; + case photos_uploadProfilePhoto::ID: + func(static_cast<photos_uploadProfilePhoto &>(obj)); + return true; + case stats_getBroadcastStats::ID: + func(static_cast<stats_getBroadcastStats &>(obj)); + return true; + case stats_getMegagroupStats::ID: + func(static_cast<stats_getMegagroupStats &>(obj)); + return true; + case stats_getMessagePublicForwards::ID: + func(static_cast<stats_getMessagePublicForwards &>(obj)); + return true; + case stats_getMessageStats::ID: + func(static_cast<stats_getMessageStats &>(obj)); + return true; + case stats_loadAsyncGraph::ID: + func(static_cast<stats_loadAsyncGraph &>(obj)); + return true; + case stickers_addStickerToSet::ID: + func(static_cast<stickers_addStickerToSet &>(obj)); + return true; + case stickers_changeStickerPosition::ID: + func(static_cast<stickers_changeStickerPosition &>(obj)); + return true; + case stickers_checkShortName::ID: + func(static_cast<stickers_checkShortName &>(obj)); + return true; + case stickers_createStickerSet::ID: + func(static_cast<stickers_createStickerSet &>(obj)); + return true; + case stickers_removeStickerFromSet::ID: + func(static_cast<stickers_removeStickerFromSet &>(obj)); + return true; + case stickers_setStickerSetThumb::ID: + func(static_cast<stickers_setStickerSetThumb &>(obj)); + return true; + case stickers_suggestShortName::ID: + func(static_cast<stickers_suggestShortName &>(obj)); + return true; + case test_parseInputAppEvent::ID: + func(static_cast<test_parseInputAppEvent &>(obj)); + return true; + case test_useConfigSimple::ID: + func(static_cast<test_useConfigSimple &>(obj)); + return true; + case test_useError::ID: + func(static_cast<test_useError &>(obj)); + return true; + case updates_getChannelDifference::ID: + func(static_cast<updates_getChannelDifference &>(obj)); + return true; + case updates_getDifference::ID: + func(static_cast<updates_getDifference &>(obj)); + return true; + case updates_getState::ID: + func(static_cast<updates_getState &>(obj)); + return true; + case upload_getCdnFile::ID: + func(static_cast<upload_getCdnFile &>(obj)); + return true; + case upload_getCdnFileHashes::ID: + func(static_cast<upload_getCdnFileHashes &>(obj)); + return true; + case upload_getFile::ID: + func(static_cast<upload_getFile &>(obj)); + return true; + case upload_getFileHashes::ID: + func(static_cast<upload_getFileHashes &>(obj)); + return true; + case upload_getWebFile::ID: + func(static_cast<upload_getWebFile &>(obj)); + return true; + case upload_reuploadCdnFile::ID: + func(static_cast<upload_reuploadCdnFile &>(obj)); + return true; + case upload_saveBigFilePart::ID: + func(static_cast<upload_saveBigFilePart &>(obj)); + return true; + case upload_saveFilePart::ID: + func(static_cast<upload_saveFilePart &>(obj)); + return true; + case users_getFullUser::ID: + func(static_cast<users_getFullUser &>(obj)); + return true; + case users_getUsers::ID: + func(static_cast<users_getUsers &>(obj)); + return true; + case users_setSecureValueErrors::ID: + func(static_cast<users_setSecureValueErrors &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(AttachMenuBots &obj, const T &func) { + switch (obj.get_id()) { + case attachMenuBotsNotModified::ID: + func(static_cast<attachMenuBotsNotModified &>(obj)); + return true; + case attachMenuBots::ID: + func(static_cast<attachMenuBots &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(AttachMenuPeerType &obj, const T &func) { + switch (obj.get_id()) { + case attachMenuPeerTypeSameBotPM::ID: + func(static_cast<attachMenuPeerTypeSameBotPM &>(obj)); + return true; + case attachMenuPeerTypeBotPM::ID: + func(static_cast<attachMenuPeerTypeBotPM &>(obj)); + return true; + case attachMenuPeerTypePM::ID: + func(static_cast<attachMenuPeerTypePM &>(obj)); + return true; + case attachMenuPeerTypeChat::ID: + func(static_cast<attachMenuPeerTypeChat &>(obj)); + return true; + case attachMenuPeerTypeBroadcast::ID: + func(static_cast<attachMenuPeerTypeBroadcast &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BaseTheme &obj, const T &func) { + switch (obj.get_id()) { + case baseThemeClassic::ID: + func(static_cast<baseThemeClassic &>(obj)); + return true; + case baseThemeDay::ID: + func(static_cast<baseThemeDay &>(obj)); + return true; + case baseThemeNight::ID: + func(static_cast<baseThemeNight &>(obj)); + return true; + case baseThemeTinted::ID: + func(static_cast<baseThemeTinted &>(obj)); + return true; + case baseThemeArctic::ID: + func(static_cast<baseThemeArctic &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BotCommandScope &obj, const T &func) { + switch (obj.get_id()) { + case botCommandScopeDefault::ID: + func(static_cast<botCommandScopeDefault &>(obj)); + return true; + case botCommandScopeUsers::ID: + func(static_cast<botCommandScopeUsers &>(obj)); + return true; + case botCommandScopeChats::ID: + func(static_cast<botCommandScopeChats &>(obj)); + return true; + case botCommandScopeChatAdmins::ID: + func(static_cast<botCommandScopeChatAdmins &>(obj)); + return true; + case botCommandScopePeer::ID: + func(static_cast<botCommandScopePeer &>(obj)); + return true; + case botCommandScopePeerAdmins::ID: + func(static_cast<botCommandScopePeerAdmins &>(obj)); + return true; + case botCommandScopePeerUser::ID: + func(static_cast<botCommandScopePeerUser &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BotInlineMessage &obj, const T &func) { + switch (obj.get_id()) { + case botInlineMessageMediaAuto::ID: + func(static_cast<botInlineMessageMediaAuto &>(obj)); + return true; + case botInlineMessageText::ID: + func(static_cast<botInlineMessageText &>(obj)); + return true; + case botInlineMessageMediaGeo::ID: + func(static_cast<botInlineMessageMediaGeo &>(obj)); + return true; + case botInlineMessageMediaVenue::ID: + func(static_cast<botInlineMessageMediaVenue &>(obj)); + return true; + case botInlineMessageMediaContact::ID: + func(static_cast<botInlineMessageMediaContact &>(obj)); + return true; + case botInlineMessageMediaInvoice::ID: + func(static_cast<botInlineMessageMediaInvoice &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BotInlineResult &obj, const T &func) { + switch (obj.get_id()) { + case botInlineResult::ID: + func(static_cast<botInlineResult &>(obj)); + return true; + case botInlineMediaResult::ID: + func(static_cast<botInlineMediaResult &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(BotMenuButton &obj, const T &func) { + switch (obj.get_id()) { + case botMenuButtonDefault::ID: + func(static_cast<botMenuButtonDefault &>(obj)); + return true; + case botMenuButtonCommands::ID: + func(static_cast<botMenuButtonCommands &>(obj)); + return true; + case botMenuButton::ID: + func(static_cast<botMenuButton &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChannelAdminLogEventAction &obj, const T &func) { + switch (obj.get_id()) { + case channelAdminLogEventActionChangeTitle::ID: + func(static_cast<channelAdminLogEventActionChangeTitle &>(obj)); + return true; + case channelAdminLogEventActionChangeAbout::ID: + func(static_cast<channelAdminLogEventActionChangeAbout &>(obj)); + return true; + case channelAdminLogEventActionChangeUsername::ID: + func(static_cast<channelAdminLogEventActionChangeUsername &>(obj)); + return true; + case channelAdminLogEventActionChangePhoto::ID: + func(static_cast<channelAdminLogEventActionChangePhoto &>(obj)); + return true; + case channelAdminLogEventActionToggleInvites::ID: + func(static_cast<channelAdminLogEventActionToggleInvites &>(obj)); + return true; + case channelAdminLogEventActionToggleSignatures::ID: + func(static_cast<channelAdminLogEventActionToggleSignatures &>(obj)); + return true; + case channelAdminLogEventActionUpdatePinned::ID: + func(static_cast<channelAdminLogEventActionUpdatePinned &>(obj)); + return true; + case channelAdminLogEventActionEditMessage::ID: + func(static_cast<channelAdminLogEventActionEditMessage &>(obj)); + return true; + case channelAdminLogEventActionDeleteMessage::ID: + func(static_cast<channelAdminLogEventActionDeleteMessage &>(obj)); + return true; + case channelAdminLogEventActionParticipantJoin::ID: + func(static_cast<channelAdminLogEventActionParticipantJoin &>(obj)); + return true; + case channelAdminLogEventActionParticipantLeave::ID: + func(static_cast<channelAdminLogEventActionParticipantLeave &>(obj)); + return true; + case channelAdminLogEventActionParticipantInvite::ID: + func(static_cast<channelAdminLogEventActionParticipantInvite &>(obj)); + return true; + case channelAdminLogEventActionParticipantToggleBan::ID: + func(static_cast<channelAdminLogEventActionParticipantToggleBan &>(obj)); + return true; + case channelAdminLogEventActionParticipantToggleAdmin::ID: + func(static_cast<channelAdminLogEventActionParticipantToggleAdmin &>(obj)); + return true; + case channelAdminLogEventActionChangeStickerSet::ID: + func(static_cast<channelAdminLogEventActionChangeStickerSet &>(obj)); + return true; + case channelAdminLogEventActionTogglePreHistoryHidden::ID: + func(static_cast<channelAdminLogEventActionTogglePreHistoryHidden &>(obj)); + return true; + case channelAdminLogEventActionDefaultBannedRights::ID: + func(static_cast<channelAdminLogEventActionDefaultBannedRights &>(obj)); + return true; + case channelAdminLogEventActionStopPoll::ID: + func(static_cast<channelAdminLogEventActionStopPoll &>(obj)); + return true; + case channelAdminLogEventActionChangeLinkedChat::ID: + func(static_cast<channelAdminLogEventActionChangeLinkedChat &>(obj)); + return true; + case channelAdminLogEventActionChangeLocation::ID: + func(static_cast<channelAdminLogEventActionChangeLocation &>(obj)); + return true; + case channelAdminLogEventActionToggleSlowMode::ID: + func(static_cast<channelAdminLogEventActionToggleSlowMode &>(obj)); + return true; + case channelAdminLogEventActionStartGroupCall::ID: + func(static_cast<channelAdminLogEventActionStartGroupCall &>(obj)); + return true; + case channelAdminLogEventActionDiscardGroupCall::ID: + func(static_cast<channelAdminLogEventActionDiscardGroupCall &>(obj)); + return true; + case channelAdminLogEventActionParticipantMute::ID: + func(static_cast<channelAdminLogEventActionParticipantMute &>(obj)); + return true; + case channelAdminLogEventActionParticipantUnmute::ID: + func(static_cast<channelAdminLogEventActionParticipantUnmute &>(obj)); + return true; + case channelAdminLogEventActionToggleGroupCallSetting::ID: + func(static_cast<channelAdminLogEventActionToggleGroupCallSetting &>(obj)); + return true; + case channelAdminLogEventActionParticipantJoinByInvite::ID: + func(static_cast<channelAdminLogEventActionParticipantJoinByInvite &>(obj)); + return true; + case channelAdminLogEventActionExportedInviteDelete::ID: + func(static_cast<channelAdminLogEventActionExportedInviteDelete &>(obj)); + return true; + case channelAdminLogEventActionExportedInviteRevoke::ID: + func(static_cast<channelAdminLogEventActionExportedInviteRevoke &>(obj)); + return true; + case channelAdminLogEventActionExportedInviteEdit::ID: + func(static_cast<channelAdminLogEventActionExportedInviteEdit &>(obj)); + return true; + case channelAdminLogEventActionParticipantVolume::ID: + func(static_cast<channelAdminLogEventActionParticipantVolume &>(obj)); + return true; + case channelAdminLogEventActionChangeHistoryTTL::ID: + func(static_cast<channelAdminLogEventActionChangeHistoryTTL &>(obj)); + return true; + case channelAdminLogEventActionParticipantJoinByRequest::ID: + func(static_cast<channelAdminLogEventActionParticipantJoinByRequest &>(obj)); + return true; + case channelAdminLogEventActionToggleNoForwards::ID: + func(static_cast<channelAdminLogEventActionToggleNoForwards &>(obj)); + return true; + case channelAdminLogEventActionSendMessage::ID: + func(static_cast<channelAdminLogEventActionSendMessage &>(obj)); + return true; + case channelAdminLogEventActionChangeAvailableReactions::ID: + func(static_cast<channelAdminLogEventActionChangeAvailableReactions &>(obj)); + return true; + case channelAdminLogEventActionChangeUsernames::ID: + func(static_cast<channelAdminLogEventActionChangeUsernames &>(obj)); + return true; + case channelAdminLogEventActionToggleForum::ID: + func(static_cast<channelAdminLogEventActionToggleForum &>(obj)); + return true; + case channelAdminLogEventActionCreateTopic::ID: + func(static_cast<channelAdminLogEventActionCreateTopic &>(obj)); + return true; + case channelAdminLogEventActionEditTopic::ID: + func(static_cast<channelAdminLogEventActionEditTopic &>(obj)); + return true; + case channelAdminLogEventActionDeleteTopic::ID: + func(static_cast<channelAdminLogEventActionDeleteTopic &>(obj)); + return true; + case channelAdminLogEventActionPinTopic::ID: + func(static_cast<channelAdminLogEventActionPinTopic &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChannelLocation &obj, const T &func) { + switch (obj.get_id()) { + case channelLocationEmpty::ID: + func(static_cast<channelLocationEmpty &>(obj)); + return true; + case channelLocation::ID: + func(static_cast<channelLocation &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChannelMessagesFilter &obj, const T &func) { + switch (obj.get_id()) { + case channelMessagesFilterEmpty::ID: + func(static_cast<channelMessagesFilterEmpty &>(obj)); + return true; + case channelMessagesFilter::ID: + func(static_cast<channelMessagesFilter &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChannelParticipant &obj, const T &func) { + switch (obj.get_id()) { + case channelParticipant::ID: + func(static_cast<channelParticipant &>(obj)); + return true; + case channelParticipantSelf::ID: + func(static_cast<channelParticipantSelf &>(obj)); + return true; + case channelParticipantCreator::ID: + func(static_cast<channelParticipantCreator &>(obj)); + return true; + case channelParticipantAdmin::ID: + func(static_cast<channelParticipantAdmin &>(obj)); + return true; + case channelParticipantBanned::ID: + func(static_cast<channelParticipantBanned &>(obj)); + return true; + case channelParticipantLeft::ID: + func(static_cast<channelParticipantLeft &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChannelParticipantsFilter &obj, const T &func) { + switch (obj.get_id()) { + case channelParticipantsRecent::ID: + func(static_cast<channelParticipantsRecent &>(obj)); + return true; + case channelParticipantsAdmins::ID: + func(static_cast<channelParticipantsAdmins &>(obj)); + return true; + case channelParticipantsKicked::ID: + func(static_cast<channelParticipantsKicked &>(obj)); + return true; + case channelParticipantsBots::ID: + func(static_cast<channelParticipantsBots &>(obj)); + return true; + case channelParticipantsBanned::ID: + func(static_cast<channelParticipantsBanned &>(obj)); + return true; + case channelParticipantsSearch::ID: + func(static_cast<channelParticipantsSearch &>(obj)); + return true; + case channelParticipantsContacts::ID: + func(static_cast<channelParticipantsContacts &>(obj)); + return true; + case channelParticipantsMentions::ID: + func(static_cast<channelParticipantsMentions &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Chat &obj, const T &func) { + switch (obj.get_id()) { + case chatEmpty::ID: + func(static_cast<chatEmpty &>(obj)); + return true; + case chat::ID: + func(static_cast<chat &>(obj)); + return true; + case chatForbidden::ID: + func(static_cast<chatForbidden &>(obj)); + return true; + case channel::ID: + func(static_cast<channel &>(obj)); + return true; + case channelForbidden::ID: + func(static_cast<channelForbidden &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatFull &obj, const T &func) { + switch (obj.get_id()) { + case chatFull::ID: + func(static_cast<chatFull &>(obj)); + return true; + case channelFull::ID: + func(static_cast<channelFull &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatInvite &obj, const T &func) { + switch (obj.get_id()) { + case chatInviteAlready::ID: + func(static_cast<chatInviteAlready &>(obj)); + return true; + case chatInvite::ID: + func(static_cast<chatInvite &>(obj)); + return true; + case chatInvitePeek::ID: + func(static_cast<chatInvitePeek &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatParticipant &obj, const T &func) { + switch (obj.get_id()) { + case chatParticipant::ID: + func(static_cast<chatParticipant &>(obj)); + return true; + case chatParticipantCreator::ID: + func(static_cast<chatParticipantCreator &>(obj)); + return true; + case chatParticipantAdmin::ID: + func(static_cast<chatParticipantAdmin &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatParticipants &obj, const T &func) { + switch (obj.get_id()) { + case chatParticipantsForbidden::ID: + func(static_cast<chatParticipantsForbidden &>(obj)); + return true; + case chatParticipants::ID: + func(static_cast<chatParticipants &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatPhoto &obj, const T &func) { + switch (obj.get_id()) { + case chatPhotoEmpty::ID: + func(static_cast<chatPhotoEmpty &>(obj)); + return true; + case chatPhoto::ID: + func(static_cast<chatPhoto &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ChatReactions &obj, const T &func) { + switch (obj.get_id()) { + case chatReactionsNone::ID: + func(static_cast<chatReactionsNone &>(obj)); + return true; + case chatReactionsAll::ID: + func(static_cast<chatReactionsAll &>(obj)); + return true; + case chatReactionsSome::ID: + func(static_cast<chatReactionsSome &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Dialog &obj, const T &func) { + switch (obj.get_id()) { + case dialog::ID: + func(static_cast<dialog &>(obj)); + return true; + case dialogFolder::ID: + func(static_cast<dialogFolder &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DialogFilter &obj, const T &func) { + switch (obj.get_id()) { + case dialogFilter::ID: + func(static_cast<dialogFilter &>(obj)); + return true; + case dialogFilterDefault::ID: + func(static_cast<dialogFilterDefault &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DialogPeer &obj, const T &func) { + switch (obj.get_id()) { + case dialogPeer::ID: + func(static_cast<dialogPeer &>(obj)); + return true; + case dialogPeerFolder::ID: + func(static_cast<dialogPeerFolder &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Document &obj, const T &func) { + switch (obj.get_id()) { + case documentEmpty::ID: + func(static_cast<documentEmpty &>(obj)); + return true; + case document::ID: + func(static_cast<document &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DocumentAttribute &obj, const T &func) { + switch (obj.get_id()) { + case documentAttributeImageSize::ID: + func(static_cast<documentAttributeImageSize &>(obj)); + return true; + case documentAttributeAnimated::ID: + func(static_cast<documentAttributeAnimated &>(obj)); + return true; + case documentAttributeSticker::ID: + func(static_cast<documentAttributeSticker &>(obj)); + return true; + case documentAttributeVideo::ID: + func(static_cast<documentAttributeVideo &>(obj)); + return true; + case documentAttributeAudio::ID: + func(static_cast<documentAttributeAudio &>(obj)); + return true; + case documentAttributeFilename::ID: + func(static_cast<documentAttributeFilename &>(obj)); + return true; + case documentAttributeHasStickers::ID: + func(static_cast<documentAttributeHasStickers &>(obj)); + return true; + case documentAttributeCustomEmoji::ID: + func(static_cast<documentAttributeCustomEmoji &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(DraftMessage &obj, const T &func) { + switch (obj.get_id()) { + case draftMessageEmpty::ID: + func(static_cast<draftMessageEmpty &>(obj)); + return true; + case draftMessage::ID: + func(static_cast<draftMessage &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EmailVerification &obj, const T &func) { + switch (obj.get_id()) { + case emailVerificationCode::ID: + func(static_cast<emailVerificationCode &>(obj)); + return true; + case emailVerificationGoogle::ID: + func(static_cast<emailVerificationGoogle &>(obj)); + return true; + case emailVerificationApple::ID: + func(static_cast<emailVerificationApple &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EmailVerifyPurpose &obj, const T &func) { + switch (obj.get_id()) { + case emailVerifyPurposeLoginSetup::ID: + func(static_cast<emailVerifyPurposeLoginSetup &>(obj)); + return true; + case emailVerifyPurposeLoginChange::ID: + func(static_cast<emailVerifyPurposeLoginChange &>(obj)); + return true; + case emailVerifyPurposePassport::ID: + func(static_cast<emailVerifyPurposePassport &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EmojiKeyword &obj, const T &func) { + switch (obj.get_id()) { + case emojiKeyword::ID: + func(static_cast<emojiKeyword &>(obj)); + return true; + case emojiKeywordDeleted::ID: + func(static_cast<emojiKeywordDeleted &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EmojiStatus &obj, const T &func) { + switch (obj.get_id()) { + case emojiStatusEmpty::ID: + func(static_cast<emojiStatusEmpty &>(obj)); + return true; + case emojiStatus::ID: + func(static_cast<emojiStatus &>(obj)); + return true; + case emojiStatusUntil::ID: + func(static_cast<emojiStatusUntil &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EncryptedChat &obj, const T &func) { + switch (obj.get_id()) { + case encryptedChatEmpty::ID: + func(static_cast<encryptedChatEmpty &>(obj)); + return true; + case encryptedChatWaiting::ID: + func(static_cast<encryptedChatWaiting &>(obj)); + return true; + case encryptedChatRequested::ID: + func(static_cast<encryptedChatRequested &>(obj)); + return true; + case encryptedChat::ID: + func(static_cast<encryptedChat &>(obj)); + return true; + case encryptedChatDiscarded::ID: + func(static_cast<encryptedChatDiscarded &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EncryptedFile &obj, const T &func) { + switch (obj.get_id()) { + case encryptedFileEmpty::ID: + func(static_cast<encryptedFileEmpty &>(obj)); + return true; + case encryptedFile::ID: + func(static_cast<encryptedFile &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(EncryptedMessage &obj, const T &func) { + switch (obj.get_id()) { + case encryptedMessage::ID: + func(static_cast<encryptedMessage &>(obj)); + return true; + case encryptedMessageService::ID: + func(static_cast<encryptedMessageService &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ExportedChatInvite &obj, const T &func) { + switch (obj.get_id()) { + case chatInviteExported::ID: + func(static_cast<chatInviteExported &>(obj)); + return true; + case chatInvitePublicJoinRequests::ID: + func(static_cast<chatInvitePublicJoinRequests &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ForumTopic &obj, const T &func) { + switch (obj.get_id()) { + case forumTopicDeleted::ID: + func(static_cast<forumTopicDeleted &>(obj)); + return true; + case forumTopic::ID: + func(static_cast<forumTopic &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(GeoPoint &obj, const T &func) { + switch (obj.get_id()) { + case geoPointEmpty::ID: + func(static_cast<geoPointEmpty &>(obj)); + return true; + case geoPoint::ID: + func(static_cast<geoPoint &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(GroupCall &obj, const T &func) { + switch (obj.get_id()) { + case groupCallDiscarded::ID: + func(static_cast<groupCallDiscarded &>(obj)); + return true; + case groupCall::ID: + func(static_cast<groupCall &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InlineQueryPeerType &obj, const T &func) { + switch (obj.get_id()) { + case inlineQueryPeerTypeSameBotPM::ID: + func(static_cast<inlineQueryPeerTypeSameBotPM &>(obj)); + return true; + case inlineQueryPeerTypePM::ID: + func(static_cast<inlineQueryPeerTypePM &>(obj)); + return true; + case inlineQueryPeerTypeChat::ID: + func(static_cast<inlineQueryPeerTypeChat &>(obj)); + return true; + case inlineQueryPeerTypeMegagroup::ID: + func(static_cast<inlineQueryPeerTypeMegagroup &>(obj)); + return true; + case inlineQueryPeerTypeBroadcast::ID: + func(static_cast<inlineQueryPeerTypeBroadcast &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputBotInlineMessage &obj, const T &func) { + switch (obj.get_id()) { + case inputBotInlineMessageMediaAuto::ID: + func(static_cast<inputBotInlineMessageMediaAuto &>(obj)); + return true; + case inputBotInlineMessageText::ID: + func(static_cast<inputBotInlineMessageText &>(obj)); + return true; + case inputBotInlineMessageMediaGeo::ID: + func(static_cast<inputBotInlineMessageMediaGeo &>(obj)); + return true; + case inputBotInlineMessageMediaVenue::ID: + func(static_cast<inputBotInlineMessageMediaVenue &>(obj)); + return true; + case inputBotInlineMessageMediaContact::ID: + func(static_cast<inputBotInlineMessageMediaContact &>(obj)); + return true; + case inputBotInlineMessageGame::ID: + func(static_cast<inputBotInlineMessageGame &>(obj)); + return true; + case inputBotInlineMessageMediaInvoice::ID: + func(static_cast<inputBotInlineMessageMediaInvoice &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputBotInlineMessageID &obj, const T &func) { + switch (obj.get_id()) { + case inputBotInlineMessageID::ID: + func(static_cast<inputBotInlineMessageID &>(obj)); + return true; + case inputBotInlineMessageID64::ID: + func(static_cast<inputBotInlineMessageID64 &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputBotInlineResult &obj, const T &func) { + switch (obj.get_id()) { + case inputBotInlineResult::ID: + func(static_cast<inputBotInlineResult &>(obj)); + return true; + case inputBotInlineResultPhoto::ID: + func(static_cast<inputBotInlineResultPhoto &>(obj)); + return true; + case inputBotInlineResultDocument::ID: + func(static_cast<inputBotInlineResultDocument &>(obj)); + return true; + case inputBotInlineResultGame::ID: + func(static_cast<inputBotInlineResultGame &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputChannel &obj, const T &func) { + switch (obj.get_id()) { + case inputChannelEmpty::ID: + func(static_cast<inputChannelEmpty &>(obj)); + return true; + case inputChannel::ID: + func(static_cast<inputChannel &>(obj)); + return true; + case inputChannelFromMessage::ID: + func(static_cast<inputChannelFromMessage &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputChatPhoto &obj, const T &func) { + switch (obj.get_id()) { + case inputChatPhotoEmpty::ID: + func(static_cast<inputChatPhotoEmpty &>(obj)); + return true; + case inputChatUploadedPhoto::ID: + func(static_cast<inputChatUploadedPhoto &>(obj)); + return true; + case inputChatPhoto::ID: + func(static_cast<inputChatPhoto &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputCheckPasswordSRP &obj, const T &func) { + switch (obj.get_id()) { + case inputCheckPasswordEmpty::ID: + func(static_cast<inputCheckPasswordEmpty &>(obj)); + return true; + case inputCheckPasswordSRP::ID: + func(static_cast<inputCheckPasswordSRP &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputDialogPeer &obj, const T &func) { + switch (obj.get_id()) { + case inputDialogPeer::ID: + func(static_cast<inputDialogPeer &>(obj)); + return true; + case inputDialogPeerFolder::ID: + func(static_cast<inputDialogPeerFolder &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputDocument &obj, const T &func) { + switch (obj.get_id()) { + case inputDocumentEmpty::ID: + func(static_cast<inputDocumentEmpty &>(obj)); + return true; + case inputDocument::ID: + func(static_cast<inputDocument &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputEncryptedFile &obj, const T &func) { + switch (obj.get_id()) { + case inputEncryptedFileEmpty::ID: + func(static_cast<inputEncryptedFileEmpty &>(obj)); + return true; + case inputEncryptedFileUploaded::ID: + func(static_cast<inputEncryptedFileUploaded &>(obj)); + return true; + case inputEncryptedFile::ID: + func(static_cast<inputEncryptedFile &>(obj)); + return true; + case inputEncryptedFileBigUploaded::ID: + func(static_cast<inputEncryptedFileBigUploaded &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputFile &obj, const T &func) { + switch (obj.get_id()) { + case inputFile::ID: + func(static_cast<inputFile &>(obj)); + return true; + case inputFileBig::ID: + func(static_cast<inputFileBig &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputFileLocation &obj, const T &func) { + switch (obj.get_id()) { + case inputPeerPhotoFileLocationLegacy::ID: + func(static_cast<inputPeerPhotoFileLocationLegacy &>(obj)); + return true; + case inputStickerSetThumbLegacy::ID: + func(static_cast<inputStickerSetThumbLegacy &>(obj)); + return true; + case inputFileLocation::ID: + func(static_cast<inputFileLocation &>(obj)); + return true; + case inputEncryptedFileLocation::ID: + func(static_cast<inputEncryptedFileLocation &>(obj)); + return true; + case inputDocumentFileLocation::ID: + func(static_cast<inputDocumentFileLocation &>(obj)); + return true; + case inputSecureFileLocation::ID: + func(static_cast<inputSecureFileLocation &>(obj)); + return true; + case inputTakeoutFileLocation::ID: + func(static_cast<inputTakeoutFileLocation &>(obj)); + return true; + case inputPhotoFileLocation::ID: + func(static_cast<inputPhotoFileLocation &>(obj)); + return true; + case inputPhotoLegacyFileLocation::ID: + func(static_cast<inputPhotoLegacyFileLocation &>(obj)); + return true; + case inputPeerPhotoFileLocation::ID: + func(static_cast<inputPeerPhotoFileLocation &>(obj)); + return true; + case inputStickerSetThumb::ID: + func(static_cast<inputStickerSetThumb &>(obj)); + return true; + case inputGroupCallStream::ID: + func(static_cast<inputGroupCallStream &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputGame &obj, const T &func) { + switch (obj.get_id()) { + case inputGameID::ID: + func(static_cast<inputGameID &>(obj)); + return true; + case inputGameShortName::ID: + func(static_cast<inputGameShortName &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputGeoPoint &obj, const T &func) { + switch (obj.get_id()) { + case inputGeoPointEmpty::ID: + func(static_cast<inputGeoPointEmpty &>(obj)); + return true; + case inputGeoPoint::ID: + func(static_cast<inputGeoPoint &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputInvoice &obj, const T &func) { + switch (obj.get_id()) { + case inputInvoiceMessage::ID: + func(static_cast<inputInvoiceMessage &>(obj)); + return true; + case inputInvoiceSlug::ID: + func(static_cast<inputInvoiceSlug &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputMedia &obj, const T &func) { + switch (obj.get_id()) { + case inputMediaEmpty::ID: + func(static_cast<inputMediaEmpty &>(obj)); + return true; + case inputMediaUploadedPhoto::ID: + func(static_cast<inputMediaUploadedPhoto &>(obj)); + return true; + case inputMediaPhoto::ID: + func(static_cast<inputMediaPhoto &>(obj)); + return true; + case inputMediaGeoPoint::ID: + func(static_cast<inputMediaGeoPoint &>(obj)); + return true; + case inputMediaContact::ID: + func(static_cast<inputMediaContact &>(obj)); + return true; + case inputMediaUploadedDocument::ID: + func(static_cast<inputMediaUploadedDocument &>(obj)); + return true; + case inputMediaDocument::ID: + func(static_cast<inputMediaDocument &>(obj)); + return true; + case inputMediaVenue::ID: + func(static_cast<inputMediaVenue &>(obj)); + return true; + case inputMediaPhotoExternal::ID: + func(static_cast<inputMediaPhotoExternal &>(obj)); + return true; + case inputMediaDocumentExternal::ID: + func(static_cast<inputMediaDocumentExternal &>(obj)); + return true; + case inputMediaGame::ID: + func(static_cast<inputMediaGame &>(obj)); + return true; + case inputMediaInvoice::ID: + func(static_cast<inputMediaInvoice &>(obj)); + return true; + case inputMediaGeoLive::ID: + func(static_cast<inputMediaGeoLive &>(obj)); + return true; + case inputMediaPoll::ID: + func(static_cast<inputMediaPoll &>(obj)); + return true; + case inputMediaDice::ID: + func(static_cast<inputMediaDice &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputMessage &obj, const T &func) { + switch (obj.get_id()) { + case inputMessageID::ID: + func(static_cast<inputMessageID &>(obj)); + return true; + case inputMessageReplyTo::ID: + func(static_cast<inputMessageReplyTo &>(obj)); + return true; + case inputMessagePinned::ID: + func(static_cast<inputMessagePinned &>(obj)); + return true; + case inputMessageCallbackQuery::ID: + func(static_cast<inputMessageCallbackQuery &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputNotifyPeer &obj, const T &func) { + switch (obj.get_id()) { + case inputNotifyPeer::ID: + func(static_cast<inputNotifyPeer &>(obj)); + return true; + case inputNotifyUsers::ID: + func(static_cast<inputNotifyUsers &>(obj)); + return true; + case inputNotifyChats::ID: + func(static_cast<inputNotifyChats &>(obj)); + return true; + case inputNotifyBroadcasts::ID: + func(static_cast<inputNotifyBroadcasts &>(obj)); + return true; + case inputNotifyForumTopic::ID: + func(static_cast<inputNotifyForumTopic &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputPaymentCredentials &obj, const T &func) { + switch (obj.get_id()) { + case inputPaymentCredentialsSaved::ID: + func(static_cast<inputPaymentCredentialsSaved &>(obj)); + return true; + case inputPaymentCredentials::ID: + func(static_cast<inputPaymentCredentials &>(obj)); + return true; + case inputPaymentCredentialsApplePay::ID: + func(static_cast<inputPaymentCredentialsApplePay &>(obj)); + return true; + case inputPaymentCredentialsGooglePay::ID: + func(static_cast<inputPaymentCredentialsGooglePay &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputPeer &obj, const T &func) { + switch (obj.get_id()) { + case inputPeerEmpty::ID: + func(static_cast<inputPeerEmpty &>(obj)); + return true; + case inputPeerSelf::ID: + func(static_cast<inputPeerSelf &>(obj)); + return true; + case inputPeerChat::ID: + func(static_cast<inputPeerChat &>(obj)); + return true; + case inputPeerUser::ID: + func(static_cast<inputPeerUser &>(obj)); + return true; + case inputPeerChannel::ID: + func(static_cast<inputPeerChannel &>(obj)); + return true; + case inputPeerUserFromMessage::ID: + func(static_cast<inputPeerUserFromMessage &>(obj)); + return true; + case inputPeerChannelFromMessage::ID: + func(static_cast<inputPeerChannelFromMessage &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputPhoto &obj, const T &func) { + switch (obj.get_id()) { + case inputPhotoEmpty::ID: + func(static_cast<inputPhotoEmpty &>(obj)); + return true; + case inputPhoto::ID: + func(static_cast<inputPhoto &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputPrivacyKey &obj, const T &func) { + switch (obj.get_id()) { + case inputPrivacyKeyStatusTimestamp::ID: + func(static_cast<inputPrivacyKeyStatusTimestamp &>(obj)); + return true; + case inputPrivacyKeyChatInvite::ID: + func(static_cast<inputPrivacyKeyChatInvite &>(obj)); + return true; + case inputPrivacyKeyPhoneCall::ID: + func(static_cast<inputPrivacyKeyPhoneCall &>(obj)); + return true; + case inputPrivacyKeyPhoneP2P::ID: + func(static_cast<inputPrivacyKeyPhoneP2P &>(obj)); + return true; + case inputPrivacyKeyForwards::ID: + func(static_cast<inputPrivacyKeyForwards &>(obj)); + return true; + case inputPrivacyKeyProfilePhoto::ID: + func(static_cast<inputPrivacyKeyProfilePhoto &>(obj)); + return true; + case inputPrivacyKeyPhoneNumber::ID: + func(static_cast<inputPrivacyKeyPhoneNumber &>(obj)); + return true; + case inputPrivacyKeyAddedByPhone::ID: + func(static_cast<inputPrivacyKeyAddedByPhone &>(obj)); + return true; + case inputPrivacyKeyVoiceMessages::ID: + func(static_cast<inputPrivacyKeyVoiceMessages &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputPrivacyRule &obj, const T &func) { + switch (obj.get_id()) { + case inputPrivacyValueAllowContacts::ID: + func(static_cast<inputPrivacyValueAllowContacts &>(obj)); + return true; + case inputPrivacyValueAllowAll::ID: + func(static_cast<inputPrivacyValueAllowAll &>(obj)); + return true; + case inputPrivacyValueAllowUsers::ID: + func(static_cast<inputPrivacyValueAllowUsers &>(obj)); + return true; + case inputPrivacyValueDisallowContacts::ID: + func(static_cast<inputPrivacyValueDisallowContacts &>(obj)); + return true; + case inputPrivacyValueDisallowAll::ID: + func(static_cast<inputPrivacyValueDisallowAll &>(obj)); + return true; + case inputPrivacyValueDisallowUsers::ID: + func(static_cast<inputPrivacyValueDisallowUsers &>(obj)); + return true; + case inputPrivacyValueAllowChatParticipants::ID: + func(static_cast<inputPrivacyValueAllowChatParticipants &>(obj)); + return true; + case inputPrivacyValueDisallowChatParticipants::ID: + func(static_cast<inputPrivacyValueDisallowChatParticipants &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputSecureFile &obj, const T &func) { + switch (obj.get_id()) { + case inputSecureFileUploaded::ID: + func(static_cast<inputSecureFileUploaded &>(obj)); + return true; + case inputSecureFile::ID: + func(static_cast<inputSecureFile &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputStickerSet &obj, const T &func) { + switch (obj.get_id()) { + case inputStickerSetEmpty::ID: + func(static_cast<inputStickerSetEmpty &>(obj)); + return true; + case inputStickerSetID::ID: + func(static_cast<inputStickerSetID &>(obj)); + return true; + case inputStickerSetShortName::ID: + func(static_cast<inputStickerSetShortName &>(obj)); + return true; + case inputStickerSetAnimatedEmoji::ID: + func(static_cast<inputStickerSetAnimatedEmoji &>(obj)); + return true; + case inputStickerSetDice::ID: + func(static_cast<inputStickerSetDice &>(obj)); + return true; + case inputStickerSetAnimatedEmojiAnimations::ID: + func(static_cast<inputStickerSetAnimatedEmojiAnimations &>(obj)); + return true; + case inputStickerSetPremiumGifts::ID: + func(static_cast<inputStickerSetPremiumGifts &>(obj)); + return true; + case inputStickerSetEmojiGenericAnimations::ID: + func(static_cast<inputStickerSetEmojiGenericAnimations &>(obj)); + return true; + case inputStickerSetEmojiDefaultStatuses::ID: + func(static_cast<inputStickerSetEmojiDefaultStatuses &>(obj)); + return true; + case inputStickerSetEmojiDefaultTopicIcons::ID: + func(static_cast<inputStickerSetEmojiDefaultTopicIcons &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputStickeredMedia &obj, const T &func) { + switch (obj.get_id()) { + case inputStickeredMediaPhoto::ID: + func(static_cast<inputStickeredMediaPhoto &>(obj)); + return true; + case inputStickeredMediaDocument::ID: + func(static_cast<inputStickeredMediaDocument &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputStorePaymentPurpose &obj, const T &func) { + switch (obj.get_id()) { + case inputStorePaymentPremiumSubscription::ID: + func(static_cast<inputStorePaymentPremiumSubscription &>(obj)); + return true; + case inputStorePaymentGiftPremium::ID: + func(static_cast<inputStorePaymentGiftPremium &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputTheme &obj, const T &func) { + switch (obj.get_id()) { + case inputTheme::ID: + func(static_cast<inputTheme &>(obj)); + return true; + case inputThemeSlug::ID: + func(static_cast<inputThemeSlug &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputUser &obj, const T &func) { + switch (obj.get_id()) { + case inputUserEmpty::ID: + func(static_cast<inputUserEmpty &>(obj)); + return true; + case inputUserSelf::ID: + func(static_cast<inputUserSelf &>(obj)); + return true; + case inputUser::ID: + func(static_cast<inputUser &>(obj)); + return true; + case inputUserFromMessage::ID: + func(static_cast<inputUserFromMessage &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputWallPaper &obj, const T &func) { + switch (obj.get_id()) { + case inputWallPaper::ID: + func(static_cast<inputWallPaper &>(obj)); + return true; + case inputWallPaperSlug::ID: + func(static_cast<inputWallPaperSlug &>(obj)); + return true; + case inputWallPaperNoFile::ID: + func(static_cast<inputWallPaperNoFile &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(InputWebFileLocation &obj, const T &func) { + switch (obj.get_id()) { + case inputWebFileLocation::ID: + func(static_cast<inputWebFileLocation &>(obj)); + return true; + case inputWebFileGeoPointLocation::ID: + func(static_cast<inputWebFileGeoPointLocation &>(obj)); + return true; + case inputWebFileAudioAlbumThumbLocation::ID: + func(static_cast<inputWebFileAudioAlbumThumbLocation &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(IpPort &obj, const T &func) { + switch (obj.get_id()) { + case ipPort::ID: + func(static_cast<ipPort &>(obj)); + return true; + case ipPortSecret::ID: + func(static_cast<ipPortSecret &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(JSONValue &obj, const T &func) { + switch (obj.get_id()) { + case jsonNull::ID: + func(static_cast<jsonNull &>(obj)); + return true; + case jsonBool::ID: + func(static_cast<jsonBool &>(obj)); + return true; + case jsonNumber::ID: + func(static_cast<jsonNumber &>(obj)); + return true; + case jsonString::ID: + func(static_cast<jsonString &>(obj)); + return true; + case jsonArray::ID: + func(static_cast<jsonArray &>(obj)); + return true; + case jsonObject::ID: + func(static_cast<jsonObject &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(KeyboardButton &obj, const T &func) { + switch (obj.get_id()) { + case keyboardButton::ID: + func(static_cast<keyboardButton &>(obj)); + return true; + case keyboardButtonUrl::ID: + func(static_cast<keyboardButtonUrl &>(obj)); + return true; + case keyboardButtonCallback::ID: + func(static_cast<keyboardButtonCallback &>(obj)); + return true; + case keyboardButtonRequestPhone::ID: + func(static_cast<keyboardButtonRequestPhone &>(obj)); + return true; + case keyboardButtonRequestGeoLocation::ID: + func(static_cast<keyboardButtonRequestGeoLocation &>(obj)); + return true; + case keyboardButtonSwitchInline::ID: + func(static_cast<keyboardButtonSwitchInline &>(obj)); + return true; + case keyboardButtonGame::ID: + func(static_cast<keyboardButtonGame &>(obj)); + return true; + case keyboardButtonBuy::ID: + func(static_cast<keyboardButtonBuy &>(obj)); + return true; + case keyboardButtonUrlAuth::ID: + func(static_cast<keyboardButtonUrlAuth &>(obj)); + return true; + case inputKeyboardButtonUrlAuth::ID: + func(static_cast<inputKeyboardButtonUrlAuth &>(obj)); + return true; + case keyboardButtonRequestPoll::ID: + func(static_cast<keyboardButtonRequestPoll &>(obj)); + return true; + case inputKeyboardButtonUserProfile::ID: + func(static_cast<inputKeyboardButtonUserProfile &>(obj)); + return true; + case keyboardButtonUserProfile::ID: + func(static_cast<keyboardButtonUserProfile &>(obj)); + return true; + case keyboardButtonWebView::ID: + func(static_cast<keyboardButtonWebView &>(obj)); + return true; + case keyboardButtonSimpleWebView::ID: + func(static_cast<keyboardButtonSimpleWebView &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(LangPackString &obj, const T &func) { + switch (obj.get_id()) { + case langPackString::ID: + func(static_cast<langPackString &>(obj)); + return true; + case langPackStringPluralized::ID: + func(static_cast<langPackStringPluralized &>(obj)); + return true; + case langPackStringDeleted::ID: + func(static_cast<langPackStringDeleted &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Message &obj, const T &func) { + switch (obj.get_id()) { + case messageEmpty::ID: + func(static_cast<messageEmpty &>(obj)); + return true; + case message::ID: + func(static_cast<message &>(obj)); + return true; + case messageService::ID: + func(static_cast<messageService &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageAction &obj, const T &func) { + switch (obj.get_id()) { + case messageActionEmpty::ID: + func(static_cast<messageActionEmpty &>(obj)); + return true; + case messageActionChatCreate::ID: + func(static_cast<messageActionChatCreate &>(obj)); + return true; + case messageActionChatEditTitle::ID: + func(static_cast<messageActionChatEditTitle &>(obj)); + return true; + case messageActionChatEditPhoto::ID: + func(static_cast<messageActionChatEditPhoto &>(obj)); + return true; + case messageActionChatDeletePhoto::ID: + func(static_cast<messageActionChatDeletePhoto &>(obj)); + return true; + case messageActionChatAddUser::ID: + func(static_cast<messageActionChatAddUser &>(obj)); + return true; + case messageActionChatDeleteUser::ID: + func(static_cast<messageActionChatDeleteUser &>(obj)); + return true; + case messageActionChatJoinedByLink::ID: + func(static_cast<messageActionChatJoinedByLink &>(obj)); + return true; + case messageActionChannelCreate::ID: + func(static_cast<messageActionChannelCreate &>(obj)); + return true; + case messageActionChatMigrateTo::ID: + func(static_cast<messageActionChatMigrateTo &>(obj)); + return true; + case messageActionChannelMigrateFrom::ID: + func(static_cast<messageActionChannelMigrateFrom &>(obj)); + return true; + case messageActionPinMessage::ID: + func(static_cast<messageActionPinMessage &>(obj)); + return true; + case messageActionHistoryClear::ID: + func(static_cast<messageActionHistoryClear &>(obj)); + return true; + case messageActionGameScore::ID: + func(static_cast<messageActionGameScore &>(obj)); + return true; + case messageActionPaymentSentMe::ID: + func(static_cast<messageActionPaymentSentMe &>(obj)); + return true; + case messageActionPaymentSent::ID: + func(static_cast<messageActionPaymentSent &>(obj)); + return true; + case messageActionPhoneCall::ID: + func(static_cast<messageActionPhoneCall &>(obj)); + return true; + case messageActionScreenshotTaken::ID: + func(static_cast<messageActionScreenshotTaken &>(obj)); + return true; + case messageActionCustomAction::ID: + func(static_cast<messageActionCustomAction &>(obj)); + return true; + case messageActionBotAllowed::ID: + func(static_cast<messageActionBotAllowed &>(obj)); + return true; + case messageActionSecureValuesSentMe::ID: + func(static_cast<messageActionSecureValuesSentMe &>(obj)); + return true; + case messageActionSecureValuesSent::ID: + func(static_cast<messageActionSecureValuesSent &>(obj)); + return true; + case messageActionContactSignUp::ID: + func(static_cast<messageActionContactSignUp &>(obj)); + return true; + case messageActionGeoProximityReached::ID: + func(static_cast<messageActionGeoProximityReached &>(obj)); + return true; + case messageActionGroupCall::ID: + func(static_cast<messageActionGroupCall &>(obj)); + return true; + case messageActionInviteToGroupCall::ID: + func(static_cast<messageActionInviteToGroupCall &>(obj)); + return true; + case messageActionSetMessagesTTL::ID: + func(static_cast<messageActionSetMessagesTTL &>(obj)); + return true; + case messageActionGroupCallScheduled::ID: + func(static_cast<messageActionGroupCallScheduled &>(obj)); + return true; + case messageActionSetChatTheme::ID: + func(static_cast<messageActionSetChatTheme &>(obj)); + return true; + case messageActionChatJoinedByRequest::ID: + func(static_cast<messageActionChatJoinedByRequest &>(obj)); + return true; + case messageActionWebViewDataSentMe::ID: + func(static_cast<messageActionWebViewDataSentMe &>(obj)); + return true; + case messageActionWebViewDataSent::ID: + func(static_cast<messageActionWebViewDataSent &>(obj)); + return true; + case messageActionGiftPremium::ID: + func(static_cast<messageActionGiftPremium &>(obj)); + return true; + case messageActionTopicCreate::ID: + func(static_cast<messageActionTopicCreate &>(obj)); + return true; + case messageActionTopicEdit::ID: + func(static_cast<messageActionTopicEdit &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageEntity &obj, const T &func) { + switch (obj.get_id()) { + case messageEntityUnknown::ID: + func(static_cast<messageEntityUnknown &>(obj)); + return true; + case messageEntityMention::ID: + func(static_cast<messageEntityMention &>(obj)); + return true; + case messageEntityHashtag::ID: + func(static_cast<messageEntityHashtag &>(obj)); + return true; + case messageEntityBotCommand::ID: + func(static_cast<messageEntityBotCommand &>(obj)); + return true; + case messageEntityUrl::ID: + func(static_cast<messageEntityUrl &>(obj)); + return true; + case messageEntityEmail::ID: + func(static_cast<messageEntityEmail &>(obj)); + return true; + case messageEntityBold::ID: + func(static_cast<messageEntityBold &>(obj)); + return true; + case messageEntityItalic::ID: + func(static_cast<messageEntityItalic &>(obj)); + return true; + case messageEntityCode::ID: + func(static_cast<messageEntityCode &>(obj)); + return true; + case messageEntityPre::ID: + func(static_cast<messageEntityPre &>(obj)); + return true; + case messageEntityTextUrl::ID: + func(static_cast<messageEntityTextUrl &>(obj)); + return true; + case messageEntityMentionName::ID: + func(static_cast<messageEntityMentionName &>(obj)); + return true; + case inputMessageEntityMentionName::ID: + func(static_cast<inputMessageEntityMentionName &>(obj)); + return true; + case messageEntityPhone::ID: + func(static_cast<messageEntityPhone &>(obj)); + return true; + case messageEntityCashtag::ID: + func(static_cast<messageEntityCashtag &>(obj)); + return true; + case messageEntityUnderline::ID: + func(static_cast<messageEntityUnderline &>(obj)); + return true; + case messageEntityStrike::ID: + func(static_cast<messageEntityStrike &>(obj)); + return true; + case messageEntityBlockquote::ID: + func(static_cast<messageEntityBlockquote &>(obj)); + return true; + case messageEntityBankCard::ID: + func(static_cast<messageEntityBankCard &>(obj)); + return true; + case messageEntitySpoiler::ID: + func(static_cast<messageEntitySpoiler &>(obj)); + return true; + case messageEntityCustomEmoji::ID: + func(static_cast<messageEntityCustomEmoji &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageExtendedMedia &obj, const T &func) { + switch (obj.get_id()) { + case messageExtendedMediaPreview::ID: + func(static_cast<messageExtendedMediaPreview &>(obj)); + return true; + case messageExtendedMedia::ID: + func(static_cast<messageExtendedMedia &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageMedia &obj, const T &func) { + switch (obj.get_id()) { + case messageMediaEmpty::ID: + func(static_cast<messageMediaEmpty &>(obj)); + return true; + case messageMediaPhoto::ID: + func(static_cast<messageMediaPhoto &>(obj)); + return true; + case messageMediaGeo::ID: + func(static_cast<messageMediaGeo &>(obj)); + return true; + case messageMediaContact::ID: + func(static_cast<messageMediaContact &>(obj)); + return true; + case messageMediaUnsupported::ID: + func(static_cast<messageMediaUnsupported &>(obj)); + return true; + case messageMediaDocument::ID: + func(static_cast<messageMediaDocument &>(obj)); + return true; + case messageMediaWebPage::ID: + func(static_cast<messageMediaWebPage &>(obj)); + return true; + case messageMediaVenue::ID: + func(static_cast<messageMediaVenue &>(obj)); + return true; + case messageMediaGame::ID: + func(static_cast<messageMediaGame &>(obj)); + return true; + case messageMediaInvoice::ID: + func(static_cast<messageMediaInvoice &>(obj)); + return true; + case messageMediaGeoLive::ID: + func(static_cast<messageMediaGeoLive &>(obj)); + return true; + case messageMediaPoll::ID: + func(static_cast<messageMediaPoll &>(obj)); + return true; + case messageMediaDice::ID: + func(static_cast<messageMediaDice &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessageUserVote &obj, const T &func) { + switch (obj.get_id()) { + case messageUserVote::ID: + func(static_cast<messageUserVote &>(obj)); + return true; + case messageUserVoteInputOption::ID: + func(static_cast<messageUserVoteInputOption &>(obj)); + return true; + case messageUserVoteMultiple::ID: + func(static_cast<messageUserVoteMultiple &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(MessagesFilter &obj, const T &func) { + switch (obj.get_id()) { + case inputMessagesFilterEmpty::ID: + func(static_cast<inputMessagesFilterEmpty &>(obj)); + return true; + case inputMessagesFilterPhotos::ID: + func(static_cast<inputMessagesFilterPhotos &>(obj)); + return true; + case inputMessagesFilterVideo::ID: + func(static_cast<inputMessagesFilterVideo &>(obj)); + return true; + case inputMessagesFilterPhotoVideo::ID: + func(static_cast<inputMessagesFilterPhotoVideo &>(obj)); + return true; + case inputMessagesFilterDocument::ID: + func(static_cast<inputMessagesFilterDocument &>(obj)); + return true; + case inputMessagesFilterUrl::ID: + func(static_cast<inputMessagesFilterUrl &>(obj)); + return true; + case inputMessagesFilterGif::ID: + func(static_cast<inputMessagesFilterGif &>(obj)); + return true; + case inputMessagesFilterVoice::ID: + func(static_cast<inputMessagesFilterVoice &>(obj)); + return true; + case inputMessagesFilterMusic::ID: + func(static_cast<inputMessagesFilterMusic &>(obj)); + return true; + case inputMessagesFilterChatPhotos::ID: + func(static_cast<inputMessagesFilterChatPhotos &>(obj)); + return true; + case inputMessagesFilterPhoneCalls::ID: + func(static_cast<inputMessagesFilterPhoneCalls &>(obj)); + return true; + case inputMessagesFilterRoundVoice::ID: + func(static_cast<inputMessagesFilterRoundVoice &>(obj)); + return true; + case inputMessagesFilterRoundVideo::ID: + func(static_cast<inputMessagesFilterRoundVideo &>(obj)); + return true; + case inputMessagesFilterMyMentions::ID: + func(static_cast<inputMessagesFilterMyMentions &>(obj)); + return true; + case inputMessagesFilterGeo::ID: + func(static_cast<inputMessagesFilterGeo &>(obj)); + return true; + case inputMessagesFilterContacts::ID: + func(static_cast<inputMessagesFilterContacts &>(obj)); + return true; + case inputMessagesFilterPinned::ID: + func(static_cast<inputMessagesFilterPinned &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(NotificationSound &obj, const T &func) { + switch (obj.get_id()) { + case notificationSoundDefault::ID: + func(static_cast<notificationSoundDefault &>(obj)); + return true; + case notificationSoundNone::ID: + func(static_cast<notificationSoundNone &>(obj)); + return true; + case notificationSoundLocal::ID: + func(static_cast<notificationSoundLocal &>(obj)); + return true; + case notificationSoundRingtone::ID: + func(static_cast<notificationSoundRingtone &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(NotifyPeer &obj, const T &func) { + switch (obj.get_id()) { + case notifyPeer::ID: + func(static_cast<notifyPeer &>(obj)); + return true; + case notifyUsers::ID: + func(static_cast<notifyUsers &>(obj)); + return true; + case notifyChats::ID: + func(static_cast<notifyChats &>(obj)); + return true; + case notifyBroadcasts::ID: + func(static_cast<notifyBroadcasts &>(obj)); + return true; + case notifyForumTopic::ID: + func(static_cast<notifyForumTopic &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PageBlock &obj, const T &func) { + switch (obj.get_id()) { + case pageBlockUnsupported::ID: + func(static_cast<pageBlockUnsupported &>(obj)); + return true; + case pageBlockTitle::ID: + func(static_cast<pageBlockTitle &>(obj)); + return true; + case pageBlockSubtitle::ID: + func(static_cast<pageBlockSubtitle &>(obj)); + return true; + case pageBlockAuthorDate::ID: + func(static_cast<pageBlockAuthorDate &>(obj)); + return true; + case pageBlockHeader::ID: + func(static_cast<pageBlockHeader &>(obj)); + return true; + case pageBlockSubheader::ID: + func(static_cast<pageBlockSubheader &>(obj)); + return true; + case pageBlockParagraph::ID: + func(static_cast<pageBlockParagraph &>(obj)); + return true; + case pageBlockPreformatted::ID: + func(static_cast<pageBlockPreformatted &>(obj)); + return true; + case pageBlockFooter::ID: + func(static_cast<pageBlockFooter &>(obj)); + return true; + case pageBlockDivider::ID: + func(static_cast<pageBlockDivider &>(obj)); + return true; + case pageBlockAnchor::ID: + func(static_cast<pageBlockAnchor &>(obj)); + return true; + case pageBlockList::ID: + func(static_cast<pageBlockList &>(obj)); + return true; + case pageBlockBlockquote::ID: + func(static_cast<pageBlockBlockquote &>(obj)); + return true; + case pageBlockPullquote::ID: + func(static_cast<pageBlockPullquote &>(obj)); + return true; + case pageBlockPhoto::ID: + func(static_cast<pageBlockPhoto &>(obj)); + return true; + case pageBlockVideo::ID: + func(static_cast<pageBlockVideo &>(obj)); + return true; + case pageBlockCover::ID: + func(static_cast<pageBlockCover &>(obj)); + return true; + case pageBlockEmbed::ID: + func(static_cast<pageBlockEmbed &>(obj)); + return true; + case pageBlockEmbedPost::ID: + func(static_cast<pageBlockEmbedPost &>(obj)); + return true; + case pageBlockCollage::ID: + func(static_cast<pageBlockCollage &>(obj)); + return true; + case pageBlockSlideshow::ID: + func(static_cast<pageBlockSlideshow &>(obj)); + return true; + case pageBlockChannel::ID: + func(static_cast<pageBlockChannel &>(obj)); + return true; + case pageBlockAudio::ID: + func(static_cast<pageBlockAudio &>(obj)); + return true; + case pageBlockKicker::ID: + func(static_cast<pageBlockKicker &>(obj)); + return true; + case pageBlockTable::ID: + func(static_cast<pageBlockTable &>(obj)); + return true; + case pageBlockOrderedList::ID: + func(static_cast<pageBlockOrderedList &>(obj)); + return true; + case pageBlockDetails::ID: + func(static_cast<pageBlockDetails &>(obj)); + return true; + case pageBlockRelatedArticles::ID: + func(static_cast<pageBlockRelatedArticles &>(obj)); + return true; + case pageBlockMap::ID: + func(static_cast<pageBlockMap &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PageListItem &obj, const T &func) { + switch (obj.get_id()) { + case pageListItemText::ID: + func(static_cast<pageListItemText &>(obj)); + return true; + case pageListItemBlocks::ID: + func(static_cast<pageListItemBlocks &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PageListOrderedItem &obj, const T &func) { + switch (obj.get_id()) { + case pageListOrderedItemText::ID: + func(static_cast<pageListOrderedItemText &>(obj)); + return true; + case pageListOrderedItemBlocks::ID: + func(static_cast<pageListOrderedItemBlocks &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PasswordKdfAlgo &obj, const T &func) { + switch (obj.get_id()) { + case passwordKdfAlgoUnknown::ID: + func(static_cast<passwordKdfAlgoUnknown &>(obj)); + return true; + case passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow::ID: + func(static_cast<passwordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Peer &obj, const T &func) { + switch (obj.get_id()) { + case peerUser::ID: + func(static_cast<peerUser &>(obj)); + return true; + case peerChat::ID: + func(static_cast<peerChat &>(obj)); + return true; + case peerChannel::ID: + func(static_cast<peerChannel &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PeerLocated &obj, const T &func) { + switch (obj.get_id()) { + case peerLocated::ID: + func(static_cast<peerLocated &>(obj)); + return true; + case peerSelfLocated::ID: + func(static_cast<peerSelfLocated &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PhoneCall &obj, const T &func) { + switch (obj.get_id()) { + case phoneCallEmpty::ID: + func(static_cast<phoneCallEmpty &>(obj)); + return true; + case phoneCallWaiting::ID: + func(static_cast<phoneCallWaiting &>(obj)); + return true; + case phoneCallRequested::ID: + func(static_cast<phoneCallRequested &>(obj)); + return true; + case phoneCallAccepted::ID: + func(static_cast<phoneCallAccepted &>(obj)); + return true; + case phoneCall::ID: + func(static_cast<phoneCall &>(obj)); + return true; + case phoneCallDiscarded::ID: + func(static_cast<phoneCallDiscarded &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PhoneCallDiscardReason &obj, const T &func) { + switch (obj.get_id()) { + case phoneCallDiscardReasonMissed::ID: + func(static_cast<phoneCallDiscardReasonMissed &>(obj)); + return true; + case phoneCallDiscardReasonDisconnect::ID: + func(static_cast<phoneCallDiscardReasonDisconnect &>(obj)); + return true; + case phoneCallDiscardReasonHangup::ID: + func(static_cast<phoneCallDiscardReasonHangup &>(obj)); + return true; + case phoneCallDiscardReasonBusy::ID: + func(static_cast<phoneCallDiscardReasonBusy &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PhoneConnection &obj, const T &func) { + switch (obj.get_id()) { + case phoneConnection::ID: + func(static_cast<phoneConnection &>(obj)); + return true; + case phoneConnectionWebrtc::ID: + func(static_cast<phoneConnectionWebrtc &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Photo &obj, const T &func) { + switch (obj.get_id()) { + case photoEmpty::ID: + func(static_cast<photoEmpty &>(obj)); + return true; + case photo::ID: + func(static_cast<photo &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PhotoSize &obj, const T &func) { + switch (obj.get_id()) { + case photoSizeEmpty::ID: + func(static_cast<photoSizeEmpty &>(obj)); + return true; + case photoSize::ID: + func(static_cast<photoSize &>(obj)); + return true; + case photoCachedSize::ID: + func(static_cast<photoCachedSize &>(obj)); + return true; + case photoStrippedSize::ID: + func(static_cast<photoStrippedSize &>(obj)); + return true; + case photoSizeProgressive::ID: + func(static_cast<photoSizeProgressive &>(obj)); + return true; + case photoPathSize::ID: + func(static_cast<photoPathSize &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PrivacyKey &obj, const T &func) { + switch (obj.get_id()) { + case privacyKeyStatusTimestamp::ID: + func(static_cast<privacyKeyStatusTimestamp &>(obj)); + return true; + case privacyKeyChatInvite::ID: + func(static_cast<privacyKeyChatInvite &>(obj)); + return true; + case privacyKeyPhoneCall::ID: + func(static_cast<privacyKeyPhoneCall &>(obj)); + return true; + case privacyKeyPhoneP2P::ID: + func(static_cast<privacyKeyPhoneP2P &>(obj)); + return true; + case privacyKeyForwards::ID: + func(static_cast<privacyKeyForwards &>(obj)); + return true; + case privacyKeyProfilePhoto::ID: + func(static_cast<privacyKeyProfilePhoto &>(obj)); + return true; + case privacyKeyPhoneNumber::ID: + func(static_cast<privacyKeyPhoneNumber &>(obj)); + return true; + case privacyKeyAddedByPhone::ID: + func(static_cast<privacyKeyAddedByPhone &>(obj)); + return true; + case privacyKeyVoiceMessages::ID: + func(static_cast<privacyKeyVoiceMessages &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(PrivacyRule &obj, const T &func) { + switch (obj.get_id()) { + case privacyValueAllowContacts::ID: + func(static_cast<privacyValueAllowContacts &>(obj)); + return true; + case privacyValueAllowAll::ID: + func(static_cast<privacyValueAllowAll &>(obj)); + return true; + case privacyValueAllowUsers::ID: + func(static_cast<privacyValueAllowUsers &>(obj)); + return true; + case privacyValueDisallowContacts::ID: + func(static_cast<privacyValueDisallowContacts &>(obj)); + return true; + case privacyValueDisallowAll::ID: + func(static_cast<privacyValueDisallowAll &>(obj)); + return true; + case privacyValueDisallowUsers::ID: + func(static_cast<privacyValueDisallowUsers &>(obj)); + return true; + case privacyValueAllowChatParticipants::ID: + func(static_cast<privacyValueAllowChatParticipants &>(obj)); + return true; + case privacyValueDisallowChatParticipants::ID: + func(static_cast<privacyValueDisallowChatParticipants &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Reaction &obj, const T &func) { + switch (obj.get_id()) { + case reactionEmpty::ID: + func(static_cast<reactionEmpty &>(obj)); + return true; + case reactionEmoji::ID: + func(static_cast<reactionEmoji &>(obj)); + return true; + case reactionCustomEmoji::ID: + func(static_cast<reactionCustomEmoji &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(RecentMeUrl &obj, const T &func) { + switch (obj.get_id()) { + case recentMeUrlUnknown::ID: + func(static_cast<recentMeUrlUnknown &>(obj)); + return true; + case recentMeUrlUser::ID: + func(static_cast<recentMeUrlUser &>(obj)); + return true; + case recentMeUrlChat::ID: + func(static_cast<recentMeUrlChat &>(obj)); + return true; + case recentMeUrlChatInvite::ID: + func(static_cast<recentMeUrlChatInvite &>(obj)); + return true; + case recentMeUrlStickerSet::ID: + func(static_cast<recentMeUrlStickerSet &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ReplyMarkup &obj, const T &func) { + switch (obj.get_id()) { + case replyKeyboardHide::ID: + func(static_cast<replyKeyboardHide &>(obj)); + return true; + case replyKeyboardForceReply::ID: + func(static_cast<replyKeyboardForceReply &>(obj)); + return true; + case replyKeyboardMarkup::ID: + func(static_cast<replyKeyboardMarkup &>(obj)); + return true; + case replyInlineMarkup::ID: + func(static_cast<replyInlineMarkup &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(ReportReason &obj, const T &func) { + switch (obj.get_id()) { + case inputReportReasonSpam::ID: + func(static_cast<inputReportReasonSpam &>(obj)); + return true; + case inputReportReasonViolence::ID: + func(static_cast<inputReportReasonViolence &>(obj)); + return true; + case inputReportReasonPornography::ID: + func(static_cast<inputReportReasonPornography &>(obj)); + return true; + case inputReportReasonChildAbuse::ID: + func(static_cast<inputReportReasonChildAbuse &>(obj)); + return true; + case inputReportReasonOther::ID: + func(static_cast<inputReportReasonOther &>(obj)); + return true; + case inputReportReasonCopyright::ID: + func(static_cast<inputReportReasonCopyright &>(obj)); + return true; + case inputReportReasonGeoIrrelevant::ID: + func(static_cast<inputReportReasonGeoIrrelevant &>(obj)); + return true; + case inputReportReasonFake::ID: + func(static_cast<inputReportReasonFake &>(obj)); + return true; + case inputReportReasonIllegalDrugs::ID: + func(static_cast<inputReportReasonIllegalDrugs &>(obj)); + return true; + case inputReportReasonPersonalDetails::ID: + func(static_cast<inputReportReasonPersonalDetails &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(RichText &obj, const T &func) { + switch (obj.get_id()) { + case textEmpty::ID: + func(static_cast<textEmpty &>(obj)); + return true; + case textPlain::ID: + func(static_cast<textPlain &>(obj)); + return true; + case textBold::ID: + func(static_cast<textBold &>(obj)); + return true; + case textItalic::ID: + func(static_cast<textItalic &>(obj)); + return true; + case textUnderline::ID: + func(static_cast<textUnderline &>(obj)); + return true; + case textStrike::ID: + func(static_cast<textStrike &>(obj)); + return true; + case textFixed::ID: + func(static_cast<textFixed &>(obj)); + return true; + case textUrl::ID: + func(static_cast<textUrl &>(obj)); + return true; + case textEmail::ID: + func(static_cast<textEmail &>(obj)); + return true; + case textConcat::ID: + func(static_cast<textConcat &>(obj)); + return true; + case textSubscript::ID: + func(static_cast<textSubscript &>(obj)); + return true; + case textSuperscript::ID: + func(static_cast<textSuperscript &>(obj)); + return true; + case textMarked::ID: + func(static_cast<textMarked &>(obj)); + return true; + case textPhone::ID: + func(static_cast<textPhone &>(obj)); + return true; + case textImage::ID: + func(static_cast<textImage &>(obj)); + return true; + case textAnchor::ID: + func(static_cast<textAnchor &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SecureFile &obj, const T &func) { + switch (obj.get_id()) { + case secureFileEmpty::ID: + func(static_cast<secureFileEmpty &>(obj)); + return true; + case secureFile::ID: + func(static_cast<secureFile &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SecurePasswordKdfAlgo &obj, const T &func) { + switch (obj.get_id()) { + case securePasswordKdfAlgoUnknown::ID: + func(static_cast<securePasswordKdfAlgoUnknown &>(obj)); + return true; + case securePasswordKdfAlgoPBKDF2HMACSHA512iter100000::ID: + func(static_cast<securePasswordKdfAlgoPBKDF2HMACSHA512iter100000 &>(obj)); + return true; + case securePasswordKdfAlgoSHA512::ID: + func(static_cast<securePasswordKdfAlgoSHA512 &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SecurePlainData &obj, const T &func) { + switch (obj.get_id()) { + case securePlainPhone::ID: + func(static_cast<securePlainPhone &>(obj)); + return true; + case securePlainEmail::ID: + func(static_cast<securePlainEmail &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SecureRequiredType &obj, const T &func) { + switch (obj.get_id()) { + case secureRequiredType::ID: + func(static_cast<secureRequiredType &>(obj)); + return true; + case secureRequiredTypeOneOf::ID: + func(static_cast<secureRequiredTypeOneOf &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SecureValueError &obj, const T &func) { + switch (obj.get_id()) { + case secureValueErrorData::ID: + func(static_cast<secureValueErrorData &>(obj)); + return true; + case secureValueErrorFrontSide::ID: + func(static_cast<secureValueErrorFrontSide &>(obj)); + return true; + case secureValueErrorReverseSide::ID: + func(static_cast<secureValueErrorReverseSide &>(obj)); + return true; + case secureValueErrorSelfie::ID: + func(static_cast<secureValueErrorSelfie &>(obj)); + return true; + case secureValueErrorFile::ID: + func(static_cast<secureValueErrorFile &>(obj)); + return true; + case secureValueErrorFiles::ID: + func(static_cast<secureValueErrorFiles &>(obj)); + return true; + case secureValueError::ID: + func(static_cast<secureValueError &>(obj)); + return true; + case secureValueErrorTranslationFile::ID: + func(static_cast<secureValueErrorTranslationFile &>(obj)); + return true; + case secureValueErrorTranslationFiles::ID: + func(static_cast<secureValueErrorTranslationFiles &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SecureValueType &obj, const T &func) { + switch (obj.get_id()) { + case secureValueTypePersonalDetails::ID: + func(static_cast<secureValueTypePersonalDetails &>(obj)); + return true; + case secureValueTypePassport::ID: + func(static_cast<secureValueTypePassport &>(obj)); + return true; + case secureValueTypeDriverLicense::ID: + func(static_cast<secureValueTypeDriverLicense &>(obj)); + return true; + case secureValueTypeIdentityCard::ID: + func(static_cast<secureValueTypeIdentityCard &>(obj)); + return true; + case secureValueTypeInternalPassport::ID: + func(static_cast<secureValueTypeInternalPassport &>(obj)); + return true; + case secureValueTypeAddress::ID: + func(static_cast<secureValueTypeAddress &>(obj)); + return true; + case secureValueTypeUtilityBill::ID: + func(static_cast<secureValueTypeUtilityBill &>(obj)); + return true; + case secureValueTypeBankStatement::ID: + func(static_cast<secureValueTypeBankStatement &>(obj)); + return true; + case secureValueTypeRentalAgreement::ID: + func(static_cast<secureValueTypeRentalAgreement &>(obj)); + return true; + case secureValueTypePassportRegistration::ID: + func(static_cast<secureValueTypePassportRegistration &>(obj)); + return true; + case secureValueTypeTemporaryRegistration::ID: + func(static_cast<secureValueTypeTemporaryRegistration &>(obj)); + return true; + case secureValueTypePhone::ID: + func(static_cast<secureValueTypePhone &>(obj)); + return true; + case secureValueTypeEmail::ID: + func(static_cast<secureValueTypeEmail &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(SendMessageAction &obj, const T &func) { + switch (obj.get_id()) { + case sendMessageTypingAction::ID: + func(static_cast<sendMessageTypingAction &>(obj)); + return true; + case sendMessageCancelAction::ID: + func(static_cast<sendMessageCancelAction &>(obj)); + return true; + case sendMessageRecordVideoAction::ID: + func(static_cast<sendMessageRecordVideoAction &>(obj)); + return true; + case sendMessageUploadVideoAction::ID: + func(static_cast<sendMessageUploadVideoAction &>(obj)); + return true; + case sendMessageRecordAudioAction::ID: + func(static_cast<sendMessageRecordAudioAction &>(obj)); + return true; + case sendMessageUploadAudioAction::ID: + func(static_cast<sendMessageUploadAudioAction &>(obj)); + return true; + case sendMessageUploadPhotoAction::ID: + func(static_cast<sendMessageUploadPhotoAction &>(obj)); + return true; + case sendMessageUploadDocumentAction::ID: + func(static_cast<sendMessageUploadDocumentAction &>(obj)); + return true; + case sendMessageGeoLocationAction::ID: + func(static_cast<sendMessageGeoLocationAction &>(obj)); + return true; + case sendMessageChooseContactAction::ID: + func(static_cast<sendMessageChooseContactAction &>(obj)); + return true; + case sendMessageGamePlayAction::ID: + func(static_cast<sendMessageGamePlayAction &>(obj)); + return true; + case sendMessageRecordRoundAction::ID: + func(static_cast<sendMessageRecordRoundAction &>(obj)); + return true; + case sendMessageUploadRoundAction::ID: + func(static_cast<sendMessageUploadRoundAction &>(obj)); + return true; + case speakingInGroupCallAction::ID: + func(static_cast<speakingInGroupCallAction &>(obj)); + return true; + case sendMessageHistoryImportAction::ID: + func(static_cast<sendMessageHistoryImportAction &>(obj)); + return true; + case sendMessageChooseStickerAction::ID: + func(static_cast<sendMessageChooseStickerAction &>(obj)); + return true; + case sendMessageEmojiInteraction::ID: + func(static_cast<sendMessageEmojiInteraction &>(obj)); + return true; + case sendMessageEmojiInteractionSeen::ID: + func(static_cast<sendMessageEmojiInteractionSeen &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(StatsGraph &obj, const T &func) { + switch (obj.get_id()) { + case statsGraphAsync::ID: + func(static_cast<statsGraphAsync &>(obj)); + return true; + case statsGraphError::ID: + func(static_cast<statsGraphError &>(obj)); + return true; + case statsGraph::ID: + func(static_cast<statsGraph &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(StickerSetCovered &obj, const T &func) { + switch (obj.get_id()) { + case stickerSetCovered::ID: + func(static_cast<stickerSetCovered &>(obj)); + return true; + case stickerSetMultiCovered::ID: + func(static_cast<stickerSetMultiCovered &>(obj)); + return true; + case stickerSetFullCovered::ID: + func(static_cast<stickerSetFullCovered &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(TopPeerCategory &obj, const T &func) { + switch (obj.get_id()) { + case topPeerCategoryBotsPM::ID: + func(static_cast<topPeerCategoryBotsPM &>(obj)); + return true; + case topPeerCategoryBotsInline::ID: + func(static_cast<topPeerCategoryBotsInline &>(obj)); + return true; + case topPeerCategoryCorrespondents::ID: + func(static_cast<topPeerCategoryCorrespondents &>(obj)); + return true; + case topPeerCategoryGroups::ID: + func(static_cast<topPeerCategoryGroups &>(obj)); + return true; + case topPeerCategoryChannels::ID: + func(static_cast<topPeerCategoryChannels &>(obj)); + return true; + case topPeerCategoryPhoneCalls::ID: + func(static_cast<topPeerCategoryPhoneCalls &>(obj)); + return true; + case topPeerCategoryForwardUsers::ID: + func(static_cast<topPeerCategoryForwardUsers &>(obj)); + return true; + case topPeerCategoryForwardChats::ID: + func(static_cast<topPeerCategoryForwardChats &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Update &obj, const T &func) { + switch (obj.get_id()) { + case updateNewMessage::ID: + func(static_cast<updateNewMessage &>(obj)); + return true; + case updateMessageID::ID: + func(static_cast<updateMessageID &>(obj)); + return true; + case updateDeleteMessages::ID: + func(static_cast<updateDeleteMessages &>(obj)); + return true; + case updateUserTyping::ID: + func(static_cast<updateUserTyping &>(obj)); + return true; + case updateChatUserTyping::ID: + func(static_cast<updateChatUserTyping &>(obj)); + return true; + case updateChatParticipants::ID: + func(static_cast<updateChatParticipants &>(obj)); + return true; + case updateUserStatus::ID: + func(static_cast<updateUserStatus &>(obj)); + return true; + case updateUserName::ID: + func(static_cast<updateUserName &>(obj)); + return true; + case updateUserPhoto::ID: + func(static_cast<updateUserPhoto &>(obj)); + return true; + case updateNewEncryptedMessage::ID: + func(static_cast<updateNewEncryptedMessage &>(obj)); + return true; + case updateEncryptedChatTyping::ID: + func(static_cast<updateEncryptedChatTyping &>(obj)); + return true; + case updateEncryption::ID: + func(static_cast<updateEncryption &>(obj)); + return true; + case updateEncryptedMessagesRead::ID: + func(static_cast<updateEncryptedMessagesRead &>(obj)); + return true; + case updateChatParticipantAdd::ID: + func(static_cast<updateChatParticipantAdd &>(obj)); + return true; + case updateChatParticipantDelete::ID: + func(static_cast<updateChatParticipantDelete &>(obj)); + return true; + case updateDcOptions::ID: + func(static_cast<updateDcOptions &>(obj)); + return true; + case updateNotifySettings::ID: + func(static_cast<updateNotifySettings &>(obj)); + return true; + case updateServiceNotification::ID: + func(static_cast<updateServiceNotification &>(obj)); + return true; + case updatePrivacy::ID: + func(static_cast<updatePrivacy &>(obj)); + return true; + case updateUserPhone::ID: + func(static_cast<updateUserPhone &>(obj)); + return true; + case updateReadHistoryInbox::ID: + func(static_cast<updateReadHistoryInbox &>(obj)); + return true; + case updateReadHistoryOutbox::ID: + func(static_cast<updateReadHistoryOutbox &>(obj)); + return true; + case updateWebPage::ID: + func(static_cast<updateWebPage &>(obj)); + return true; + case updateReadMessagesContents::ID: + func(static_cast<updateReadMessagesContents &>(obj)); + return true; + case updateChannelTooLong::ID: + func(static_cast<updateChannelTooLong &>(obj)); + return true; + case updateChannel::ID: + func(static_cast<updateChannel &>(obj)); + return true; + case updateNewChannelMessage::ID: + func(static_cast<updateNewChannelMessage &>(obj)); + return true; + case updateReadChannelInbox::ID: + func(static_cast<updateReadChannelInbox &>(obj)); + return true; + case updateDeleteChannelMessages::ID: + func(static_cast<updateDeleteChannelMessages &>(obj)); + return true; + case updateChannelMessageViews::ID: + func(static_cast<updateChannelMessageViews &>(obj)); + return true; + case updateChatParticipantAdmin::ID: + func(static_cast<updateChatParticipantAdmin &>(obj)); + return true; + case updateNewStickerSet::ID: + func(static_cast<updateNewStickerSet &>(obj)); + return true; + case updateStickerSetsOrder::ID: + func(static_cast<updateStickerSetsOrder &>(obj)); + return true; + case updateStickerSets::ID: + func(static_cast<updateStickerSets &>(obj)); + return true; + case updateSavedGifs::ID: + func(static_cast<updateSavedGifs &>(obj)); + return true; + case updateBotInlineQuery::ID: + func(static_cast<updateBotInlineQuery &>(obj)); + return true; + case updateBotInlineSend::ID: + func(static_cast<updateBotInlineSend &>(obj)); + return true; + case updateEditChannelMessage::ID: + func(static_cast<updateEditChannelMessage &>(obj)); + return true; + case updateBotCallbackQuery::ID: + func(static_cast<updateBotCallbackQuery &>(obj)); + return true; + case updateEditMessage::ID: + func(static_cast<updateEditMessage &>(obj)); + return true; + case updateInlineBotCallbackQuery::ID: + func(static_cast<updateInlineBotCallbackQuery &>(obj)); + return true; + case updateReadChannelOutbox::ID: + func(static_cast<updateReadChannelOutbox &>(obj)); + return true; + case updateDraftMessage::ID: + func(static_cast<updateDraftMessage &>(obj)); + return true; + case updateReadFeaturedStickers::ID: + func(static_cast<updateReadFeaturedStickers &>(obj)); + return true; + case updateRecentStickers::ID: + func(static_cast<updateRecentStickers &>(obj)); + return true; + case updateConfig::ID: + func(static_cast<updateConfig &>(obj)); + return true; + case updatePtsChanged::ID: + func(static_cast<updatePtsChanged &>(obj)); + return true; + case updateChannelWebPage::ID: + func(static_cast<updateChannelWebPage &>(obj)); + return true; + case updateDialogPinned::ID: + func(static_cast<updateDialogPinned &>(obj)); + return true; + case updatePinnedDialogs::ID: + func(static_cast<updatePinnedDialogs &>(obj)); + return true; + case updateBotWebhookJSON::ID: + func(static_cast<updateBotWebhookJSON &>(obj)); + return true; + case updateBotWebhookJSONQuery::ID: + func(static_cast<updateBotWebhookJSONQuery &>(obj)); + return true; + case updateBotShippingQuery::ID: + func(static_cast<updateBotShippingQuery &>(obj)); + return true; + case updateBotPrecheckoutQuery::ID: + func(static_cast<updateBotPrecheckoutQuery &>(obj)); + return true; + case updatePhoneCall::ID: + func(static_cast<updatePhoneCall &>(obj)); + return true; + case updateLangPackTooLong::ID: + func(static_cast<updateLangPackTooLong &>(obj)); + return true; + case updateLangPack::ID: + func(static_cast<updateLangPack &>(obj)); + return true; + case updateFavedStickers::ID: + func(static_cast<updateFavedStickers &>(obj)); + return true; + case updateChannelReadMessagesContents::ID: + func(static_cast<updateChannelReadMessagesContents &>(obj)); + return true; + case updateContactsReset::ID: + func(static_cast<updateContactsReset &>(obj)); + return true; + case updateChannelAvailableMessages::ID: + func(static_cast<updateChannelAvailableMessages &>(obj)); + return true; + case updateDialogUnreadMark::ID: + func(static_cast<updateDialogUnreadMark &>(obj)); + return true; + case updateMessagePoll::ID: + func(static_cast<updateMessagePoll &>(obj)); + return true; + case updateChatDefaultBannedRights::ID: + func(static_cast<updateChatDefaultBannedRights &>(obj)); + return true; + case updateFolderPeers::ID: + func(static_cast<updateFolderPeers &>(obj)); + return true; + case updatePeerSettings::ID: + func(static_cast<updatePeerSettings &>(obj)); + return true; + case updatePeerLocated::ID: + func(static_cast<updatePeerLocated &>(obj)); + return true; + case updateNewScheduledMessage::ID: + func(static_cast<updateNewScheduledMessage &>(obj)); + return true; + case updateDeleteScheduledMessages::ID: + func(static_cast<updateDeleteScheduledMessages &>(obj)); + return true; + case updateTheme::ID: + func(static_cast<updateTheme &>(obj)); + return true; + case updateGeoLiveViewed::ID: + func(static_cast<updateGeoLiveViewed &>(obj)); + return true; + case updateLoginToken::ID: + func(static_cast<updateLoginToken &>(obj)); + return true; + case updateMessagePollVote::ID: + func(static_cast<updateMessagePollVote &>(obj)); + return true; + case updateDialogFilter::ID: + func(static_cast<updateDialogFilter &>(obj)); + return true; + case updateDialogFilterOrder::ID: + func(static_cast<updateDialogFilterOrder &>(obj)); + return true; + case updateDialogFilters::ID: + func(static_cast<updateDialogFilters &>(obj)); + return true; + case updatePhoneCallSignalingData::ID: + func(static_cast<updatePhoneCallSignalingData &>(obj)); + return true; + case updateChannelMessageForwards::ID: + func(static_cast<updateChannelMessageForwards &>(obj)); + return true; + case updateReadChannelDiscussionInbox::ID: + func(static_cast<updateReadChannelDiscussionInbox &>(obj)); + return true; + case updateReadChannelDiscussionOutbox::ID: + func(static_cast<updateReadChannelDiscussionOutbox &>(obj)); + return true; + case updatePeerBlocked::ID: + func(static_cast<updatePeerBlocked &>(obj)); + return true; + case updateChannelUserTyping::ID: + func(static_cast<updateChannelUserTyping &>(obj)); + return true; + case updatePinnedMessages::ID: + func(static_cast<updatePinnedMessages &>(obj)); + return true; + case updatePinnedChannelMessages::ID: + func(static_cast<updatePinnedChannelMessages &>(obj)); + return true; + case updateChat::ID: + func(static_cast<updateChat &>(obj)); + return true; + case updateGroupCallParticipants::ID: + func(static_cast<updateGroupCallParticipants &>(obj)); + return true; + case updateGroupCall::ID: + func(static_cast<updateGroupCall &>(obj)); + return true; + case updatePeerHistoryTTL::ID: + func(static_cast<updatePeerHistoryTTL &>(obj)); + return true; + case updateChatParticipant::ID: + func(static_cast<updateChatParticipant &>(obj)); + return true; + case updateChannelParticipant::ID: + func(static_cast<updateChannelParticipant &>(obj)); + return true; + case updateBotStopped::ID: + func(static_cast<updateBotStopped &>(obj)); + return true; + case updateGroupCallConnection::ID: + func(static_cast<updateGroupCallConnection &>(obj)); + return true; + case updateBotCommands::ID: + func(static_cast<updateBotCommands &>(obj)); + return true; + case updatePendingJoinRequests::ID: + func(static_cast<updatePendingJoinRequests &>(obj)); + return true; + case updateBotChatInviteRequester::ID: + func(static_cast<updateBotChatInviteRequester &>(obj)); + return true; + case updateMessageReactions::ID: + func(static_cast<updateMessageReactions &>(obj)); + return true; + case updateAttachMenuBots::ID: + func(static_cast<updateAttachMenuBots &>(obj)); + return true; + case updateWebViewResultSent::ID: + func(static_cast<updateWebViewResultSent &>(obj)); + return true; + case updateBotMenuButton::ID: + func(static_cast<updateBotMenuButton &>(obj)); + return true; + case updateSavedRingtones::ID: + func(static_cast<updateSavedRingtones &>(obj)); + return true; + case updateTranscribedAudio::ID: + func(static_cast<updateTranscribedAudio &>(obj)); + return true; + case updateReadFeaturedEmojiStickers::ID: + func(static_cast<updateReadFeaturedEmojiStickers &>(obj)); + return true; + case updateUserEmojiStatus::ID: + func(static_cast<updateUserEmojiStatus &>(obj)); + return true; + case updateRecentEmojiStatuses::ID: + func(static_cast<updateRecentEmojiStatuses &>(obj)); + return true; + case updateRecentReactions::ID: + func(static_cast<updateRecentReactions &>(obj)); + return true; + case updateMoveStickerSetToTop::ID: + func(static_cast<updateMoveStickerSetToTop &>(obj)); + return true; + case updateMessageExtendedMedia::ID: + func(static_cast<updateMessageExtendedMedia &>(obj)); + return true; + case updateChannelPinnedTopic::ID: + func(static_cast<updateChannelPinnedTopic &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(Updates &obj, const T &func) { + switch (obj.get_id()) { + case updatesTooLong::ID: + func(static_cast<updatesTooLong &>(obj)); + return true; + case updateShortMessage::ID: + func(static_cast<updateShortMessage &>(obj)); + return true; + case updateShortChatMessage::ID: + func(static_cast<updateShortChatMessage &>(obj)); + return true; + case updateShort::ID: + func(static_cast<updateShort &>(obj)); + return true; + case updatesCombined::ID: + func(static_cast<updatesCombined &>(obj)); + return true; + case updates::ID: + func(static_cast<updates &>(obj)); + return true; + case updateShortSentMessage::ID: + func(static_cast<updateShortSentMessage &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(UrlAuthResult &obj, const T &func) { + switch (obj.get_id()) { + case urlAuthResultRequest::ID: + func(static_cast<urlAuthResultRequest &>(obj)); + return true; + case urlAuthResultAccepted::ID: + func(static_cast<urlAuthResultAccepted &>(obj)); + return true; + case urlAuthResultDefault::ID: + func(static_cast<urlAuthResultDefault &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(User &obj, const T &func) { + switch (obj.get_id()) { + case userEmpty::ID: + func(static_cast<userEmpty &>(obj)); + return true; + case user::ID: + func(static_cast<user &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(UserProfilePhoto &obj, const T &func) { + switch (obj.get_id()) { + case userProfilePhotoEmpty::ID: + func(static_cast<userProfilePhotoEmpty &>(obj)); + return true; + case userProfilePhoto::ID: + func(static_cast<userProfilePhoto &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(UserStatus &obj, const T &func) { + switch (obj.get_id()) { + case userStatusEmpty::ID: + func(static_cast<userStatusEmpty &>(obj)); + return true; + case userStatusOnline::ID: + func(static_cast<userStatusOnline &>(obj)); + return true; + case userStatusOffline::ID: + func(static_cast<userStatusOffline &>(obj)); + return true; + case userStatusRecently::ID: + func(static_cast<userStatusRecently &>(obj)); + return true; + case userStatusLastWeek::ID: + func(static_cast<userStatusLastWeek &>(obj)); + return true; + case userStatusLastMonth::ID: + func(static_cast<userStatusLastMonth &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(WallPaper &obj, const T &func) { + switch (obj.get_id()) { + case wallPaper::ID: + func(static_cast<wallPaper &>(obj)); + return true; + case wallPaperNoFile::ID: + func(static_cast<wallPaperNoFile &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(WebDocument &obj, const T &func) { + switch (obj.get_id()) { + case webDocument::ID: + func(static_cast<webDocument &>(obj)); + return true; + case webDocumentNoProxy::ID: + func(static_cast<webDocumentNoProxy &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(WebPage &obj, const T &func) { + switch (obj.get_id()) { + case webPageEmpty::ID: + func(static_cast<webPageEmpty &>(obj)); + return true; + case webPagePending::ID: + func(static_cast<webPagePending &>(obj)); + return true; + case webPage::ID: + func(static_cast<webPage &>(obj)); + return true; + case webPageNotModified::ID: + func(static_cast<webPageNotModified &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(account_EmailVerified &obj, const T &func) { + switch (obj.get_id()) { + case account_emailVerified::ID: + func(static_cast<account_emailVerified &>(obj)); + return true; + case account_emailVerifiedLogin::ID: + func(static_cast<account_emailVerifiedLogin &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(account_EmojiStatuses &obj, const T &func) { + switch (obj.get_id()) { + case account_emojiStatusesNotModified::ID: + func(static_cast<account_emojiStatusesNotModified &>(obj)); + return true; + case account_emojiStatuses::ID: + func(static_cast<account_emojiStatuses &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(account_ResetPasswordResult &obj, const T &func) { + switch (obj.get_id()) { + case account_resetPasswordFailedWait::ID: + func(static_cast<account_resetPasswordFailedWait &>(obj)); + return true; + case account_resetPasswordRequestedWait::ID: + func(static_cast<account_resetPasswordRequestedWait &>(obj)); + return true; + case account_resetPasswordOk::ID: + func(static_cast<account_resetPasswordOk &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(account_SavedRingtone &obj, const T &func) { + switch (obj.get_id()) { + case account_savedRingtone::ID: + func(static_cast<account_savedRingtone &>(obj)); + return true; + case account_savedRingtoneConverted::ID: + func(static_cast<account_savedRingtoneConverted &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(account_SavedRingtones &obj, const T &func) { + switch (obj.get_id()) { + case account_savedRingtonesNotModified::ID: + func(static_cast<account_savedRingtonesNotModified &>(obj)); + return true; + case account_savedRingtones::ID: + func(static_cast<account_savedRingtones &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(account_Themes &obj, const T &func) { + switch (obj.get_id()) { + case account_themesNotModified::ID: + func(static_cast<account_themesNotModified &>(obj)); + return true; + case account_themes::ID: + func(static_cast<account_themes &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(account_WallPapers &obj, const T &func) { + switch (obj.get_id()) { + case account_wallPapersNotModified::ID: + func(static_cast<account_wallPapersNotModified &>(obj)); + return true; + case account_wallPapers::ID: + func(static_cast<account_wallPapers &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(auth_Authorization &obj, const T &func) { + switch (obj.get_id()) { + case auth_authorization::ID: + func(static_cast<auth_authorization &>(obj)); + return true; + case auth_authorizationSignUpRequired::ID: + func(static_cast<auth_authorizationSignUpRequired &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(auth_CodeType &obj, const T &func) { + switch (obj.get_id()) { + case auth_codeTypeSms::ID: + func(static_cast<auth_codeTypeSms &>(obj)); + return true; + case auth_codeTypeCall::ID: + func(static_cast<auth_codeTypeCall &>(obj)); + return true; + case auth_codeTypeFlashCall::ID: + func(static_cast<auth_codeTypeFlashCall &>(obj)); + return true; + case auth_codeTypeMissedCall::ID: + func(static_cast<auth_codeTypeMissedCall &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(auth_LoginToken &obj, const T &func) { + switch (obj.get_id()) { + case auth_loginToken::ID: + func(static_cast<auth_loginToken &>(obj)); + return true; + case auth_loginTokenMigrateTo::ID: + func(static_cast<auth_loginTokenMigrateTo &>(obj)); + return true; + case auth_loginTokenSuccess::ID: + func(static_cast<auth_loginTokenSuccess &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(auth_SentCodeType &obj, const T &func) { + switch (obj.get_id()) { + case auth_sentCodeTypeApp::ID: + func(static_cast<auth_sentCodeTypeApp &>(obj)); + return true; + case auth_sentCodeTypeSms::ID: + func(static_cast<auth_sentCodeTypeSms &>(obj)); + return true; + case auth_sentCodeTypeCall::ID: + func(static_cast<auth_sentCodeTypeCall &>(obj)); + return true; + case auth_sentCodeTypeFlashCall::ID: + func(static_cast<auth_sentCodeTypeFlashCall &>(obj)); + return true; + case auth_sentCodeTypeMissedCall::ID: + func(static_cast<auth_sentCodeTypeMissedCall &>(obj)); + return true; + case auth_sentCodeTypeEmailCode::ID: + func(static_cast<auth_sentCodeTypeEmailCode &>(obj)); + return true; + case auth_sentCodeTypeSetUpEmailRequired::ID: + func(static_cast<auth_sentCodeTypeSetUpEmailRequired &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(channels_ChannelParticipants &obj, const T &func) { + switch (obj.get_id()) { + case channels_channelParticipants::ID: + func(static_cast<channels_channelParticipants &>(obj)); + return true; + case channels_channelParticipantsNotModified::ID: + func(static_cast<channels_channelParticipantsNotModified &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(contacts_Blocked &obj, const T &func) { + switch (obj.get_id()) { + case contacts_blocked::ID: + func(static_cast<contacts_blocked &>(obj)); + return true; + case contacts_blockedSlice::ID: + func(static_cast<contacts_blockedSlice &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(contacts_Contacts &obj, const T &func) { + switch (obj.get_id()) { + case contacts_contactsNotModified::ID: + func(static_cast<contacts_contactsNotModified &>(obj)); + return true; + case contacts_contacts::ID: + func(static_cast<contacts_contacts &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(contacts_TopPeers &obj, const T &func) { + switch (obj.get_id()) { + case contacts_topPeersNotModified::ID: + func(static_cast<contacts_topPeersNotModified &>(obj)); + return true; + case contacts_topPeers::ID: + func(static_cast<contacts_topPeers &>(obj)); + return true; + case contacts_topPeersDisabled::ID: + func(static_cast<contacts_topPeersDisabled &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(help_AppUpdate &obj, const T &func) { + switch (obj.get_id()) { + case help_appUpdate::ID: + func(static_cast<help_appUpdate &>(obj)); + return true; + case help_noAppUpdate::ID: + func(static_cast<help_noAppUpdate &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(help_CountriesList &obj, const T &func) { + switch (obj.get_id()) { + case help_countriesListNotModified::ID: + func(static_cast<help_countriesListNotModified &>(obj)); + return true; + case help_countriesList::ID: + func(static_cast<help_countriesList &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(help_DeepLinkInfo &obj, const T &func) { + switch (obj.get_id()) { + case help_deepLinkInfoEmpty::ID: + func(static_cast<help_deepLinkInfoEmpty &>(obj)); + return true; + case help_deepLinkInfo::ID: + func(static_cast<help_deepLinkInfo &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(help_PassportConfig &obj, const T &func) { + switch (obj.get_id()) { + case help_passportConfigNotModified::ID: + func(static_cast<help_passportConfigNotModified &>(obj)); + return true; + case help_passportConfig::ID: + func(static_cast<help_passportConfig &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(help_PromoData &obj, const T &func) { + switch (obj.get_id()) { + case help_promoDataEmpty::ID: + func(static_cast<help_promoDataEmpty &>(obj)); + return true; + case help_promoData::ID: + func(static_cast<help_promoData &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(help_TermsOfServiceUpdate &obj, const T &func) { + switch (obj.get_id()) { + case help_termsOfServiceUpdateEmpty::ID: + func(static_cast<help_termsOfServiceUpdateEmpty &>(obj)); + return true; + case help_termsOfServiceUpdate::ID: + func(static_cast<help_termsOfServiceUpdate &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(help_UserInfo &obj, const T &func) { + switch (obj.get_id()) { + case help_userInfoEmpty::ID: + func(static_cast<help_userInfoEmpty &>(obj)); + return true; + case help_userInfo::ID: + func(static_cast<help_userInfo &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_AllStickers &obj, const T &func) { + switch (obj.get_id()) { + case messages_allStickersNotModified::ID: + func(static_cast<messages_allStickersNotModified &>(obj)); + return true; + case messages_allStickers::ID: + func(static_cast<messages_allStickers &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_AvailableReactions &obj, const T &func) { + switch (obj.get_id()) { + case messages_availableReactionsNotModified::ID: + func(static_cast<messages_availableReactionsNotModified &>(obj)); + return true; + case messages_availableReactions::ID: + func(static_cast<messages_availableReactions &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_Chats &obj, const T &func) { + switch (obj.get_id()) { + case messages_chats::ID: + func(static_cast<messages_chats &>(obj)); + return true; + case messages_chatsSlice::ID: + func(static_cast<messages_chatsSlice &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_DhConfig &obj, const T &func) { + switch (obj.get_id()) { + case messages_dhConfigNotModified::ID: + func(static_cast<messages_dhConfigNotModified &>(obj)); + return true; + case messages_dhConfig::ID: + func(static_cast<messages_dhConfig &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_Dialogs &obj, const T &func) { + switch (obj.get_id()) { + case messages_dialogs::ID: + func(static_cast<messages_dialogs &>(obj)); + return true; + case messages_dialogsSlice::ID: + func(static_cast<messages_dialogsSlice &>(obj)); + return true; + case messages_dialogsNotModified::ID: + func(static_cast<messages_dialogsNotModified &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_ExportedChatInvite &obj, const T &func) { + switch (obj.get_id()) { + case messages_exportedChatInvite::ID: + func(static_cast<messages_exportedChatInvite &>(obj)); + return true; + case messages_exportedChatInviteReplaced::ID: + func(static_cast<messages_exportedChatInviteReplaced &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_FavedStickers &obj, const T &func) { + switch (obj.get_id()) { + case messages_favedStickersNotModified::ID: + func(static_cast<messages_favedStickersNotModified &>(obj)); + return true; + case messages_favedStickers::ID: + func(static_cast<messages_favedStickers &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_FeaturedStickers &obj, const T &func) { + switch (obj.get_id()) { + case messages_featuredStickersNotModified::ID: + func(static_cast<messages_featuredStickersNotModified &>(obj)); + return true; + case messages_featuredStickers::ID: + func(static_cast<messages_featuredStickers &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_FoundStickerSets &obj, const T &func) { + switch (obj.get_id()) { + case messages_foundStickerSetsNotModified::ID: + func(static_cast<messages_foundStickerSetsNotModified &>(obj)); + return true; + case messages_foundStickerSets::ID: + func(static_cast<messages_foundStickerSets &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_Messages &obj, const T &func) { + switch (obj.get_id()) { + case messages_messages::ID: + func(static_cast<messages_messages &>(obj)); + return true; + case messages_messagesSlice::ID: + func(static_cast<messages_messagesSlice &>(obj)); + return true; + case messages_channelMessages::ID: + func(static_cast<messages_channelMessages &>(obj)); + return true; + case messages_messagesNotModified::ID: + func(static_cast<messages_messagesNotModified &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_Reactions &obj, const T &func) { + switch (obj.get_id()) { + case messages_reactionsNotModified::ID: + func(static_cast<messages_reactionsNotModified &>(obj)); + return true; + case messages_reactions::ID: + func(static_cast<messages_reactions &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_RecentStickers &obj, const T &func) { + switch (obj.get_id()) { + case messages_recentStickersNotModified::ID: + func(static_cast<messages_recentStickersNotModified &>(obj)); + return true; + case messages_recentStickers::ID: + func(static_cast<messages_recentStickers &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_SavedGifs &obj, const T &func) { + switch (obj.get_id()) { + case messages_savedGifsNotModified::ID: + func(static_cast<messages_savedGifsNotModified &>(obj)); + return true; + case messages_savedGifs::ID: + func(static_cast<messages_savedGifs &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_SentEncryptedMessage &obj, const T &func) { + switch (obj.get_id()) { + case messages_sentEncryptedMessage::ID: + func(static_cast<messages_sentEncryptedMessage &>(obj)); + return true; + case messages_sentEncryptedFile::ID: + func(static_cast<messages_sentEncryptedFile &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_SponsoredMessages &obj, const T &func) { + switch (obj.get_id()) { + case messages_sponsoredMessages::ID: + func(static_cast<messages_sponsoredMessages &>(obj)); + return true; + case messages_sponsoredMessagesEmpty::ID: + func(static_cast<messages_sponsoredMessagesEmpty &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_StickerSet &obj, const T &func) { + switch (obj.get_id()) { + case messages_stickerSet::ID: + func(static_cast<messages_stickerSet &>(obj)); + return true; + case messages_stickerSetNotModified::ID: + func(static_cast<messages_stickerSetNotModified &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_StickerSetInstallResult &obj, const T &func) { + switch (obj.get_id()) { + case messages_stickerSetInstallResultSuccess::ID: + func(static_cast<messages_stickerSetInstallResultSuccess &>(obj)); + return true; + case messages_stickerSetInstallResultArchive::ID: + func(static_cast<messages_stickerSetInstallResultArchive &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_Stickers &obj, const T &func) { + switch (obj.get_id()) { + case messages_stickersNotModified::ID: + func(static_cast<messages_stickersNotModified &>(obj)); + return true; + case messages_stickers::ID: + func(static_cast<messages_stickers &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(messages_TranslatedText &obj, const T &func) { + switch (obj.get_id()) { + case messages_translateNoResult::ID: + func(static_cast<messages_translateNoResult &>(obj)); + return true; + case messages_translateResultText::ID: + func(static_cast<messages_translateResultText &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(payments_PaymentResult &obj, const T &func) { + switch (obj.get_id()) { + case payments_paymentResult::ID: + func(static_cast<payments_paymentResult &>(obj)); + return true; + case payments_paymentVerificationNeeded::ID: + func(static_cast<payments_paymentVerificationNeeded &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(photos_Photos &obj, const T &func) { + switch (obj.get_id()) { + case photos_photos::ID: + func(static_cast<photos_photos &>(obj)); + return true; + case photos_photosSlice::ID: + func(static_cast<photos_photosSlice &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(storage_FileType &obj, const T &func) { + switch (obj.get_id()) { + case storage_fileUnknown::ID: + func(static_cast<storage_fileUnknown &>(obj)); + return true; + case storage_filePartial::ID: + func(static_cast<storage_filePartial &>(obj)); + return true; + case storage_fileJpeg::ID: + func(static_cast<storage_fileJpeg &>(obj)); + return true; + case storage_fileGif::ID: + func(static_cast<storage_fileGif &>(obj)); + return true; + case storage_filePng::ID: + func(static_cast<storage_filePng &>(obj)); + return true; + case storage_filePdf::ID: + func(static_cast<storage_filePdf &>(obj)); + return true; + case storage_fileMp3::ID: + func(static_cast<storage_fileMp3 &>(obj)); + return true; + case storage_fileMov::ID: + func(static_cast<storage_fileMov &>(obj)); + return true; + case storage_fileMp4::ID: + func(static_cast<storage_fileMp4 &>(obj)); + return true; + case storage_fileWebp::ID: + func(static_cast<storage_fileWebp &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(updates_ChannelDifference &obj, const T &func) { + switch (obj.get_id()) { + case updates_channelDifferenceEmpty::ID: + func(static_cast<updates_channelDifferenceEmpty &>(obj)); + return true; + case updates_channelDifferenceTooLong::ID: + func(static_cast<updates_channelDifferenceTooLong &>(obj)); + return true; + case updates_channelDifference::ID: + func(static_cast<updates_channelDifference &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(updates_Difference &obj, const T &func) { + switch (obj.get_id()) { + case updates_differenceEmpty::ID: + func(static_cast<updates_differenceEmpty &>(obj)); + return true; + case updates_difference::ID: + func(static_cast<updates_difference &>(obj)); + return true; + case updates_differenceSlice::ID: + func(static_cast<updates_differenceSlice &>(obj)); + return true; + case updates_differenceTooLong::ID: + func(static_cast<updates_differenceTooLong &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(upload_CdnFile &obj, const T &func) { + switch (obj.get_id()) { + case upload_cdnFileReuploadNeeded::ID: + func(static_cast<upload_cdnFileReuploadNeeded &>(obj)); + return true; + case upload_cdnFile::ID: + func(static_cast<upload_cdnFile &>(obj)); + return true; + default: + return false; + } +} + +/** + * Calls the specified function object with the given object downcasted to its most derived type. + * \param[in] obj Object to pass as an argument to the function object. + * \param[in] func Function object to which the object will be passed. + * \returns Whether function object call has happened. Should always return true for correct parameters. + */ +template <class T> +bool downcast_call(upload_File &obj, const T &func) { + switch (obj.get_id()) { + case upload_file::ID: + func(static_cast<upload_file &>(obj)); + return true; + case upload_fileCdnRedirect::ID: + func(static_cast<upload_fileCdnRedirect &>(obj)); + return true; + default: + return false; + } +} + +} // namespace telegram_api +} // namespace td diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/mtproto_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/mtproto_api.tlo Binary files differnew file mode 100644 index 0000000000..d68d7de32f --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/mtproto_api.tlo diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/secret_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/secret_api.tlo Binary files differnew file mode 100644 index 0000000000..9d35dd3ccd --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/secret_api.tlo diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/td_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/td_api.tlo Binary files differnew file mode 100644 index 0000000000..57862f5202 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/td_api.tlo diff --git a/protocols/Telegram/tdlib/td/td/generate/auto/tlo/telegram_api.tlo b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/telegram_api.tlo Binary files differnew file mode 100644 index 0000000000..6800869ca4 --- /dev/null +++ b/protocols/Telegram/tdlib/td/td/generate/auto/tlo/telegram_api.tlo diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.cpp b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.cpp new file mode 100644 index 0000000000..5b924aa371 --- /dev/null +++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.cpp @@ -0,0 +1,3057 @@ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: 'W:\\Test\\td\\vcpkg\\installed\\x64-windows\\tools\\gperf.exe' -m100 --output-file=auto/extension_to_mime_type.cpp auto/extension_to_mime_type.gperf */ +/* Computed positions: -k'1-4,6,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>." +#endif + +#line 12 "auto/extension_to_mime_type.gperf" +struct extension_and_mime_type { + const char *extension; + const char *mime_type; +}; +#include <string.h> +/* maximum key range = 3365, duplicates = 0 */ + +#ifndef GPERF_DOWNCASE +#define GPERF_DOWNCASE 1 +static unsigned char gperf_downcase[256] = + { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255 + }; +#endif + +#ifndef GPERF_CASE_STRCMP +#define GPERF_CASE_STRCMP 1 +static int +gperf_case_strcmp (register const char *s1, register const char *s2) +{ + for (;;) + { + unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; + unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; + if (c1 != 0 && c1 == c2) + continue; + return (int)c1 - (int)c2; + } +} +#endif + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +extension_hash (register const char *str, register size_t len) +{ + static const unsigned short asso_values[] = + { + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 5, 3376, 3376, 9, 21, + 226, 309, 314, 31, 31, 6, 6, 9, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 257, 522, 20, 36, 584, + 21, 570, 866, 174, 1292, 522, 94, 6, 381, 407, + 9, 574, 153, 5, 72, 213, 331, 32, 10, 499, + 75, 3376, 3376, 3376, 3376, 5, 3376, 257, 522, 20, + 36, 584, 21, 570, 866, 174, 1292, 522, 94, 6, + 381, 407, 9, 574, 153, 5, 72, 213, 331, 32, + 10, 499, 75, 999, 1528, 1515, 1457, 291, 11, 994, + 952, 35, 1229, 1226, 140, 37, 983, 198, 701, 775, + 149, 641, 1579, 6, 631, 3376, 3376, 3376, 3376, 3376, + 3376, 32, 10, 499, 75, 999, 1528, 1515, 1457, 291, + 11, 994, 952, 35, 1229, 1226, 140, 37, 983, 198, + 701, 775, 149, 641, 1579, 6, 631, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, + 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376, 3376 + }; + register unsigned int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + case 4: + hval += asso_values[(unsigned char)str[3]]; + /*FALLTHROUGH*/ + case 3: + hval += asso_values[(unsigned char)str[2]]; + /*FALLTHROUGH*/ + case 2: + hval += asso_values[(unsigned char)str[1]+54]; + /*FALLTHROUGH*/ + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +const struct extension_and_mime_type * +search_extension (register const char *str, register size_t len) +{ + enum + { + TOTAL_KEYWORDS = 993, + MIN_WORD_LENGTH = 1, + MAX_WORD_LENGTH = 11, + MIN_HASH_VALUE = 11, + MAX_HASH_VALUE = 3375 + }; + + static const struct extension_and_mime_type wordlist[] = + { + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 694 "auto/extension_to_mime_type.gperf" + {"s", "text/x-asm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 580 "auto/extension_to_mime_type.gperf" + {"p", "text/x-pascal"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 587 "auto/extension_to_mime_type.gperf" + {"p7s", "application/pkcs7-signature"}, + {"",nullptr}, +#line 585 "auto/extension_to_mime_type.gperf" + {"p7m", "application/pkcs7-mime"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 592 "auto/extension_to_mime_type.gperf" + {"pbm", "image/x-portable-bitmap"}, +#line 947 "auto/extension_to_mime_type.gperf" + {"xbm", "image/x-xbitmap"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 84 "auto/extension_to_mime_type.gperf" + {"c", "text/x-c"}, +#line 242 "auto/extension_to_mime_type.gperf" + {"f77", "text/x-fortran"}, +#line 240 "auto/extension_to_mime_type.gperf" + {"f", "text/x-fortran"}, +#line 245 "auto/extension_to_mime_type.gperf" + {"fbs", "image/vnd.fastbidsheet"}, +#line 97 "auto/extension_to_mime_type.gperf" + {"cb7", "application/x-cbr"}, + {"",nullptr}, {"",nullptr}, +#line 744 "auto/extension_to_mime_type.gperf" + {"sm", "application/vnd.stepmania.stepchart"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 974 "auto/extension_to_mime_type.gperf" + {"xm", "audio/xm"}, +#line 589 "auto/extension_to_mime_type.gperf" + {"pas", "text/x-pascal"}, +#line 901 "auto/extension_to_mime_type.gperf" + {"wbs", "application/vnd.criticaltools.wbs+xml"}, + {"",nullptr}, {"",nullptr}, +#line 584 "auto/extension_to_mime_type.gperf" + {"p7c", "application/pkcs7-mime"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 943 "auto/extension_to_mime_type.gperf" + {"xap", "application/x-silverlight-app"}, +#line 265 "auto/extension_to_mime_type.gperf" + {"fm", "application/vnd.framemaker"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 900 "auto/extension_to_mime_type.gperf" + {"wbmp", "image/vnd.wap.wbmp"}, + {"",nullptr}, {"",nullptr}, +#line 94 "auto/extension_to_mime_type.gperf" + {"cap", "application/vnd.tcpdump.pcap"}, + {"",nullptr}, +#line 912 "auto/extension_to_mime_type.gperf" + {"wm", "video/x-ms-wm"}, +#line 136 "auto/extension_to_mime_type.gperf" + {"cmp", "application/vnd.yellowriver-custom-menu"}, + {"",nullptr}, +#line 137 "auto/extension_to_mime_type.gperf" + {"cmx", "image/x-cmx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 696 "auto/extension_to_mime_type.gperf" + {"saf", "application/vnd.yamaha.smaf-audio"}, + {"",nullptr}, +#line 185 "auto/extension_to_mime_type.gperf" + {"dms", "application/octet-stream"}, +#line 745 "auto/extension_to_mime_type.gperf" + {"smf", "application/vnd.stardivision.math"}, +#line 469 "auto/extension_to_mime_type.gperf" + {"mmf", "application/vnd.smaf"}, +#line 899 "auto/extension_to_mime_type.gperf" + {"wax", "audio/x-ms-wax"}, +#line 433 "auto/extension_to_mime_type.gperf" + {"mads", "application/mads+xml"}, +#line 1003 "auto/extension_to_mime_type.gperf" + {"z7", "application/x-zmachine"}, +#line 921 "auto/extension_to_mime_type.gperf" + {"wmx", "video/x-ms-wmx"}, + {"",nullptr}, +#line 184 "auto/extension_to_mime_type.gperf" + {"dmp", "application/vnd.tcpdump.pcap"}, + {"",nullptr}, +#line 591 "auto/extension_to_mime_type.gperf" + {"pbd", "application/vnd.powerbuilder6"}, +#line 946 "auto/extension_to_mime_type.gperf" + {"xbd", "application/vnd.fujixerox.docuworks.binder"}, + {"",nullptr}, +#line 93 "auto/extension_to_mime_type.gperf" + {"caf", "audio/x-caf"}, +#line 133 "auto/extension_to_mime_type.gperf" + {"cmc", "application/vnd.cosmocaller"}, + {"",nullptr}, +#line 949 "auto/extension_to_mime_type.gperf" + {"xdm", "application/vnd.syncml.dm+xml"}, +#line 709 "auto/extension_to_mime_type.gperf" + {"sdp", "application/sdp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 950 "auto/extension_to_mime_type.gperf" + {"xdp", "application/vnd.adobe.xdp+xml"}, + {"",nullptr}, +#line 590 "auto/extension_to_mime_type.gperf" + {"paw", "application/vnd.pawaafile"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 915 "auto/extension_to_mime_type.gperf" + {"wmf", "application/x-msmetafile"}, +#line 160 "auto/extension_to_mime_type.gperf" + {"daf", "application/vnd.mobius.daf"}, + {"",nullptr}, {"",nullptr}, +#line 468 "auto/extension_to_mime_type.gperf" + {"mmd", "application/vnd.chipnuts.karaoke-mmd"}, + {"",nullptr}, +#line 113 "auto/extension_to_mime_type.gperf" + {"cdx", "chemical/x-cdx"}, + {"",nullptr}, +#line 951 "auto/extension_to_mime_type.gperf" + {"xdssc", "application/dssc+xml"}, + {"",nullptr}, {"",nullptr}, +#line 705 "auto/extension_to_mime_type.gperf" + {"sdc", "application/vnd.stardivision.calc"}, + {"",nullptr}, +#line 1009 "auto/extension_to_mime_type.gperf" + {"zmm", "application/vnd.handheld-entertainment+xml"}, + {"",nullptr}, {"",nullptr}, +#line 905 "auto/extension_to_mime_type.gperf" + {"wdp", "image/vnd.ms-photo"}, +#line 601 "auto/extension_to_mime_type.gperf" + {"pdf", "application/pdf"}, +#line 948 "auto/extension_to_mime_type.gperf" + {"xdf", "application/xcap-diff+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 134 "auto/extension_to_mime_type.gperf" + {"cmdf", "chemical/x-cmdf"}, + {"",nullptr}, +#line 897 "auto/extension_to_mime_type.gperf" + {"wad", "application/x-doom"}, +#line 106 "auto/extension_to_mime_type.gperf" + {"cdf", "application/x-netcdf"}, +#line 248 "auto/extension_to_mime_type.gperf" + {"fdf", "application/vnd.fdf"}, +#line 914 "auto/extension_to_mime_type.gperf" + {"wmd", "application/x-ms-wmd"}, + {"",nullptr}, +#line 928 "auto/extension_to_mime_type.gperf" + {"wqd", "application/vnd.wqd"}, +#line 796 "auto/extension_to_mime_type.gperf" + {"t", "text/troff"}, + {"",nullptr}, +#line 710 "auto/extension_to_mime_type.gperf" + {"sdw", "application/vnd.stardivision.writer"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 952 "auto/extension_to_mime_type.gperf" + {"xdw", "application/vnd.fujixerox.docuworks"}, + {"",nullptr}, {"",nullptr}, +#line 706 "auto/extension_to_mime_type.gperf" + {"sdd", "application/vnd.stardivision.impress"}, + {"",nullptr}, +#line 902 "auto/extension_to_mime_type.gperf" + {"wbxml", "application/vnd.wap.wbxml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 492 "auto/extension_to_mime_type.gperf" + {"mpm", "application/vnd.blueice.multipass"}, +#line 629 "auto/extension_to_mime_type.gperf" + {"pps", "application/vnd.ms-powerpoint"}, +#line 982 "auto/extension_to_mime_type.gperf" + {"xps", "application/vnd.ms-xpsdocument"}, +#line 628 "auto/extension_to_mime_type.gperf" + {"ppm", "image/x-portable-pixmap"}, +#line 980 "auto/extension_to_mime_type.gperf" + {"xpm", "image/x-xpixmap"}, +#line 757 "auto/extension_to_mime_type.gperf" + {"spp", "application/scvp-vp-response"}, +#line 494 "auto/extension_to_mime_type.gperf" + {"mpp", "application/vnd.ms-project"}, +#line 759 "auto/extension_to_mime_type.gperf" + {"spx", "audio/ogg"}, +#line 993 "auto/extension_to_mime_type.gperf" + {"xyz", "chemical/x-xyz"}, +#line 630 "auto/extension_to_mime_type.gperf" + {"ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12"}, + {"",nullptr}, {"",nullptr}, +#line 984 "auto/extension_to_mime_type.gperf" + {"xpx", "application/vnd.intercon.formnet"}, +#line 990 "auto/extension_to_mime_type.gperf" + {"xvm", "application/xv+xml"}, +#line 918 "auto/extension_to_mime_type.gperf" + {"wmls", "text/vnd.wap.wmlscript"}, + {"",nullptr}, +#line 100 "auto/extension_to_mime_type.gperf" + {"cbt", "application/x-cbr"}, +#line 631 "auto/extension_to_mime_type.gperf" + {"ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"}, +#line 403 "auto/extension_to_mime_type.gperf" + {"lbd", "application/vnd.llamagraphics.life-balance.desktop"}, + {"",nullptr}, +#line 142 "auto/extension_to_mime_type.gperf" + {"cpp", "text/x-c"}, + {"",nullptr}, +#line 101 "auto/extension_to_mime_type.gperf" + {"cbz", "application/x-cbr"}, +#line 268 "auto/extension_to_mime_type.gperf" + {"fpx", "image/vnd.fpx"}, +#line 927 "auto/extension_to_mime_type.gperf" + {"wps", "application/vnd.ms-works"}, +#line 168 "auto/extension_to_mime_type.gperf" + {"ddd", "application/vnd.fujixerox.ddd"}, +#line 193 "auto/extension_to_mime_type.gperf" + {"dp", "application/vnd.osgi.dp"}, +#line 753 "auto/extension_to_mime_type.gperf" + {"spc", "application/x-pkcs7-certificates"}, +#line 485 "auto/extension_to_mime_type.gperf" + {"mpc", "application/vnd.mophun.certificate"}, +#line 754 "auto/extension_to_mime_type.gperf" + {"spf", "application/vnd.yamaha.smaf-phrase"}, +#line 919 "auto/extension_to_mime_type.gperf" + {"wmlsc", "application/vnd.wap.wmlscriptc"}, + {"",nullptr}, {"",nullptr}, +#line 695 "auto/extension_to_mime_type.gperf" + {"s3m", "audio/s3m"}, + {"",nullptr}, +#line 677 "auto/extension_to_mime_type.gperf" + {"rm", "application/vnd.rn-realmedia"}, +#line 783 "auto/extension_to_mime_type.gperf" + {"svc", "application/vnd.dvb.service"}, +#line 664 "auto/extension_to_mime_type.gperf" + {"ras", "image/x-cmu-raster"}, +#line 96 "auto/extension_to_mime_type.gperf" + {"cat", "application/vnd.ms-pki.seccat"}, +#line 662 "auto/extension_to_mime_type.gperf" + {"ram", "audio/x-pn-realaudio"}, +#line 680 "auto/extension_to_mime_type.gperf" + {"rms", "application/vnd.jcp.javame.midlet-rms"}, +#line 1002 "auto/extension_to_mime_type.gperf" + {"z6", "application/x-zmachine"}, + {"",nullptr}, +#line 934 "auto/extension_to_mime_type.gperf" + {"wvx", "video/x-ms-wvx"}, +#line 917 "auto/extension_to_mime_type.gperf" + {"wmlc", "application/vnd.wap.wmlc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 679 "auto/extension_to_mime_type.gperf" + {"rmp", "audio/x-pn-realaudio-plugin"}, +#line 114 "auto/extension_to_mime_type.gperf" + {"cdxml", "application/vnd.chemdraw+xml"}, +#line 500 "auto/extension_to_mime_type.gperf" + {"ms", "text/troff"}, + {"",nullptr}, +#line 697 "auto/extension_to_mime_type.gperf" + {"sbml", "application/sbml+xml"}, +#line 639 "auto/extension_to_mime_type.gperf" + {"ps", "application/postscript"}, + {"",nullptr}, {"",nullptr}, +#line 983 "auto/extension_to_mime_type.gperf" + {"xpw", "application/vnd.intercon.formnet"}, + {"",nullptr}, {"",nullptr}, +#line 922 "auto/extension_to_mime_type.gperf" + {"wmz", "application/x-ms-wmz"}, + {"",nullptr}, +#line 352 "auto/extension_to_mime_type.gperf" + {"ims", "application/vnd.ms-ims"}, +#line 987 "auto/extension_to_mime_type.gperf" + {"xsm", "application/vnd.syncml+xml"}, +#line 627 "auto/extension_to_mime_type.gperf" + {"ppd", "application/vnd.cups-ppd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 784 "auto/extension_to_mime_type.gperf" + {"svd", "application/vnd.svd"}, +#line 351 "auto/extension_to_mime_type.gperf" + {"imp", "application/vnd.accpac.simply.imp"}, +#line 151 "auto/extension_to_mime_type.gperf" + {"css", "text/css"}, + {"",nullptr}, +#line 760 "auto/extension_to_mime_type.gperf" + {"sql", "application/x-sql"}, + {"",nullptr}, +#line 619 "auto/extension_to_mime_type.gperf" + {"pml", "application/vnd.ctc-posml"}, +#line 975 "auto/extension_to_mime_type.gperf" + {"xml", "application/xml"}, +#line 633 "auto/extension_to_mime_type.gperf" + {"pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12"}, + {"",nullptr}, +#line 150 "auto/extension_to_mime_type.gperf" + {"csp", "application/vnd.commonspace"}, +#line 942 "auto/extension_to_mime_type.gperf" + {"xaml", "application/xaml+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 634 "auto/extension_to_mime_type.gperf" + {"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, +#line 135 "auto/extension_to_mime_type.gperf" + {"cml", "chemical/x-cml"}, +#line 925 "auto/extension_to_mime_type.gperf" + {"wpd", "application/vnd.wordperfect"}, +#line 767 "auto/extension_to_mime_type.gperf" + {"ssf", "application/vnd.epson.ssf"}, +#line 504 "auto/extension_to_mime_type.gperf" + {"msf", "application/vnd.epson.msf"}, + {"",nullptr}, {"",nullptr}, +#line 642 "auto/extension_to_mime_type.gperf" + {"psf", "application/x-font-linux-psf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 916 "auto/extension_to_mime_type.gperf" + {"wml", "text/vnd.wap.wml"}, +#line 936 "auto/extension_to_mime_type.gperf" + {"x3d", "model/x3d+xml"}, +#line 1005 "auto/extension_to_mime_type.gperf" + {"zaz", "application/vnd.zzazz.deck+xml"}, + {"",nullptr}, +#line 270 "auto/extension_to_mime_type.gperf" + {"fsc", "application/vnd.fsc.weblaunch"}, +#line 988 "auto/extension_to_mime_type.gperf" + {"xspf", "application/xspf+xml"}, +#line 417 "auto/extension_to_mime_type.gperf" + {"lvp", "audio/vnd.lucent.voice"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 666 "auto/extension_to_mime_type.gperf" + {"rdf", "application/rdf+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 196 "auto/extension_to_mime_type.gperf" + {"dsc", "text/prs.lines.tag"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 896 "auto/extension_to_mime_type.gperf" + {"w3d", "application/x-director"}, +#line 641 "auto/extension_to_mime_type.gperf" + {"psd", "image/vnd.adobe.photoshop"}, +#line 197 "auto/extension_to_mime_type.gperf" + {"dssc", "application/dssc+der"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 495 "auto/extension_to_mime_type.gperf" + {"mpt", "application/vnd.ms-project"}, + {"",nullptr}, {"",nullptr}, +#line 632 "auto/extension_to_mime_type.gperf" + {"ppt", "application/vnd.ms-powerpoint"}, +#line 432 "auto/extension_to_mime_type.gperf" + {"ma", "application/mathematica"}, + {"",nullptr}, +#line 945 "auto/extension_to_mime_type.gperf" + {"xbap", "application/x-ms-xbap"}, +#line 109 "auto/extension_to_mime_type.gperf" + {"cdmic", "application/cdmi-container"}, + {"",nullptr}, +#line 26 "auto/extension_to_mime_type.gperf" + {"aas", "application/x-authorware-seg"}, +#line 749 "auto/extension_to_mime_type.gperf" + {"smzip", "application/vnd.stepmania.package"}, +#line 25 "auto/extension_to_mime_type.gperf" + {"aam", "application/x-authorware-map"}, + {"",nullptr}, {"",nullptr}, +#line 143 "auto/extension_to_mime_type.gperf" + {"cpt", "application/mac-compactpro"}, + {"",nullptr}, +#line 733 "auto/extension_to_mime_type.gperf" + {"sis", "application/vnd.symbian.install"}, + {"",nullptr}, {"",nullptr}, +#line 686 "auto/extension_to_mime_type.gperf" + {"rpss", "application/vnd.nokia.radio-presets"}, + {"",nullptr}, +#line 685 "auto/extension_to_mime_type.gperf" + {"rp9", "application/vnd.cloanto.rp9"}, + {"",nullptr}, +#line 110 "auto/extension_to_mime_type.gperf" + {"cdmid", "application/cdmi-domain"}, +#line 274 "auto/extension_to_mime_type.gperf" + {"fvt", "video/vnd.fvt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 586 "auto/extension_to_mime_type.gperf" + {"p7r", "application/x-pkcs7-certreqresp"}, +#line 734 "auto/extension_to_mime_type.gperf" + {"sisx", "application/vnd.symbian.install"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 501 "auto/extension_to_mime_type.gperf" + {"mscml", "application/mediaservercontrol+xml"}, + {"",nullptr}, {"",nullptr}, +#line 24 "auto/extension_to_mime_type.gperf" + {"aac", "audio/x-aac"}, + {"",nullptr}, +#line 27 "auto/extension_to_mime_type.gperf" + {"abw", "application/x-abiword"}, +#line 401 "auto/extension_to_mime_type.gperf" + {"lasxml", "application/vnd.las.las+xml"}, +#line 755 "auto/extension_to_mime_type.gperf" + {"spl", "application/x-futuresplash"}, + {"",nullptr}, {"",nullptr}, +#line 99 "auto/extension_to_mime_type.gperf" + {"cbr", "application/x-cbr"}, +#line 177 "auto/extension_to_mime_type.gperf" + {"dis", "application/vnd.mobius.dis"}, +#line 979 "auto/extension_to_mime_type.gperf" + {"xpl", "application/xproc+xml"}, +#line 459 "auto/extension_to_mime_type.gperf" + {"mif", "application/vnd.mif"}, +#line 611 "auto/extension_to_mime_type.gperf" + {"pic", "image/x-pict"}, +#line 364 "auto/extension_to_mime_type.gperf" + {"ivp", "application/vnd.immervision-ivp"}, +#line 825 "auto/extension_to_mime_type.gperf" + {"tsd", "application/timestamped-data"}, +#line 960 "auto/extension_to_mime_type.gperf" + {"xif", "image/vnd.xiff"}, +#line 437 "auto/extension_to_mime_type.gperf" + {"mar", "application/octet-stream"}, + {"",nullptr}, {"",nullptr}, +#line 470 "auto/extension_to_mime_type.gperf" + {"mmr", "image/vnd.fujixerox.edmics-mmr"}, +#line 944 "auto/extension_to_mime_type.gperf" + {"xar", "application/vnd.xara"}, + {"",nullptr}, +#line 33 "auto/extension_to_mime_type.gperf" + {"adp", "audio/adpcm"}, + {"",nullptr}, {"",nullptr}, +#line 122 "auto/extension_to_mime_type.gperf" + {"cif", "chemical/x-cif"}, +#line 991 "auto/extension_to_mime_type.gperf" + {"xvml", "application/xv+xml"}, +#line 689 "auto/extension_to_mime_type.gperf" + {"rs", "application/rls-services+xml"}, +#line 821 "auto/extension_to_mime_type.gperf" + {"tpt", "application/vnd.trid.tpt"}, + {"",nullptr}, +#line 95 "auto/extension_to_mime_type.gperf" + {"car", "application/vnd.curl.car"}, + {"",nullptr}, +#line 926 "auto/extension_to_mime_type.gperf" + {"wpl", "application/vnd.ms-wpl"}, +#line 691 "auto/extension_to_mime_type.gperf" + {"rss", "application/rss+xml"}, +#line 152 "auto/extension_to_mime_type.gperf" + {"cst", "application/x-director"}, +#line 271 "auto/extension_to_mime_type.gperf" + {"fst", "image/vnd.fst"}, + {"",nullptr}, {"",nullptr}, +#line 161 "auto/extension_to_mime_type.gperf" + {"dart", "application/vnd.dart"}, +#line 175 "auto/extension_to_mime_type.gperf" + {"dic", "text/x-c"}, +#line 729 "auto/extension_to_mime_type.gperf" + {"sid", "image/x-mrsid-image"}, +#line 456 "auto/extension_to_mime_type.gperf" + {"mid", "audio/midi"}, + {"",nullptr}, +#line 941 "auto/extension_to_mime_type.gperf" + {"x3dz", "model/x3d+xml"}, +#line 857 "auto/extension_to_mime_type.gperf" + {"uvs", "video/vnd.dece.sd"}, + {"",nullptr}, +#line 855 "auto/extension_to_mime_type.gperf" + {"uvm", "video/vnd.dece.mobile"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 667 "auto/extension_to_mime_type.gperf" + {"rdz", "application/vnd.data-vision.rdz"}, + {"",nullptr}, +#line 856 "auto/extension_to_mime_type.gperf" + {"uvp", "video/vnd.dece.pd"}, + {"",nullptr}, +#line 875 "auto/extension_to_mime_type.gperf" + {"uvx", "application/vnd.dece.unspecified"}, + {"",nullptr}, +#line 1006 "auto/extension_to_mime_type.gperf" + {"zip", "application/zip"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 746 "auto/extension_to_mime_type.gperf" + {"smi", "application/smil+xml"}, +#line 736 "auto/extension_to_mime_type.gperf" + {"sitx", "application/x-stuffitx"}, + {"",nullptr}, {"",nullptr}, +#line 507 "auto/extension_to_mime_type.gperf" + {"msl", "application/vnd.mobius.msl"}, + {"",nullptr}, +#line 19 "auto/extension_to_mime_type.gperf" + {"3ds", "image/x-3ds"}, +#line 588 "auto/extension_to_mime_type.gperf" + {"p8", "application/pkcs8"}, +#line 985 "auto/extension_to_mime_type.gperf" + {"xsl", "application/xml"}, + {"",nullptr}, +#line 768 "auto/extension_to_mime_type.gperf" + {"ssml", "application/ssml+xml"}, + {"",nullptr}, +#line 820 "auto/extension_to_mime_type.gperf" + {"tpl", "application/vnd.groove-tool-template"}, + {"",nullptr}, {"",nullptr}, +#line 747 "auto/extension_to_mime_type.gperf" + {"smil", "application/smil+xml"}, +#line 851 "auto/extension_to_mime_type.gperf" + {"uvf", "application/vnd.dece.data"}, +#line 816 "auto/extension_to_mime_type.gperf" + {"tif", "image/tiff"}, +#line 428 "auto/extension_to_mime_type.gperf" + {"m3u8", "application/vnd.apple.mpegurl"}, + {"",nullptr}, {"",nullptr}, +#line 522 "auto/extension_to_mime_type.gperf" + {"nbp", "application/vnd.wolfram.player"}, +#line 800 "auto/extension_to_mime_type.gperf" + {"tar", "application/x-tar"}, + {"",nullptr}, {"",nullptr}, +#line 149 "auto/extension_to_mime_type.gperf" + {"csml", "chemical/x-csml"}, + {"",nullptr}, +#line 478 "auto/extension_to_mime_type.gperf" + {"mp21", "application/mp21"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 626 "auto/extension_to_mime_type.gperf" + {"ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 690 "auto/extension_to_mime_type.gperf" + {"rsd", "application/rsd+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 817 "auto/extension_to_mime_type.gperf" + {"tiff", "image/tiff"}, +#line 765 "auto/extension_to_mime_type.gperf" + {"ssdl", "application/ssdl+xml"}, +#line 446 "auto/extension_to_mime_type.gperf" + {"mdi", "image/vnd.ms-modi"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 850 "auto/extension_to_mime_type.gperf" + {"uvd", "application/vnd.dece.data"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 735 "auto/extension_to_mime_type.gperf" + {"sit", "application/x-stuffit"}, +#line 661 "auto/extension_to_mime_type.gperf" + {"ra", "audio/x-pn-realaudio"}, + {"",nullptr}, +#line 687 "auto/extension_to_mime_type.gperf" + {"rpst", "application/vnd.nokia.radio-preset"}, +#line 441 "auto/extension_to_mime_type.gperf" + {"mbox", "application/mbox"}, + {"",nullptr}, +#line 243 "auto/extension_to_mime_type.gperf" + {"f90", "text/x-fortran"}, +#line 986 "auto/extension_to_mime_type.gperf" + {"xslt", "application/xslt+xml"}, + {"",nullptr}, +#line 540 "auto/extension_to_mime_type.gperf" + {"oas", "application/vnd.fujitsu.oasys"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 673 "auto/extension_to_mime_type.gperf" + {"ris", "application/x-research-info-systems"}, +#line 931 "auto/extension_to_mime_type.gperf" + {"wsdl", "application/wsdl+xml"}, +#line 981 "auto/extension_to_mime_type.gperf" + {"xpr", "application/vnd.is-xpr"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 1004 "auto/extension_to_mime_type.gperf" + {"z8", "application/x-zmachine"}, +#line 672 "auto/extension_to_mime_type.gperf" + {"rip", "audio/vnd.rip"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 52 "auto/extension_to_mime_type.gperf" + {"asm", "text/x-asm"}, + {"",nullptr}, +#line 461 "auto/extension_to_mime_type.gperf" + {"mj2", "video/mj2"}, + {"",nullptr}, +#line 483 "auto/extension_to_mime_type.gperf" + {"mp4s", "application/mp4"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 54 "auto/extension_to_mime_type.gperf" + {"asx", "video/x-ms-asf"}, + {"",nullptr}, +#line 178 "auto/extension_to_mime_type.gperf" + {"dist", "application/octet-stream"}, + {"",nullptr}, +#line 462 "auto/extension_to_mime_type.gperf" + {"mjp2", "video/mj2"}, + {"",nullptr}, +#line 179 "auto/extension_to_mime_type.gperf" + {"distz", "application/octet-stream"}, +#line 409 "auto/extension_to_mime_type.gperf" + {"list3820", "application/vnd.ibm.modcap"}, +#line 244 "auto/extension_to_mime_type.gperf" + {"fb2", "application/x-fictionbook+xml"}, +#line 731 "auto/extension_to_mime_type.gperf" + {"sil", "audio/silk"}, + {"",nullptr}, +#line 671 "auto/extension_to_mime_type.gperf" + {"rif", "application/reginfo+xml"}, + {"",nullptr}, {"",nullptr}, +#line 541 "auto/extension_to_mime_type.gperf" + {"obd", "application/x-msbinder"}, + {"",nullptr}, +#line 663 "auto/extension_to_mime_type.gperf" + {"rar", "application/x-rar-compressed"}, +#line 552 "auto/extension_to_mime_type.gperf" + {"ods", "application/vnd.oasis.opendocument.spreadsheet"}, + {"",nullptr}, +#line 550 "auto/extension_to_mime_type.gperf" + {"odm", "application/vnd.oasis.opendocument.text-master"}, +#line 50 "auto/extension_to_mime_type.gperf" + {"asc", "application/pgp-signature"}, +#line 410 "auto/extension_to_mime_type.gperf" + {"listafp", "application/vnd.ibm.modcap"}, +#line 51 "auto/extension_to_mime_type.gperf" + {"asf", "video/x-ms-asf"}, +#line 978 "auto/extension_to_mime_type.gperf" + {"xpi", "application/x-xpinstall"}, +#line 124 "auto/extension_to_mime_type.gperf" + {"cil", "application/vnd.ms-artgalry"}, +#line 551 "auto/extension_to_mime_type.gperf" + {"odp", "application/vnd.oasis.opendocument.presentation"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 858 "auto/extension_to_mime_type.gperf" + {"uvt", "application/vnd.dece.ttml+xml"}, +#line 350 "auto/extension_to_mime_type.gperf" + {"iif", "application/vnd.shana.informed.interchange"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 876 "auto/extension_to_mime_type.gperf" + {"uvz", "application/vnd.dece.zip"}, + {"",nullptr}, +#line 702 "auto/extension_to_mime_type.gperf" + {"scs", "application/scvp-cv-response"}, + {"",nullptr}, +#line 700 "auto/extension_to_mime_type.gperf" + {"scm", "application/vnd.lotus-screencam"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 358 "auto/extension_to_mime_type.gperf" + {"ipfix", "application/ipfix"}, +#line 545 "auto/extension_to_mime_type.gperf" + {"odc", "application/vnd.oasis.opendocument.chart"}, +#line 698 "auto/extension_to_mime_type.gperf" + {"sc", "application/vnd.ibm.secure-container"}, +#line 546 "auto/extension_to_mime_type.gperf" + {"odf", "application/vnd.oasis.opendocument.formula"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 599 "auto/extension_to_mime_type.gperf" + {"pcx", "image/x-pcx"}, +#line 648 "auto/extension_to_mime_type.gperf" + {"pya", "audio/vnd.ms-playready.media.pya"}, +#line 247 "auto/extension_to_mime_type.gperf" + {"fcs", "application/vnd.isac.fcs"}, +#line 782 "auto/extension_to_mime_type.gperf" + {"sv4crc", "application/x-sv4crc"}, + {"",nullptr}, +#line 204 "auto/extension_to_mime_type.gperf" + {"dvi", "application/x-dvi"}, +#line 108 "auto/extension_to_mime_type.gperf" + {"cdmia", "application/cdmi-capability"}, +#line 408 "auto/extension_to_mime_type.gperf" + {"list", "text/plain"}, +#line 678 "auto/extension_to_mime_type.gperf" + {"rmi", "audio/midi"}, +#line 439 "auto/extension_to_mime_type.gperf" + {"mb", "application/mathematica"}, +#line 102 "auto/extension_to_mime_type.gperf" + {"cc", "text/x-c"}, +#line 891 "auto/extension_to_mime_type.gperf" + {"vss", "application/vnd.visio"}, + {"",nullptr}, +#line 533 "auto/extension_to_mime_type.gperf" + {"npx", "image/vnd.net-fpx"}, + {"",nullptr}, +#line 903 "auto/extension_to_mime_type.gperf" + {"wcm", "application/vnd.ms-works"}, +#line 98 "auto/extension_to_mime_type.gperf" + {"cba", "application/x-cbr"}, + {"",nullptr}, {"",nullptr}, +#line 442 "auto/extension_to_mime_type.gperf" + {"mc1", "application/vnd.medcalcdata"}, + {"",nullptr}, {"",nullptr}, +#line 594 "auto/extension_to_mime_type.gperf" + {"pcf", "application/x-font-pcf"}, + {"",nullptr}, +#line 506 "auto/extension_to_mime_type.gperf" + {"msi", "application/x-msdownload"}, + {"",nullptr}, +#line 797 "auto/extension_to_mime_type.gperf" + {"t3", "application/x-t3vm-image"}, + {"",nullptr}, {"",nullptr}, +#line 999 "auto/extension_to_mime_type.gperf" + {"z3", "application/x-zmachine"}, + {"",nullptr}, {"",nullptr}, +#line 635 "auto/extension_to_mime_type.gperf" + {"pqa", "application/vnd.palm"}, + {"",nullptr}, {"",nullptr}, +#line 167 "auto/extension_to_mime_type.gperf" + {"dd2", "application/vnd.oma.dd2+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 890 "auto/extension_to_mime_type.gperf" + {"vsf", "application/vnd.vsf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 76 "auto/extension_to_mime_type.gperf" + {"bmp", "image/bmp"}, +#line 699 "auto/extension_to_mime_type.gperf" + {"scd", "application/x-msschedule"}, +#line 443 "auto/extension_to_mime_type.gperf" + {"mcd", "application/vnd.mcd"}, + {"",nullptr}, +#line 18 "auto/extension_to_mime_type.gperf" + {"3dml", "text/vnd.in3d.3dml"}, + {"",nullptr}, +#line 913 "auto/extension_to_mime_type.gperf" + {"wma", "audio/x-ms-wma"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 563 "auto/extension_to_mime_type.gperf" + {"opf", "application/oebps-package+xml"}, +#line 39 "auto/extension_to_mime_type.gperf" + {"aif", "audio/x-aiff"}, + {"",nullptr}, {"",nullptr}, +#line 893 "auto/extension_to_mime_type.gperf" + {"vsw", "application/vnd.visio"}, +#line 704 "auto/extension_to_mime_type.gperf" + {"sda", "application/vnd.stardivision.draw"}, + {"",nullptr}, {"",nullptr}, +#line 581 "auto/extension_to_mime_type.gperf" + {"p10", "application/pkcs10"}, +#line 477 "auto/extension_to_mime_type.gperf" + {"mp2", "audio/mpeg"}, + {"",nullptr}, {"",nullptr}, +#line 889 "auto/extension_to_mime_type.gperf" + {"vsd", "application/vnd.visio"}, + {"",nullptr}, {"",nullptr}, +#line 529 "auto/extension_to_mime_type.gperf" + {"nml", "application/vnd.enliven"}, + {"",nullptr}, +#line 427 "auto/extension_to_mime_type.gperf" + {"m3u", "audio/x-mpegurl"}, + {"",nullptr}, {"",nullptr}, +#line 69 "auto/extension_to_mime_type.gperf" + {"bdm", "application/vnd.syncml.dm+wbxml"}, +#line 40 "auto/extension_to_mime_type.gperf" + {"aifc", "audio/x-aiff"}, + {"",nullptr}, +#line 41 "auto/extension_to_mime_type.gperf" + {"aiff", "audio/x-aiff"}, + {"",nullptr}, +#line 282 "auto/extension_to_mime_type.gperf" + {"gam", "application/x-tads"}, +#line 708 "auto/extension_to_mime_type.gperf" + {"sdkm", "application/vnd.solent.sdkm+xml"}, + {"",nullptr}, +#line 299 "auto/extension_to_mime_type.gperf" + {"gqs", "application/vnd.grafeq"}, +#line 650 "auto/extension_to_mime_type.gperf" + {"qam", "application/vnd.epson.quickanime"}, +#line 534 "auto/extension_to_mime_type.gperf" + {"nsc", "application/x-conference"}, + {"",nullptr}, +#line 535 "auto/extension_to_mime_type.gperf" + {"nsf", "application/vnd.lotus-notes"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 294 "auto/extension_to_mime_type.gperf" + {"gmx", "application/vnd.gmx"}, +#line 553 "auto/extension_to_mime_type.gperf" + {"odt", "application/vnd.oasis.opendocument.text"}, +#line 1001 "auto/extension_to_mime_type.gperf" + {"z5", "application/x-zmachine"}, +#line 940 "auto/extension_to_mime_type.gperf" + {"x3dvz", "model/x3d+vrml"}, + {"",nullptr}, {"",nullptr}, +#line 104 "auto/extension_to_mime_type.gperf" + {"ccxml", "application/ccxml+xml"}, +#line 883 "auto/extension_to_mime_type.gperf" + {"vis", "application/vnd.visionary"}, +#line 176 "auto/extension_to_mime_type.gperf" + {"dir", "application/x-director"}, + {"",nullptr}, {"",nullptr}, +#line 935 "auto/extension_to_mime_type.gperf" + {"x32", "application/x-authorware-bin"}, + {"",nullptr}, {"",nullptr}, +#line 68 "auto/extension_to_mime_type.gperf" + {"bdf", "application/x-font-bdf"}, +#line 44 "auto/extension_to_mime_type.gperf" + {"ami", "application/vnd.amiga.ami"}, + {"",nullptr}, +#line 281 "auto/extension_to_mime_type.gperf" + {"gac", "application/vnd.groove-account"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 568 "auto/extension_to_mime_type.gperf" + {"osf", "application/vnd.yamaha.openscoreformat"}, +#line 547 "auto/extension_to_mime_type.gperf" + {"odft", "application/vnd.oasis.opendocument.formula-template"}, +#line 298 "auto/extension_to_mime_type.gperf" + {"gqf", "application/vnd.grafeq"}, + {"",nullptr}, {"",nullptr}, +#line 597 "auto/extension_to_mime_type.gperf" + {"pct", "image/x-pict"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 123 "auto/extension_to_mime_type.gperf" + {"cii", "application/vnd.anser-web-certificate-issue-initiation"}, + {"",nullptr}, +#line 218 "auto/extension_to_mime_type.gperf" + {"emf", "application/x-msmetafile"}, +#line 277 "auto/extension_to_mime_type.gperf" + {"fzs", "application/vnd.fuzzysheet"}, +#line 103 "auto/extension_to_mime_type.gperf" + {"cct", "application/x-director"}, + {"",nullptr}, +#line 997 "auto/extension_to_mime_type.gperf" + {"z1", "application/x-zmachine"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 1008 "auto/extension_to_mime_type.gperf" + {"zirz", "application/vnd.zul"}, +#line 213 "auto/extension_to_mime_type.gperf" + {"edm", "application/vnd.novadigm.edm"}, +#line 1007 "auto/extension_to_mime_type.gperf" + {"zir", "application/vnd.zul"}, +#line 892 "auto/extension_to_mime_type.gperf" + {"vst", "application/vnd.visio"}, + {"",nullptr}, +#line 707 "auto/extension_to_mime_type.gperf" + {"sdkd", "application/vnd.solent.sdkm+xml"}, + {"",nullptr}, +#line 649 "auto/extension_to_mime_type.gperf" + {"pyv", "video/vnd.ms-playready.media.pyv"}, + {"",nullptr}, +#line 214 "auto/extension_to_mime_type.gperf" + {"edx", "application/vnd.novadigm.edx"}, + {"",nullptr}, {"",nullptr}, +#line 457 "auto/extension_to_mime_type.gperf" + {"midi", "audio/midi"}, +#line 341 "auto/extension_to_mime_type.gperf" + {"ics", "text/calendar"}, +#line 111 "auto/extension_to_mime_type.gperf" + {"cdmio", "application/cdmi-object"}, +#line 339 "auto/extension_to_mime_type.gperf" + {"icm", "application/vnd.iccprofile"}, + {"",nullptr}, {"",nullptr}, +#line 788 "auto/extension_to_mime_type.gperf" + {"swf", "application/x-shockwave-flash"}, +#line 513 "auto/extension_to_mime_type.gperf" + {"mwf", "application/vnd.mfer"}, + {"",nullptr}, {"",nullptr}, +#line 43 "auto/extension_to_mime_type.gperf" + {"ait", "application/vnd.dvb.ait"}, +#line 394 "auto/extension_to_mime_type.gperf" + {"kpxx", "application/vnd.ds-keypoint"}, +#line 426 "auto/extension_to_mime_type.gperf" + {"m3a", "audio/mpeg"}, +#line 163 "auto/extension_to_mime_type.gperf" + {"davmount", "application/davmount+xml"}, +#line 595 "auto/extension_to_mime_type.gperf" + {"pcl", "application/vnd.hp-pcl"}, +#line 756 "auto/extension_to_mime_type.gperf" + {"spot", "text/vnd.in3d.spot"}, +#line 66 "auto/extension_to_mime_type.gperf" + {"bat", "application/x-msdownload"}, + {"",nullptr}, {"",nullptr}, +#line 246 "auto/extension_to_mime_type.gperf" + {"fcdt", "application/vnd.adobe.formscentral.fcdt"}, +#line 748 "auto/extension_to_mime_type.gperf" + {"smv", "video/x-smv"}, +#line 48 "auto/extension_to_mime_type.gperf" + {"apr", "application/vnd.lotus-approach"}, +#line 869 "auto/extension_to_mime_type.gperf" + {"uvvs", "video/vnd.dece.sd"}, + {"",nullptr}, +#line 867 "auto/extension_to_mime_type.gperf" + {"uvvm", "video/vnd.dece.mobile"}, +#line 388 "auto/extension_to_mime_type.gperf" + {"kmz", "application/vnd.google-earth.kmz"}, +#line 596 "auto/extension_to_mime_type.gperf" + {"pclxl", "application/vnd.hp-pclxl"}, +#line 180 "auto/extension_to_mime_type.gperf" + {"djv", "image/vnd.djvu"}, +#line 854 "auto/extension_to_mime_type.gperf" + {"uvi", "image/vnd.dece.graphic"}, +#line 22 "auto/extension_to_mime_type.gperf" + {"7z", "application/x-7z-compressed"}, +#line 868 "auto/extension_to_mime_type.gperf" + {"uvvp", "video/vnd.dece.pd"}, +#line 337 "auto/extension_to_mime_type.gperf" + {"icc", "application/vnd.iccprofile"}, +#line 873 "auto/extension_to_mime_type.gperf" + {"uvvx", "application/vnd.dece.unspecified"}, +#line 994 "auto/extension_to_mime_type.gperf" + {"xz", "application/x-xz"}, + {"",nullptr}, +#line 509 "auto/extension_to_mime_type.gperf" + {"mts", "model/vnd.mts"}, + {"",nullptr}, +#line 205 "auto/extension_to_mime_type.gperf" + {"dwf", "model/vnd.dwf"}, + {"",nullptr}, +#line 38 "auto/extension_to_mime_type.gperf" + {"ai", "application/postscript"}, + {"",nullptr}, +#line 992 "auto/extension_to_mime_type.gperf" + {"xwd", "image/x-xwindowdump"}, +#line 653 "auto/extension_to_mime_type.gperf" + {"qps", "application/vnd.publishare-delta-tree"}, +#line 156 "auto/extension_to_mime_type.gperf" + {"cww", "application/prs.cww"}, +#line 898 "auto/extension_to_mime_type.gperf" + {"wav", "audio/x-wav"}, + {"",nullptr}, {"",nullptr}, +#line 920 "auto/extension_to_mime_type.gperf" + {"wmv", "video/x-ms-wmv"}, +#line 297 "auto/extension_to_mime_type.gperf" + {"gpx", "application/gpx+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 224 "auto/extension_to_mime_type.gperf" + {"eps", "application/postscript"}, + {"",nullptr}, +#line 863 "auto/extension_to_mime_type.gperf" + {"uvvf", "application/vnd.dece.data"}, + {"",nullptr}, +#line 395 "auto/extension_to_mime_type.gperf" + {"ksp", "application/vnd.kde.kspread"}, + {"",nullptr}, {"",nullptr}, +#line 565 "auto/extension_to_mime_type.gperf" + {"oprc", "application/vnd.palm"}, +#line 564 "auto/extension_to_mime_type.gperf" + {"opml", "text/x-opml"}, + {"",nullptr}, {"",nullptr}, +#line 387 "auto/extension_to_mime_type.gperf" + {"kml", "application/vnd.google-earth.kml+xml"}, +#line 770 "auto/extension_to_mime_type.gperf" + {"stc", "application/vnd.sun.xml.calc.template"}, +#line 200 "auto/extension_to_mime_type.gperf" + {"dts", "audio/vnd.dts"}, +#line 772 "auto/extension_to_mime_type.gperf" + {"stf", "application/vnd.wt.stf"}, +#line 365 "auto/extension_to_mime_type.gperf" + {"ivu", "application/vnd.immervision-ivu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 418 "auto/extension_to_mime_type.gperf" + {"lwp", "application/vnd.lotus-wordpro"}, +#line 61 "auto/extension_to_mime_type.gperf" + {"avi", "video/x-msvideo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 802 "auto/extension_to_mime_type.gperf" + {"tcl", "application/x-tcl"}, +#line 831 "auto/extension_to_mime_type.gperf" + {"twds", "application/vnd.simtech-mindmapper"}, + {"",nullptr}, +#line 272 "auto/extension_to_mime_type.gperf" + {"ftc", "application/vnd.fluxtime.clip"}, +#line 688 "auto/extension_to_mime_type.gperf" + {"rq", "application/sparql-query"}, +#line 480 "auto/extension_to_mime_type.gperf" + {"mp3", "audio/mpeg"}, + {"",nullptr}, +#line 862 "auto/extension_to_mime_type.gperf" + {"uvvd", "application/vnd.dece.data"}, + {"",nullptr}, {"",nullptr}, +#line 221 "auto/extension_to_mime_type.gperf" + {"emz", "application/x-msmetafile"}, +#line 777 "auto/extension_to_mime_type.gperf" + {"stw", "application/vnd.sun.xml.writer.template"}, +#line 566 "auto/extension_to_mime_type.gperf" + {"opus", "audio/ogg"}, + {"",nullptr}, {"",nullptr}, +#line 481 "auto/extension_to_mime_type.gperf" + {"mp4", "video/mp4"}, +#line 28 "auto/extension_to_mime_type.gperf" + {"ac", "application/pkix-attr-cert"}, + {"",nullptr}, +#line 769 "auto/extension_to_mime_type.gperf" + {"st", "application/vnd.sailingtracker.track"}, +#line 771 "auto/extension_to_mime_type.gperf" + {"std", "application/vnd.sun.xml.draw.template"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 593 "auto/extension_to_mime_type.gperf" + {"pcap", "application/vnd.tcpdump.pcap"}, +#line 830 "auto/extension_to_mime_type.gperf" + {"twd", "application/vnd.simtech-mindmapper"}, +#line 226 "auto/extension_to_mime_type.gperf" + {"es", "application/ecmascript"}, +#line 527 "auto/extension_to_mime_type.gperf" + {"nitf", "application/vnd.nitf"}, +#line 859 "auto/extension_to_mime_type.gperf" + {"uvu", "video/vnd.uvvu.mp4"}, + {"",nullptr}, +#line 779 "auto/extension_to_mime_type.gperf" + {"sus", "application/vnd.sus-calendar"}, +#line 510 "auto/extension_to_mime_type.gperf" + {"mus", "application/vnd.musician"}, + {"",nullptr}, +#line 293 "auto/extension_to_mime_type.gperf" + {"gml", "application/gml+xml"}, +#line 402 "auto/extension_to_mime_type.gperf" + {"latex", "application/x-latex"}, + {"",nullptr}, +#line 29 "auto/extension_to_mime_type.gperf" + {"acc", "application/vnd.americandynamics.acc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 436 "auto/extension_to_mime_type.gperf" + {"man", "text/troff"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 780 "auto/extension_to_mime_type.gperf" + {"susp", "application/vnd.sus-calendar"}, +#line 181 "auto/extension_to_mime_type.gperf" + {"djvu", "image/vnd.djvu"}, +#line 393 "auto/extension_to_mime_type.gperf" + {"kpt", "application/vnd.kde.kpresenter"}, +#line 219 "auto/extension_to_mime_type.gperf" + {"eml", "message/rfc822"}, +#line 280 "auto/extension_to_mime_type.gperf" + {"g3w", "application/vnd.geospace"}, +#line 199 "auto/extension_to_mime_type.gperf" + {"dtd", "application/xml-dtd"}, +#line 305 "auto/extension_to_mime_type.gperf" + {"gsf", "application/x-font-ghostscript"}, + {"",nullptr}, {"",nullptr}, +#line 827 "auto/extension_to_mime_type.gperf" + {"ttc", "font/collection"}, + {"",nullptr}, +#line 828 "auto/extension_to_mime_type.gperf" + {"ttf", "font/ttf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 938 "auto/extension_to_mime_type.gperf" + {"x3dbz", "model/x3d+binary"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 229 "auto/extension_to_mime_type.gperf" + {"esf", "application/vnd.epson.esf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 549 "auto/extension_to_mime_type.gperf" + {"odi", "application/vnd.oasis.opendocument.image"}, + {"",nullptr}, {"",nullptr}, +#line 285 "auto/extension_to_mime_type.gperf" + {"gdl", "model/vnd.gdl"}, + {"",nullptr}, {"",nullptr}, +#line 202 "auto/extension_to_mime_type.gperf" + {"dump", "application/octet-stream"}, +#line 416 "auto/extension_to_mime_type.gperf" + {"ltf", "application/vnd.frogans.ltf"}, +#line 870 "auto/extension_to_mime_type.gperf" + {"uvvt", "application/vnd.dece.ttml+xml"}, +#line 835 "auto/extension_to_mime_type.gperf" + {"u32", "application/x-authorware-bin"}, +#line 881 "auto/extension_to_mime_type.gperf" + {"vcs", "text/x-vcalendar"}, +#line 165 "auto/extension_to_mime_type.gperf" + {"dcr", "application/x-director"}, + {"",nullptr}, {"",nullptr}, +#line 874 "auto/extension_to_mime_type.gperf" + {"uvvz", "application/vnd.dece.zip"}, + {"",nullptr}, {"",nullptr}, +#line 801 "auto/extension_to_mime_type.gperf" + {"tcap", "application/vnd.3gpp2.tcap"}, + {"",nullptr}, {"",nullptr}, +#line 882 "auto/extension_to_mime_type.gperf" + {"vcx", "application/vnd.vcx"}, +#line 112 "auto/extension_to_mime_type.gperf" + {"cdmiq", "application/cdmi-queue"}, + {"",nullptr}, +#line 643 "auto/extension_to_mime_type.gperf" + {"pskcxml", "application/pskc+xml"}, +#line 42 "auto/extension_to_mime_type.gperf" + {"air", "application/vnd.adobe.air-application-installer-package+zip"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 383 "auto/extension_to_mime_type.gperf" + {"kar", "audio/midi"}, + {"",nullptr}, {"",nullptr}, +#line 520 "auto/extension_to_mime_type.gperf" + {"n3", "text/n3"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 879 "auto/extension_to_mime_type.gperf" + {"vcf", "text/x-vcard"}, +#line 292 "auto/extension_to_mime_type.gperf" + {"gim", "application/vnd.groove-identity-message"}, +#line 693 "auto/extension_to_mime_type.gperf" + {"rtx", "text/richtext"}, +#line 786 "auto/extension_to_mime_type.gperf" + {"svgz", "image/svg+xml"}, +#line 849 "auto/extension_to_mime_type.gperf" + {"uva", "audio/vnd.dece.audio"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 153 "auto/extension_to_mime_type.gperf" + {"csv", "text/csv"}, + {"",nullptr}, {"",nullptr}, +#line 939 "auto/extension_to_mime_type.gperf" + {"x3dv", "model/x3d+vrml"}, + {"",nullptr}, {"",nullptr}, +#line 283 "auto/extension_to_mime_type.gperf" + {"gbr", "application/rpki-ghostbusters"}, +#line 479 "auto/extension_to_mime_type.gperf" + {"mp2a", "audio/mpeg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 538 "auto/extension_to_mime_type.gperf" + {"oa2", "application/vnd.fujitsu.oasys2"}, + {"",nullptr}, +#line 363 "auto/extension_to_mime_type.gperf" + {"itp", "application/vnd.shana.informed.formtemplate"}, +#line 775 "auto/extension_to_mime_type.gperf" + {"stl", "application/vnd.ms-pki.stl"}, +#line 846 "auto/extension_to_mime_type.gperf" + {"ustar", "application/x-ustar"}, +#line 692 "auto/extension_to_mime_type.gperf" + {"rtf", "application/rtf"}, + {"",nullptr}, +#line 64 "auto/extension_to_mime_type.gperf" + {"azs", "application/vnd.airzip.filesecure.azs"}, +#line 523 "auto/extension_to_mime_type.gperf" + {"nc", "application/x-netcdf"}, +#line 524 "auto/extension_to_mime_type.gperf" + {"ncx", "application/x-dtbncx+xml"}, + {"",nullptr}, +#line 878 "auto/extension_to_mime_type.gperf" + {"vcd", "application/x-cdlink"}, +#line 291 "auto/extension_to_mime_type.gperf" + {"gif", "image/gif"}, + {"",nullptr}, +#line 75 "auto/extension_to_mime_type.gperf" + {"bmi", "application/vnd.bmi"}, + {"",nullptr}, +#line 558 "auto/extension_to_mime_type.gperf" + {"omdoc", "application/omdoc+xml"}, +#line 493 "auto/extension_to_mime_type.gperf" + {"mpn", "application/vnd.mophun.application"}, +#line 47 "auto/extension_to_mime_type.gperf" + {"application", "application/x-ms-application"}, + {"",nullptr}, +#line 85 "auto/extension_to_mime_type.gperf" + {"c11amc", "application/vnd.cluetrust.cartomobile-config"}, +#line 521 "auto/extension_to_mime_type.gperf" + {"nb", "application/mathematica"}, + {"",nullptr}, +#line 423 "auto/extension_to_mime_type.gperf" + {"m21", "application/mp21"}, +#line 798 "auto/extension_to_mime_type.gperf" + {"taglet", "application/vnd.mynfc"}, + {"",nullptr}, {"",nullptr}, +#line 799 "auto/extension_to_mime_type.gperf" + {"tao", "application/vnd.tao.intent-module-archive"}, + {"",nullptr}, {"",nullptr}, +#line 818 "auto/extension_to_mime_type.gperf" + {"tmo", "application/vnd.tmobile-livetv"}, + {"",nullptr}, +#line 329 "auto/extension_to_mime_type.gperf" + {"hqx", "application/mac-binhex40"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 62 "auto/extension_to_mime_type.gperf" + {"aw", "application/applixware"}, +#line 63 "auto/extension_to_mime_type.gperf" + {"azf", "application/vnd.airzip.filesecure.azf"}, + {"",nullptr}, +#line 826 "auto/extension_to_mime_type.gperf" + {"tsv", "text/tab-separated-values"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 216 "auto/extension_to_mime_type.gperf" + {"ei6", "application/vnd.pg.osasli"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 65 "auto/extension_to_mime_type.gperf" + {"azw", "application/vnd.amazon.ebook"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 644 "auto/extension_to_mime_type.gperf" + {"ptid", "application/vnd.pvi.ptid1"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 829 "auto/extension_to_mime_type.gperf" + {"ttl", "text/turtle"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 703 "auto/extension_to_mime_type.gperf" + {"scurl", "text/vnd.curl.scurl"}, +#line 444 "auto/extension_to_mime_type.gperf" + {"mcurl", "text/vnd.curl.mcurl"}, +#line 392 "auto/extension_to_mime_type.gperf" + {"kpr", "application/vnd.kde.kpresenter"}, + {"",nullptr}, +#line 598 "auto/extension_to_mime_type.gperf" + {"pcurl", "application/vnd.curl.pcurl"}, +#line 618 "auto/extension_to_mime_type.gperf" + {"pls", "application/pls+xml"}, +#line 966 "auto/extension_to_mime_type.gperf" + {"xls", "application/vnd.ms-excel"}, +#line 989 "auto/extension_to_mime_type.gperf" + {"xul", "application/vnd.mozilla.xul+xml"}, +#line 965 "auto/extension_to_mime_type.gperf" + {"xlm", "application/vnd.ms-excel"}, +#line 482 "auto/extension_to_mime_type.gperf" + {"mp4a", "audio/mp4"}, +#line 467 "auto/extension_to_mime_type.gperf" + {"mlp", "application/vnd.dolby.mlp"}, + {"",nullptr}, +#line 59 "auto/extension_to_mime_type.gperf" + {"atx", "application/vnd.antix.game-component"}, + {"",nullptr}, +#line 968 "auto/extension_to_mime_type.gperf" + {"xlsm", "application/vnd.ms-excel.sheet.macroenabled.12"}, + {"",nullptr}, {"",nullptr}, +#line 319 "auto/extension_to_mime_type.gperf" + {"hdf", "application/x-hdf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 969 "auto/extension_to_mime_type.gperf" + {"xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, + {"",nullptr}, +#line 132 "auto/extension_to_mime_type.gperf" + {"clp", "application/x-msclip"}, +#line 162 "auto/extension_to_mime_type.gperf" + {"dataless", "application/vnd.fdsn.seed"}, + {"",nullptr}, +#line 263 "auto/extension_to_mime_type.gperf" + {"flx", "text/vnd.fmi.flexstor"}, +#line 789 "auto/extension_to_mime_type.gperf" + {"swi", "application/vnd.aristanetworks.swi"}, + {"",nullptr}, +#line 543 "auto/extension_to_mime_type.gperf" + {"oda", "application/oda"}, +#line 166 "auto/extension_to_mime_type.gperf" + {"dcurl", "text/vnd.curl.dcurl"}, +#line 55 "auto/extension_to_mime_type.gperf" + {"atc", "application/vnd.acucorp"}, + {"",nullptr}, {"",nullptr}, +#line 616 "auto/extension_to_mime_type.gperf" + {"plc", "application/vnd.mobius.plc"}, +#line 963 "auto/extension_to_mime_type.gperf" + {"xlc", "application/vnd.ms-excel"}, +#line 617 "auto/extension_to_mime_type.gperf" + {"plf", "application/vnd.pocketlearn"}, +#line 964 "auto/extension_to_mime_type.gperf" + {"xlf", "application/x-xliff+xml"}, + {"",nullptr}, +#line 741 "auto/extension_to_mime_type.gperf" + {"sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12"}, +#line 154 "auto/extension_to_mime_type.gperf" + {"cu", "application/cu-seeme"}, +#line 764 "auto/extension_to_mime_type.gperf" + {"srx", "application/sparql-results+xml"}, + {"",nullptr}, +#line 465 "auto/extension_to_mime_type.gperf" + {"mks", "video/x-matroska"}, +#line 738 "auto/extension_to_mime_type.gperf" + {"skm", "application/vnd.koan"}, +#line 776 "auto/extension_to_mime_type.gperf" + {"str", "application/vnd.pg.format"}, + {"",nullptr}, +#line 742 "auto/extension_to_mime_type.gperf" + {"sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"}, + {"",nullptr}, +#line 328 "auto/extension_to_mime_type.gperf" + {"hps", "application/vnd.hp-hps"}, +#line 739 "auto/extension_to_mime_type.gperf" + {"skp", "application/vnd.koan"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 86 "auto/extension_to_mime_type.gperf" + {"c11amz", "application/vnd.cluetrust.cartomobile-config-pkg"}, + {"",nullptr}, {"",nullptr}, +#line 860 "auto/extension_to_mime_type.gperf" + {"uvv", "video/vnd.dece.video"}, +#line 335 "auto/extension_to_mime_type.gperf" + {"hvs", "application/vnd.yamaha.hv-script"}, +#line 973 "auto/extension_to_mime_type.gperf" + {"xlw", "application/vnd.ms-excel"}, + {"",nullptr}, +#line 761 "auto/extension_to_mime_type.gperf" + {"src", "application/x-wais-source"}, +#line 498 "auto/extension_to_mime_type.gperf" + {"mrc", "application/marc"}, +#line 499 "auto/extension_to_mime_type.gperf" + {"mrcx", "application/marcxml+xml"}, +#line 582 "auto/extension_to_mime_type.gperf" + {"p12", "application/x-pkcs12"}, +#line 636 "auto/extension_to_mime_type.gperf" + {"prc", "application/x-mobipocket-ebook"}, +#line 334 "auto/extension_to_mime_type.gperf" + {"hvp", "application/vnd.yamaha.hv-voice"}, +#line 638 "auto/extension_to_mime_type.gperf" + {"prf", "application/pics-rules"}, +#line 46 "auto/extension_to_mime_type.gperf" + {"appcache", "text/cache-manifest"}, +#line 911 "auto/extension_to_mime_type.gperf" + {"wks", "application/vnd.ms-works"}, +#line 262 "auto/extension_to_mime_type.gperf" + {"flw", "application/vnd.kde.kivio"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 497 "auto/extension_to_mime_type.gperf" + {"mqy", "application/vnd.mobius.mqy"}, +#line 866 "auto/extension_to_mime_type.gperf" + {"uvvi", "image/vnd.dece.graphic"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 971 "auto/extension_to_mime_type.gperf" + {"xltm", "application/vnd.ms-excel.template.macroenabled.12"}, + {"",nullptr}, +#line 309 "auto/extension_to_mime_type.gperf" + {"gv", "text/vnd.graphviz"}, + {"",nullptr}, {"",nullptr}, +#line 279 "auto/extension_to_mime_type.gperf" + {"g3", "image/g3fax"}, +#line 715 "auto/extension_to_mime_type.gperf" + {"semf", "application/vnd.semf"}, +#line 773 "auto/extension_to_mime_type.gperf" + {"sti", "application/vnd.sun.xml.impress.template"}, +#line 972 "auto/extension_to_mime_type.gperf" + {"xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, + {"",nullptr}, +#line 539 "auto/extension_to_mime_type.gperf" + {"oa3", "application/vnd.fujitsu.oasys3"}, + {"",nullptr}, +#line 583 "auto/extension_to_mime_type.gperf" + {"p7b", "application/x-pkcs7-certificates"}, +#line 440 "auto/extension_to_mime_type.gperf" + {"mbk", "application/vnd.mobius.mbk"}, + {"",nullptr}, {"",nullptr}, +#line 32 "auto/extension_to_mime_type.gperf" + {"acutc", "application/vnd.acucorp"}, +#line 847 "auto/extension_to_mime_type.gperf" + {"utz", "application/vnd.uiq.theme"}, + {"",nullptr}, {"",nullptr}, +#line 824 "auto/extension_to_mime_type.gperf" + {"trm", "application/x-msterminal"}, + {"",nullptr}, +#line 511 "auto/extension_to_mime_type.gperf" + {"musicxml", "application/vnd.recordare.musicxml+xml"}, +#line 273 "auto/extension_to_mime_type.gperf" + {"fti", "application/vnd.anser-web-funds-transfer-initiation"}, +#line 737 "auto/extension_to_mime_type.gperf" + {"skd", "application/vnd.koan"}, + {"",nullptr}, +#line 781 "auto/extension_to_mime_type.gperf" + {"sv4cpio", "application/x-sv4cpio"}, + {"",nullptr}, +#line 144 "auto/extension_to_mime_type.gperf" + {"crd", "application/x-mscardfile"}, + {"",nullptr}, +#line 170 "auto/extension_to_mime_type.gperf" + {"def", "text/plain"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 714 "auto/extension_to_mime_type.gperf" + {"semd", "application/vnd.semd"}, + {"",nullptr}, {"",nullptr}, +#line 317 "auto/extension_to_mime_type.gperf" + {"hal", "application/vnd.hal+xml"}, +#line 333 "auto/extension_to_mime_type.gperf" + {"hvd", "application/vnd.yamaha.hv-dic"}, +#line 451 "auto/extension_to_mime_type.gperf" + {"mets", "application/mets+xml"}, +#line 415 "auto/extension_to_mime_type.gperf" + {"lrm", "application/vnd.ms-lrm"}, +#line 164 "auto/extension_to_mime_type.gperf" + {"dbk", "application/docbook+xml"}, +#line 806 "auto/extension_to_mime_type.gperf" + {"tex", "application/x-tex"}, + {"",nullptr}, +#line 115 "auto/extension_to_mime_type.gperf" + {"cdy", "application/vnd.cinderella"}, + {"",nullptr}, {"",nullptr}, +#line 92 "auto/extension_to_mime_type.gperf" + {"cab", "application/vnd.ms-cab-compressed"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 743 "auto/extension_to_mime_type.gperf" + {"slt", "application/vnd.epson.salt"}, + {"",nullptr}, +#line 405 "auto/extension_to_mime_type.gperf" + {"les", "application/vnd.hhe.lesson-player"}, + {"",nullptr}, {"",nullptr}, +#line 970 "auto/extension_to_mime_type.gperf" + {"xlt", "application/vnd.ms-excel"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 576 "auto/extension_to_mime_type.gperf" + {"ots", "application/vnd.oasis.opendocument.spreadsheet-template"}, +#line 414 "auto/extension_to_mime_type.gperf" + {"lrf", "application/octet-stream"}, +#line 871 "auto/extension_to_mime_type.gperf" + {"uvvu", "video/vnd.uvvu.mp4"}, + {"",nullptr}, {"",nullptr}, +#line 484 "auto/extension_to_mime_type.gperf" + {"mp4v", "video/mp4"}, +#line 536 "auto/extension_to_mime_type.gperf" + {"ntf", "application/vnd.nitf"}, +#line 445 "auto/extension_to_mime_type.gperf" + {"mdb", "application/x-msaccess"}, +#line 575 "auto/extension_to_mime_type.gperf" + {"otp", "application/vnd.oasis.opendocument.presentation-template"}, + {"",nullptr}, +#line 600 "auto/extension_to_mime_type.gperf" + {"pdb", "application/vnd.palm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 762 "auto/extension_to_mime_type.gperf" + {"srt", "application/x-subrip"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 155 "auto/extension_to_mime_type.gperf" + {"curl", "text/vnd.curl"}, + {"",nullptr}, {"",nullptr}, +#line 220 "auto/extension_to_mime_type.gperf" + {"emma", "application/emma+xml"}, + {"",nullptr}, {"",nullptr}, +#line 740 "auto/extension_to_mime_type.gperf" + {"skt", "application/vnd.koan"}, +#line 496 "auto/extension_to_mime_type.gperf" + {"mpy", "application/vnd.ibm.minipay"}, +#line 675 "auto/extension_to_mime_type.gperf" + {"rlc", "image/vnd.fujixerox.edmics-rlc"}, + {"",nullptr}, +#line 146 "auto/extension_to_mime_type.gperf" + {"crt", "application/x-x509-ca-cert"}, +#line 570 "auto/extension_to_mime_type.gperf" + {"otc", "application/vnd.oasis.opendocument.chart-template"}, +#line 141 "auto/extension_to_mime_type.gperf" + {"cpio", "application/x-cpio"}, +#line 571 "auto/extension_to_mime_type.gperf" + {"otf", "font/otf"}, +#line 904 "auto/extension_to_mime_type.gperf" + {"wdb", "application/vnd.ms-works"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 787 "auto/extension_to_mime_type.gperf" + {"swa", "application/x-director"}, + {"",nullptr}, +#line 669 "auto/extension_to_mime_type.gperf" + {"res", "application/x-dtbresource+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 998 "auto/extension_to_mime_type.gperf" + {"z2", "application/x-zmachine"}, +#line 438 "auto/extension_to_mime_type.gperf" + {"mathml", "application/mathml+xml"}, + {"",nullptr}, +#line 360 "auto/extension_to_mime_type.gperf" + {"irm", "application/vnd.ibm.rights-management"}, +#line 668 "auto/extension_to_mime_type.gperf" + {"rep", "application/vnd.businessobjects"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 361 "auto/extension_to_mime_type.gperf" + {"irp", "application/vnd.irepository.package+xml"}, +#line 182 "auto/extension_to_mime_type.gperf" + {"dll", "application/x-msdownload"}, +#line 676 "auto/extension_to_mime_type.gperf" + {"rld", "application/resource-lists-diff+xml"}, +#line 434 "auto/extension_to_mime_type.gperf" + {"mag", "application/vnd.ecowin.chart"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 31 "auto/extension_to_mime_type.gperf" + {"acu", "application/vnd.acucobol"}, + {"",nullptr}, {"",nullptr}, +#line 839 "auto/extension_to_mime_type.gperf" + {"ulx", "application/x-glulx"}, +#line 362 "auto/extension_to_mime_type.gperf" + {"iso", "application/x-iso9660-image"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 145 "auto/extension_to_mime_type.gperf" + {"crl", "application/pkix-crl"}, + {"",nullptr}, {"",nullptr}, +#line 420 "auto/extension_to_mime_type.gperf" + {"m13", "application/x-msmediaview"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 674 "auto/extension_to_mime_type.gperf" + {"rl", "application/resource-lists+xml"}, +#line 512 "auto/extension_to_mime_type.gperf" + {"mvb", "application/x-msmediaview"}, +#line 848 "auto/extension_to_mime_type.gperf" + {"uu", "text/x-uuencode"}, + {"",nullptr}, +#line 646 "auto/extension_to_mime_type.gperf" + {"pvb", "application/vnd.3gpp.pic-bw-var"}, +#line 930 "auto/extension_to_mime_type.gperf" + {"wrl", "model/vrml"}, +#line 421 "auto/extension_to_mime_type.gperf" + {"m14", "application/x-msmediaview"}, +#line 732 "auto/extension_to_mime_type.gperf" + {"silo", "model/mesh"}, + {"",nullptr}, +#line 822 "auto/extension_to_mime_type.gperf" + {"tr", "text/troff"}, +#line 861 "auto/extension_to_mime_type.gperf" + {"uvva", "audio/vnd.dece.audio"}, + {"",nullptr}, {"",nullptr}, +#line 183 "auto/extension_to_mime_type.gperf" + {"dmg", "application/x-apple-diskimage"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 342 "auto/extension_to_mime_type.gperf" + {"ief", "image/ief"}, +#line 105 "auto/extension_to_mime_type.gperf" + {"cdbcmsg", "application/vnd.contact.cmsg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 809 "auto/extension_to_mime_type.gperf" + {"text", "text/plain"}, +#line 82 "auto/extension_to_mime_type.gperf" + {"bz", "application/x-bzip"}, + {"",nullptr}, +#line 203 "auto/extension_to_mime_type.gperf" + {"dvb", "video/vnd.dvb.file"}, + {"",nullptr}, +#line 490 "auto/extension_to_mime_type.gperf" + {"mpga", "audio/mpeg"}, +#line 962 "auto/extension_to_mime_type.gperf" + {"xlam", "application/vnd.ms-excel.addin.macroenabled.12"}, + {"",nullptr}, {"",nullptr}, +#line 399 "auto/extension_to_mime_type.gperf" + {"kwd", "application/vnd.kde.kword"}, +#line 159 "auto/extension_to_mime_type.gperf" + {"dae", "model/vnd.collada+xml"}, + {"",nullptr}, +#line 422 "auto/extension_to_mime_type.gperf" + {"m1v", "video/mpeg"}, + {"",nullptr}, {"",nullptr}, +#line 126 "auto/extension_to_mime_type.gperf" + {"class", "application/java-vm"}, + {"",nullptr}, +#line 397 "auto/extension_to_mime_type.gperf" + {"ktx", "image/ktx"}, +#line 60 "auto/extension_to_mime_type.gperf" + {"au", "audio/basic"}, +#line 318 "auto/extension_to_mime_type.gperf" + {"hbci", "application/vnd.hbci"}, + {"",nullptr}, +#line 232 "auto/extension_to_mime_type.gperf" + {"eva", "application/x-eva"}, + {"",nullptr}, {"",nullptr}, +#line 621 "auto/extension_to_mime_type.gperf" + {"pnm", "image/x-portable-anymap"}, +#line 640 "auto/extension_to_mime_type.gperf" + {"psb", "application/vnd.3gpp.pic-bw-small"}, +#line 577 "auto/extension_to_mime_type.gperf" + {"ott", "application/vnd.oasis.opendocument.text-template"}, +#line 327 "auto/extension_to_mime_type.gperf" + {"hpid", "application/vnd.hp-hpid"}, +#line 977 "auto/extension_to_mime_type.gperf" + {"xop", "application/xop+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 139 "auto/extension_to_mime_type.gperf" + {"com", "application/x-msdownload"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 937 "auto/extension_to_mime_type.gperf" + {"x3db", "model/x3d+binary"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 53 "auto/extension_to_mime_type.gperf" + {"aso", "application/vnd.accpac.simply.aso"}, + {"",nullptr}, +#line 258 "auto/extension_to_mime_type.gperf" + {"flac", "audio/x-flac"}, +#line 404 "auto/extension_to_mime_type.gperf" + {"lbe", "application/vnd.llamagraphics.life-balance.exchange+xml"}, + {"",nullptr}, +#line 34 "auto/extension_to_mime_type.gperf" + {"aep", "application/vnd.audiograph"}, +#line 508 "auto/extension_to_mime_type.gperf" + {"msty", "application/vnd.muvee.style"}, +#line 751 "auto/extension_to_mime_type.gperf" + {"snf", "application/x-font-snf"}, + {"",nullptr}, +#line 877 "auto/extension_to_mime_type.gperf" + {"vcard", "text/vcard"}, +#line 474 "auto/extension_to_mime_type.gperf" + {"mods", "application/mods+xml"}, +#line 49 "auto/extension_to_mime_type.gperf" + {"arc", "application/x-freearc"}, + {"",nullptr}, {"",nullptr}, +#line 307 "auto/extension_to_mime_type.gperf" + {"gtm", "application/vnd.groove-tool-message"}, +#line 884 "auto/extension_to_mime_type.gperf" + {"viv", "video/vnd.vivo"}, + {"",nullptr}, +#line 488 "auto/extension_to_mime_type.gperf" + {"mpg", "video/mpeg"}, +#line 655 "auto/extension_to_mime_type.gperf" + {"qwd", "application/vnd.quark.quarkxpress"}, + {"",nullptr}, +#line 237 "auto/extension_to_mime_type.gperf" + {"ez", "application/andrew-inset"}, +#line 266 "auto/extension_to_mime_type.gperf" + {"fnc", "application/vnd.frogans.fnc"}, + {"",nullptr}, {"",nullptr}, +#line 758 "auto/extension_to_mime_type.gperf" + {"spq", "application/scvp-vp-request"}, +#line 785 "auto/extension_to_mime_type.gperf" + {"svg", "image/svg+xml"}, +#line 188 "auto/extension_to_mime_type.gperf" + {"docm", "application/vnd.ms-word.document.macroenabled.12"}, +#line 228 "auto/extension_to_mime_type.gperf" + {"esa", "application/vnd.osgi.subsystem"}, + {"",nullptr}, {"",nullptr}, +#line 435 "auto/extension_to_mime_type.gperf" + {"maker", "application/vnd.framemaker"}, + {"",nullptr}, +#line 845 "auto/extension_to_mime_type.gperf" + {"urls", "text/uri-list"}, +#line 187 "auto/extension_to_mime_type.gperf" + {"doc", "application/msword"}, +#line 189 "auto/extension_to_mime_type.gperf" + {"docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, + {"",nullptr}, +#line 231 "auto/extension_to_mime_type.gperf" + {"etx", "text/x-setext"}, +#line 750 "auto/extension_to_mime_type.gperf" + {"snd", "audio/basic"}, +#line 400 "auto/extension_to_mime_type.gperf" + {"kwt", "application/vnd.kde.kword"}, + {"",nullptr}, {"",nullptr}, +#line 716 "auto/extension_to_mime_type.gperf" + {"ser", "application/java-serialized-object"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 486 "auto/extension_to_mime_type.gperf" + {"mpe", "video/mpeg"}, +#line 954 "auto/extension_to_mime_type.gperf" + {"xer", "application/patch-ops-error+xml"}, +#line 194 "auto/extension_to_mime_type.gperf" + {"dpg", "application/vnd.dpgraph"}, + {"",nullptr}, +#line 138 "auto/extension_to_mime_type.gperf" + {"cod", "application/vnd.rim.cod"}, + {"",nullptr}, +#line 624 "auto/extension_to_mime_type.gperf" + {"potm", "application/vnd.ms-powerpoint.template.macroenabled.12"}, +#line 259 "auto/extension_to_mime_type.gperf" + {"fli", "video/x-fli"}, +#line 923 "auto/extension_to_mime_type.gperf" + {"woff", "font/woff"}, + {"",nullptr}, +#line 932 "auto/extension_to_mime_type.gperf" + {"wspolicy", "application/wspolicy+xml"}, +#line 116 "auto/extension_to_mime_type.gperf" + {"cer", "application/pkix-cert"}, + {"",nullptr}, +#line 386 "auto/extension_to_mime_type.gperf" + {"kia", "application/vnd.kidspiration"}, +#line 625 "auto/extension_to_mime_type.gperf" + {"potx", "application/vnd.openxmlformats-officedocument.presentationml.template"}, + {"",nullptr}, +#line 90 "auto/extension_to_mime_type.gperf" + {"c4p", "application/vnd.clonk.c4group"}, + {"",nullptr}, {"",nullptr}, +#line 23 "auto/extension_to_mime_type.gperf" + {"aab", "application/x-authorware-bin"}, + {"",nullptr}, +#line 308 "auto/extension_to_mime_type.gperf" + {"gtw", "model/vnd.gtw"}, +#line 367 "auto/extension_to_mime_type.gperf" + {"jam", "application/vnd.jam"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 172 "auto/extension_to_mime_type.gperf" + {"der", "application/x-x509-ca-cert"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 489 "auto/extension_to_mime_type.gperf" + {"mpg4", "video/mp4"}, +#line 654 "auto/extension_to_mime_type.gperf" + {"qt", "video/quicktime"}, +#line 191 "auto/extension_to_mime_type.gperf" + {"dotm", "application/vnd.ms-word.template.macroenabled.12"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 613 "auto/extension_to_mime_type.gperf" + {"pki", "application/pkixcmp"}, + {"",nullptr}, +#line 407 "auto/extension_to_mime_type.gperf" + {"link66", "application/vnd.route66.link66+xml"}, +#line 88 "auto/extension_to_mime_type.gperf" + {"c4f", "application/vnd.clonk.c4group"}, +#line 192 "auto/extension_to_mime_type.gperf" + {"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, +#line 872 "auto/extension_to_mime_type.gperf" + {"uvvv", "video/vnd.dece.video"}, + {"",nullptr}, +#line 359 "auto/extension_to_mime_type.gperf" + {"ipk", "application/vnd.shana.informed.package"}, +#line 656 "auto/extension_to_mime_type.gperf" + {"qwt", "application/vnd.quark.quarkxpress"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 929 "auto/extension_to_mime_type.gperf" + {"wri", "application/x-mswrite"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 766 "auto/extension_to_mime_type.gperf" + {"sse", "application/vnd.kodak-descriptor"}, + {"",nullptr}, +#line 398 "auto/extension_to_mime_type.gperf" + {"ktz", "application/vnd.kahootz"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 56 "auto/extension_to_mime_type.gperf" + {"atom", "application/atom+xml"}, +#line 623 "auto/extension_to_mime_type.gperf" + {"pot", "application/vnd.ms-powerpoint"}, + {"",nullptr}, +#line 844 "auto/extension_to_mime_type.gperf" + {"uris", "text/uri-list"}, +#line 463 "auto/extension_to_mime_type.gperf" + {"mk3d", "video/x-matroska"}, + {"",nullptr}, +#line 87 "auto/extension_to_mime_type.gperf" + {"c4d", "application/vnd.clonk.c4group"}, + {"",nullptr}, +#line 424 "auto/extension_to_mime_type.gperf" + {"m2a", "audio/mpeg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 366 "auto/extension_to_mime_type.gperf" + {"jad", "text/vnd.sun.j2me.app-descriptor"}, + {"",nullptr}, +#line 651 "auto/extension_to_mime_type.gperf" + {"qbo", "application/vnd.intu.qbo"}, + {"",nullptr}, +#line 227 "auto/extension_to_mime_type.gperf" + {"es3", "application/vnd.eszigno3+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 190 "auto/extension_to_mime_type.gperf" + {"dot", "application/msword"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 502 "auto/extension_to_mime_type.gperf" + {"mseed", "application/vnd.fdsn.mseed"}, + {"",nullptr}, +#line 647 "auto/extension_to_mime_type.gperf" + {"pwn", "application/vnd.3m.post-it-notes"}, + {"",nullptr}, +#line 763 "auto/extension_to_mime_type.gperf" + {"sru", "application/sru+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 804 "auto/extension_to_mime_type.gperf" + {"tei", "application/tei+xml"}, + {"",nullptr}, {"",nullptr}, +#line 682 "auto/extension_to_mime_type.gperf" + {"rnc", "application/relax-ng-compact-syntax"}, + {"",nullptr}, {"",nullptr}, +#line 665 "auto/extension_to_mime_type.gperf" + {"rcprofile", "application/vnd.ipunplugged.rcprofile"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 805 "auto/extension_to_mime_type.gperf" + {"teicorpus", "application/tei+xml"}, +#line 807 "auto/extension_to_mime_type.gperf" + {"texi", "application/x-texinfo"}, +#line 953 "auto/extension_to_mime_type.gperf" + {"xenc", "application/xenc+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 730 "auto/extension_to_mime_type.gperf" + {"sig", "application/pgp-signature"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 81 "auto/extension_to_mime_type.gperf" + {"btif", "image/prs.btif"}, +#line 45 "auto/extension_to_mime_type.gperf" + {"apk", "application/vnd.android.package-archive"}, + {"",nullptr}, +#line 684 "auto/extension_to_mime_type.gperf" + {"roff", "text/troff"}, +#line 379 "auto/extension_to_mime_type.gperf" + {"jpm", "video/jpm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 257 "auto/extension_to_mime_type.gperf" + {"fig", "application/x-xfig"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 574 "auto/extension_to_mime_type.gperf" + {"oti", "application/vnd.oasis.opendocument.image-template"}, + {"",nullptr}, +#line 894 "auto/extension_to_mime_type.gperf" + {"vtu", "model/vnd.vtu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 458 "auto/extension_to_mime_type.gperf" + {"mie", "application/x-mie"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 460 "auto/extension_to_mime_type.gperf" + {"mime", "message/rfc822"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 961 "auto/extension_to_mime_type.gperf" + {"xla", "application/vnd.ms-excel"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 610 "auto/extension_to_mime_type.gperf" + {"php", "text/x-php"}, + {"",nullptr}, +#line 125 "auto/extension_to_mime_type.gperf" + {"cla", "application/vnd.claymore"}, +#line 340 "auto/extension_to_mime_type.gperf" + {"ico", "image/x-icon"}, + {"",nullptr}, +#line 120 "auto/extension_to_mime_type.gperf" + {"chm", "application/vnd.ms-htmlhelp"}, +#line 255 "auto/extension_to_mime_type.gperf" + {"fh7", "image/x-freehand"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 380 "auto/extension_to_mime_type.gperf" + {"js", "application/javascript"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 278 "auto/extension_to_mime_type.gperf" + {"g2w", "application/vnd.geoplan"}, +#line 413 "auto/extension_to_mime_type.gperf" + {"lostxml", "application/lost+xml"}, +#line 852 "auto/extension_to_mime_type.gperf" + {"uvg", "image/vnd.dece.graphic"}, + {"",nullptr}, +#line 728 "auto/extension_to_mime_type.gperf" + {"shf", "application/shf+xml"}, +#line 17 "auto/extension_to_mime_type.gperf" + {"123", "application/vnd.lotus-1-2-3"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 888 "auto/extension_to_mime_type.gperf" + {"vrml", "model/vrml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 128 "auto/extension_to_mime_type.gperf" + {"clkp", "application/vnd.crick.clicker.palette"}, +#line 464 "auto/extension_to_mime_type.gperf" + {"mka", "audio/x-matroska"}, +#line 131 "auto/extension_to_mime_type.gperf" + {"clkx", "application/vnd.crick.clicker"}, + {"",nullptr}, {"",nullptr}, +#line 256 "auto/extension_to_mime_type.gperf" + {"fhc", "image/x-freehand"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 713 "auto/extension_to_mime_type.gperf" + {"sema", "application/vnd.sema"}, +#line 544 "auto/extension_to_mime_type.gperf" + {"odb", "application/vnd.oasis.opendocument.database"}, + {"",nullptr}, +#line 924 "auto/extension_to_mime_type.gperf" + {"woff2", "font/woff2"}, +#line 396 "auto/extension_to_mime_type.gperf" + {"ktr", "application/vnd.kahootz"}, + {"",nullptr}, {"",nullptr}, +#line 724 "auto/extension_to_mime_type.gperf" + {"sgm", "text/sgml"}, +#line 195 "auto/extension_to_mime_type.gperf" + {"dra", "audio/vnd.dra"}, +#line 425 "auto/extension_to_mime_type.gperf" + {"m2v", "video/mpeg"}, + {"",nullptr}, +#line 607 "auto/extension_to_mime_type.gperf" + {"pgm", "image/x-portable-graymap"}, + {"",nullptr}, {"",nullptr}, +#line 454 "auto/extension_to_mime_type.gperf" + {"mgp", "application/vnd.osgeo.mapguide.package"}, +#line 254 "auto/extension_to_mime_type.gperf" + {"fh5", "image/x-freehand"}, + {"",nullptr}, +#line 609 "auto/extension_to_mime_type.gperf" + {"pgp", "application/pgp-encrypted"}, +#line 720 "auto/extension_to_mime_type.gperf" + {"sfs", "application/vnd.spotfire.sfs"}, +#line 843 "auto/extension_to_mime_type.gperf" + {"uri", "text/uri-list"}, + {"",nullptr}, +#line 452 "auto/extension_to_mime_type.gperf" + {"mfm", "application/vnd.mfmp"}, +#line 118 "auto/extension_to_mime_type.gperf" + {"cgm", "image/cgm"}, + {"",nullptr}, +#line 604 "auto/extension_to_mime_type.gperf" + {"pfm", "application/x-font-type1"}, + {"",nullptr}, {"",nullptr}, +#line 996 "auto/extension_to_mime_type.gperf" + {"yin", "application/yin+xml"}, +#line 267 "auto/extension_to_mime_type.gperf" + {"for", "text/x-fortran"}, + {"",nullptr}, {"",nullptr}, +#line 815 "auto/extension_to_mime_type.gperf" + {"thmx", "application/vnd.ms-officetheme"}, +#line 606 "auto/extension_to_mime_type.gperf" + {"pfx", "application/x-pkcs12"}, +#line 117 "auto/extension_to_mime_type.gperf" + {"cfs", "application/x-cfs-compressed"}, +#line 130 "auto/extension_to_mime_type.gperf" + {"clkw", "application/vnd.crick.clicker.wordbank"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 681 "auto/extension_to_mime_type.gperf" + {"rmvb", "application/vnd.rn-realmedia-vbr"}, + {"",nullptr}, +#line 907 "auto/extension_to_mime_type.gperf" + {"webm", "video/webm"}, + {"",nullptr}, {"",nullptr}, +#line 823 "auto/extension_to_mime_type.gperf" + {"tra", "application/vnd.trueapp"}, + {"",nullptr}, {"",nullptr}, +#line 908 "auto/extension_to_mime_type.gperf" + {"webp", "image/webp"}, + {"",nullptr}, {"",nullptr}, +#line 72 "auto/extension_to_mime_type.gperf" + {"bin", "application/octet-stream"}, +#line 217 "auto/extension_to_mime_type.gperf" + {"elc", "application/octet-stream"}, +#line 887 "auto/extension_to_mime_type.gperf" + {"vox", "application/x-authorware-bin"}, + {"",nullptr}, +#line 331 "auto/extension_to_mime_type.gperf" + {"htm", "text/html"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 284 "auto/extension_to_mime_type.gperf" + {"gca", "application/x-gca-compressed"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 447 "auto/extension_to_mime_type.gperf" + {"me", "text/troff"}, +#line 287 "auto/extension_to_mime_type.gperf" + {"gex", "application/vnd.geometry-explorer"}, + {"",nullptr}, +#line 174 "auto/extension_to_mime_type.gperf" + {"dgc", "application/x-dgc-compressed"}, + {"",nullptr}, +#line 70 "auto/extension_to_mime_type.gperf" + {"bed", "application/vnd.realvnc.bed"}, + {"",nullptr}, +#line 517 "auto/extension_to_mime_type.gperf" + {"mxs", "application/vnd.triscape.mxs"}, +#line 794 "auto/extension_to_mime_type.gperf" + {"sxm", "application/vnd.sun.xml.math"}, +#line 813 "auto/extension_to_mime_type.gperf" + {"tgs", "application/x-tgsticker"}, +#line 250 "auto/extension_to_mime_type.gperf" + {"fg5", "application/vnd.fujitsu.oasysgp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 83 "auto/extension_to_mime_type.gperf" + {"bz2", "application/x-bzip2"}, + {"",nullptr}, +#line 370 "auto/extension_to_mime_type.gperf" + {"jisp", "application/vnd.jisp"}, +#line 251 "auto/extension_to_mime_type.gperf" + {"fgd", "application/x-director"}, + {"",nullptr}, {"",nullptr}, +#line 957 "auto/extension_to_mime_type.gperf" + {"xht", "application/xhtml+xml"}, +#line 811 "auto/extension_to_mime_type.gperf" + {"tfm", "application/x-tex-tfm"}, +#line 67 "auto/extension_to_mime_type.gperf" + {"bcpio", "application/x-bcpio"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 955 "auto/extension_to_mime_type.gperf" + {"xfdf", "application/vnd.adobe.xfdf"}, +#line 275 "auto/extension_to_mime_type.gperf" + {"fxp", "application/vnd.adobe.fxp"}, +#line 158 "auto/extension_to_mime_type.gperf" + {"cxx", "text/x-c"}, +#line 531 "auto/extension_to_mime_type.gperf" + {"nns", "application/vnd.noblenet-sealer"}, + {"",nullptr}, +#line 548 "auto/extension_to_mime_type.gperf" + {"odg", "application/vnd.oasis.opendocument.graphics"}, + {"",nullptr}, +#line 790 "auto/extension_to_mime_type.gperf" + {"sxc", "application/vnd.sun.xml.calc"}, + {"",nullptr}, +#line 719 "auto/extension_to_mime_type.gperf" + {"sfd-hdstx", "application/vnd.hydrostatix.sof-data"}, +#line 514 "auto/extension_to_mime_type.gperf" + {"mxf", "application/mxf"}, + {"",nullptr}, {"",nullptr}, +#line 368 "auto/extension_to_mime_type.gperf" + {"jar", "application/java-archive"}, + {"",nullptr}, {"",nullptr}, +#line 208 "auto/extension_to_mime_type.gperf" + {"dxp", "application/vnd.spotfire.dxp"}, +#line 842 "auto/extension_to_mime_type.gperf" + {"uoml", "application/vnd.uoml+xml"}, +#line 261 "auto/extension_to_mime_type.gperf" + {"flv", "video/x-flv"}, + {"",nullptr}, +#line 752 "auto/extension_to_mime_type.gperf" + {"so", "application/octet-stream"}, + {"",nullptr}, +#line 129 "auto/extension_to_mime_type.gperf" + {"clkt", "application/vnd.crick.clicker.template"}, + {"",nullptr}, +#line 958 "auto/extension_to_mime_type.gperf" + {"xhtml", "application/xhtml+xml"}, +#line 976 "auto/extension_to_mime_type.gperf" + {"xo", "application/vnd.olpc-sugar"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 201 "auto/extension_to_mime_type.gperf" + {"dtshd", "audio/vnd.dts.hd"}, + {"",nullptr}, +#line 795 "auto/extension_to_mime_type.gperf" + {"sxw", "application/vnd.sun.xml.writer"}, + {"",nullptr}, +#line 449 "auto/extension_to_mime_type.gperf" + {"meta4", "application/metalink4+xml"}, + {"",nullptr}, +#line 701 "auto/extension_to_mime_type.gperf" + {"scq", "application/scvp-cv-request"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 791 "auto/extension_to_mime_type.gperf" + {"sxd", "application/vnd.sun.xml.draw"}, +#line 207 "auto/extension_to_mime_type.gperf" + {"dxf", "image/vnd.dxf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 712 "auto/extension_to_mime_type.gperf" + {"seed", "application/vnd.fdsn.seed"}, +#line 466 "auto/extension_to_mime_type.gperf" + {"mkv", "video/x-matroska"}, + {"",nullptr}, {"",nullptr}, +#line 304 "auto/extension_to_mime_type.gperf" + {"grxml", "application/srgs+xml"}, + {"",nullptr}, +#line 238 "auto/extension_to_mime_type.gperf" + {"ez2", "application/vnd.ezpix-album"}, + {"",nullptr}, {"",nullptr}, +#line 140 "auto/extension_to_mime_type.gperf" + {"conf", "text/plain"}, +#line 455 "auto/extension_to_mime_type.gperf" + {"mgz", "application/vnd.proteus.magazine"}, +#line 356 "auto/extension_to_mime_type.gperf" + {"install", "application/x-install-instructions"}, + {"",nullptr}, +#line 532 "auto/extension_to_mime_type.gperf" + {"nnw", "application/vnd.noblenet-web"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 453 "auto/extension_to_mime_type.gperf" + {"mft", "application/rpki-manifest"}, + {"",nullptr}, +#line 1000 "auto/extension_to_mime_type.gperf" + {"z4", "application/x-zmachine"}, + {"",nullptr}, +#line 530 "auto/extension_to_mime_type.gperf" + {"nnd", "application/vnd.noblenet-directory"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 808 "auto/extension_to_mime_type.gperf" + {"texinfo", "application/x-texinfo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 910 "auto/extension_to_mime_type.gperf" + {"wgt", "application/widget"}, + {"",nullptr}, +#line 833 "auto/extension_to_mime_type.gperf" + {"txf", "application/vnd.mobius.txf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 348 "auto/extension_to_mime_type.gperf" + {"igs", "model/iges"}, + {"",nullptr}, +#line 347 "auto/extension_to_mime_type.gperf" + {"igm", "application/vnd.insors.igm"}, +#line 107 "auto/extension_to_mime_type.gperf" + {"cdkey", "application/vnd.mediastation.cdkey"}, + {"",nullptr}, +#line 57 "auto/extension_to_mime_type.gperf" + {"atomcat", "application/atomcat+xml"}, + {"",nullptr}, +#line 80 "auto/extension_to_mime_type.gperf" + {"bpk", "application/octet-stream"}, + {"",nullptr}, +#line 723 "auto/extension_to_mime_type.gperf" + {"sgl", "application/vnd.stardivision.writer-global"}, +#line 349 "auto/extension_to_mime_type.gperf" + {"igx", "application/vnd.micrografx.igx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 344 "auto/extension_to_mime_type.gperf" + {"ifm", "application/vnd.shana.informed.formdata"}, +#line 725 "auto/extension_to_mime_type.gperf" + {"sgml", "text/sgml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 832 "auto/extension_to_mime_type.gperf" + {"txd", "application/vnd.genomatix.tuxedo"}, +#line 430 "auto/extension_to_mime_type.gperf" + {"m4u", "video/vnd.mpegurl"}, + {"",nullptr}, +#line 58 "auto/extension_to_mime_type.gperf" + {"atomsvc", "application/atomsvc+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 312 "auto/extension_to_mime_type.gperf" + {"h", "text/x-c"}, +#line 233 "auto/extension_to_mime_type.gperf" + {"evy", "application/x-envoy"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 91 "auto/extension_to_mime_type.gperf" + {"c4u", "application/vnd.clonk.c4group"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 157 "auto/extension_to_mime_type.gperf" + {"cxt", "application/x-director"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 774 "auto/extension_to_mime_type.gperf" + {"stk", "application/hyperstudio"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 528 "auto/extension_to_mime_type.gperf" + {"nlu", "application/vnd.neurolanguage.nlu"}, + {"",nullptr}, {"",nullptr}, +#line 332 "auto/extension_to_mime_type.gperf" + {"html", "text/html"}, +#line 956 "auto/extension_to_mime_type.gperf" + {"xfdl", "application/vnd.xfdl"}, + {"",nullptr}, +#line 326 "auto/extension_to_mime_type.gperf" + {"hpgl", "application/vnd.hp-hpgl"}, + {"",nullptr}, {"",nullptr}, +#line 78 "auto/extension_to_mime_type.gperf" + {"box", "application/vnd.previewsystems.box"}, +#line 390 "auto/extension_to_mime_type.gperf" + {"knp", "application/vnd.kinar"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 515 "auto/extension_to_mime_type.gperf" + {"mxl", "application/vnd.recordare.musicxml"}, + {"",nullptr}, +#line 121 "auto/extension_to_mime_type.gperf" + {"chrt", "application/vnd.kde.kchart"}, + {"",nullptr}, +#line 933 "auto/extension_to_mime_type.gperf" + {"wtb", "application/vnd.webturbo"}, +#line 569 "auto/extension_to_mime_type.gperf" + {"osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml"}, +#line 186 "auto/extension_to_mime_type.gperf" + {"dna", "application/vnd.dna"}, +#line 516 "auto/extension_to_mime_type.gperf" + {"mxml", "application/xv+xml"}, +#line 198 "auto/extension_to_mime_type.gperf" + {"dtb", "application/x-dtbook+xml"}, +#line 211 "auto/extension_to_mime_type.gperf" + {"ecelp7470", "audio/vnd.nuera.ecelp7470"}, +#line 353 "auto/extension_to_mime_type.gperf" + {"in", "text/plain"}, + {"",nullptr}, +#line 212 "auto/extension_to_mime_type.gperf" + {"ecelp9600", "audio/vnd.nuera.ecelp9600"}, + {"",nullptr}, +#line 260 "auto/extension_to_mime_type.gperf" + {"flo", "application/vnd.micrografx.flo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 834 "auto/extension_to_mime_type.gperf" + {"txt", "text/plain"}, + {"",nullptr}, +#line 35 "auto/extension_to_mime_type.gperf" + {"afm", "application/x-font-type1"}, +#line 276 "auto/extension_to_mime_type.gperf" + {"fxpl", "application/vnd.adobe.fxp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 36 "auto/extension_to_mime_type.gperf" + {"afp", "application/vnd.ibm.modcap"}, + {"",nullptr}, {"",nullptr}, +#line 313 "auto/extension_to_mime_type.gperf" + {"h261", "video/h261"}, + {"",nullptr}, {"",nullptr}, +#line 491 "auto/extension_to_mime_type.gperf" + {"mpkg", "application/vnd.apple.installer+xml"}, + {"",nullptr}, {"",nullptr}, +#line 429 "auto/extension_to_mime_type.gperf" + {"m4a", "audio/mp4"}, +#line 837 "auto/extension_to_mime_type.gperf" + {"ufd", "application/vnd.ufdl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 206 "auto/extension_to_mime_type.gperf" + {"dwg", "image/vnd.dwg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 300 "auto/extension_to_mime_type.gperf" + {"gram", "application/srgs"}, +#line 778 "auto/extension_to_mime_type.gperf" + {"sub", "image/vnd.dvb.subtitle"}, + {"",nullptr}, +#line 316 "auto/extension_to_mime_type.gperf" + {"h265", "video/h265"}, + {"",nullptr}, +#line 645 "auto/extension_to_mime_type.gperf" + {"pub", "application/x-mspublisher"}, +#line 301 "auto/extension_to_mime_type.gperf" + {"gramps", "application/x-gramps-xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 239 "auto/extension_to_mime_type.gperf" + {"ez3", "application/vnd.ezpix-package"}, +#line 864 "auto/extension_to_mime_type.gperf" + {"uvvg", "image/vnd.dece.graphic"}, +#line 306 "auto/extension_to_mime_type.gperf" + {"gtar", "application/x-gtar"}, +#line 325 "auto/extension_to_mime_type.gperf" + {"hlp", "application/winhlp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 338 "auto/extension_to_mime_type.gperf" + {"ice", "x-conference/x-cooltalk"}, +#line 21 "auto/extension_to_mime_type.gperf" + {"3gp", "video/3gpp"}, +#line 605 "auto/extension_to_mime_type.gperf" + {"pfr", "application/font-tdpfr"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 269 "auto/extension_to_mime_type.gperf" + {"frame", "application/vnd.framemaker"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 173 "auto/extension_to_mime_type.gperf" + {"dfac", "application/vnd.dreamfactory"}, +#line 886 "auto/extension_to_mime_type.gperf" + {"vor", "application/vnd.stardivision.writer"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 722 "auto/extension_to_mime_type.gperf" + {"sgi", "image/sgi"}, + {"",nullptr}, {"",nullptr}, +#line 487 "auto/extension_to_mime_type.gperf" + {"mpeg", "video/mpeg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 346 "auto/extension_to_mime_type.gperf" + {"igl", "application/vnd.igloader"}, + {"",nullptr}, +#line 119 "auto/extension_to_mime_type.gperf" + {"chat", "application/x-chat"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 683 "auto/extension_to_mime_type.gperf" + {"roa", "application/rpki-roa"}, +#line 475 "auto/extension_to_mime_type.gperf" + {"mov", "video/quicktime"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 79 "auto/extension_to_mime_type.gperf" + {"boz", "application/x-bzip2"}, + {"",nullptr}, +#line 959 "auto/extension_to_mime_type.gperf" + {"xhvml", "application/xv+xml"}, + {"",nullptr}, {"",nullptr}, +#line 230 "auto/extension_to_mime_type.gperf" + {"et3", "application/vnd.eszigno3+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 836 "auto/extension_to_mime_type.gperf" + {"udeb", "application/x-debian-package"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 209 "auto/extension_to_mime_type.gperf" + {"dxr", "application/x-director"}, + {"",nullptr}, {"",nullptr}, +#line 30 "auto/extension_to_mime_type.gperf" + {"ace", "application/x-ace-compressed"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 793 "auto/extension_to_mime_type.gperf" + {"sxi", "application/vnd.sun.xml.impress"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 505 "auto/extension_to_mime_type.gperf" + {"msh", "model/mesh"}, +#line 503 "auto/extension_to_mime_type.gperf" + {"mseq", "application/vnd.mseq"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 557 "auto/extension_to_mime_type.gperf" + {"ogx", "application/ogg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 810 "auto/extension_to_mime_type.gperf" + {"tfi", "application/thraud+xml"}, + {"",nullptr}, +#line 148 "auto/extension_to_mime_type.gperf" + {"csh", "application/x-csh"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 223 "auto/extension_to_mime_type.gperf" + {"eot", "application/vnd.ms-fontobject"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 431 "auto/extension_to_mime_type.gperf" + {"m4v", "video/x-m4v"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 838 "auto/extension_to_mime_type.gperf" + {"ufdl", "application/vnd.ufdl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 880 "auto/extension_to_mime_type.gperf" + {"vcg", "application/vnd.groove-vcard"}, +#line 264 "auto/extension_to_mime_type.gperf" + {"fly", "text/vnd.fly"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 241 "auto/extension_to_mime_type.gperf" + {"f4v", "video/x-f4v"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 225 "auto/extension_to_mime_type.gperf" + {"epub", "application/epub+zip"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 357 "auto/extension_to_mime_type.gperf" + {"iota", "application/vnd.astraea-software.iota"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 384 "auto/extension_to_mime_type.gperf" + {"karbon", "application/vnd.kde.karbon"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 222 "auto/extension_to_mime_type.gperf" + {"eol", "audio/vnd.digital-winds"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 615 "auto/extension_to_mime_type.gperf" + {"plb", "application/vnd.3gpp.pic-bw-large"}, +#line 578 "auto/extension_to_mime_type.gperf" + {"oxps", "application/oxps"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 518 "auto/extension_to_mime_type.gperf" + {"mxu", "video/vnd.mpegurl"}, +#line 967 "auto/extension_to_mime_type.gperf" + {"xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12"}, + {"",nullptr}, {"",nullptr}, +#line 377 "auto/extension_to_mime_type.gperf" + {"jpgm", "video/jpm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 727 "auto/extension_to_mime_type.gperf" + {"shar", "application/x-shar"}, +#line 355 "auto/extension_to_mime_type.gperf" + {"inkml", "application/inkml+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 450 "auto/extension_to_mime_type.gperf" + {"metalink", "application/metalink+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 602 "auto/extension_to_mime_type.gperf" + {"pfa", "application/x-font-type1"}, + {"",nullptr}, +#line 995 "auto/extension_to_mime_type.gperf" + {"yang", "application/yang"}, + {"",nullptr}, {"",nullptr}, +#line 537 "auto/extension_to_mime_type.gperf" + {"nzb", "application/x-nzb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 819 "auto/extension_to_mime_type.gperf" + {"torrent", "application/x-bittorrent"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 406 "auto/extension_to_mime_type.gperf" + {"lha", "application/x-lzh-compressed"}, +#line 321 "auto/extension_to_mime_type.gperf" + {"heics", "image/heic-sequence"}, +#line 323 "auto/extension_to_mime_type.gperf" + {"heifs", "image/heif-sequence"}, +#line 906 "auto/extension_to_mime_type.gperf" + {"weba", "audio/webm"}, +#line 290 "auto/extension_to_mime_type.gperf" + {"ghf", "application/vnd.groove-help"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 169 "auto/extension_to_mime_type.gperf" + {"deb", "application/x-debian-package"}, +#line 320 "auto/extension_to_mime_type.gperf" + {"heic", "image/heic"}, + {"",nullptr}, +#line 322 "auto/extension_to_mime_type.gperf" + {"heif", "image/heif"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 717 "auto/extension_to_mime_type.gperf" + {"setpay", "application/set-payment-initiation"}, + {"",nullptr}, {"",nullptr}, +#line 803 "auto/extension_to_mime_type.gperf" + {"teacher", "application/vnd.smart.teacher"}, +#line 210 "auto/extension_to_mime_type.gperf" + {"ecelp4800", "audio/vnd.nuera.ecelp4800"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 853 "auto/extension_to_mime_type.gperf" + {"uvh", "video/vnd.dece.hd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 812 "auto/extension_to_mime_type.gperf" + {"tga", "image/x-tga"}, + {"",nullptr}, +#line 473 "auto/extension_to_mime_type.gperf" + {"mobi", "application/x-mobipocket-ebook"}, + {"",nullptr}, +#line 895 "auto/extension_to_mime_type.gperf" + {"vxml", "application/voicexml+xml"}, +#line 253 "auto/extension_to_mime_type.gperf" + {"fh4", "image/x-freehand"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 909 "auto/extension_to_mime_type.gperf" + {"wg", "application/vnd.pmi.widget"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 652 "auto/extension_to_mime_type.gperf" + {"qfx", "application/vnd.intu.qfx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 614 "auto/extension_to_mime_type.gperf" + {"pkipath", "application/pkix-pkipath"}, + {"",nullptr}, +#line 579 "auto/extension_to_mime_type.gperf" + {"oxt", "application/vnd.openofficeorg.extension"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 171 "auto/extension_to_mime_type.gperf" + {"deploy", "application/octet-stream"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 612 "auto/extension_to_mime_type.gperf" + {"pkg", "application/octet-stream"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 637 "auto/extension_to_mime_type.gperf" + {"pre", "application/vnd.lotus-freelance"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 369 "auto/extension_to_mime_type.gperf" + {"java", "text/x-java-source"}, + {"",nullptr}, +#line 711 "auto/extension_to_mime_type.gperf" + {"see", "application/vnd.seemail"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 336 "auto/extension_to_mime_type.gperf" + {"i2g", "application/vnd.intergeo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 310 "auto/extension_to_mime_type.gperf" + {"gxf", "application/gxf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 721 "auto/extension_to_mime_type.gperf" + {"sfv", "text/x-sfv"}, +#line 295 "auto/extension_to_mime_type.gperf" + {"gnumeric", "application/x-gnumeric"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 249 "auto/extension_to_mime_type.gperf" + {"fe_launch", "application/vnd.denovo.fcselayout-link"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 303 "auto/extension_to_mime_type.gperf" + {"grv", "application/vnd.groove-injector"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 658 "auto/extension_to_mime_type.gperf" + {"qxd", "application/vnd.quark.quarkxpress"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 289 "auto/extension_to_mime_type.gperf" + {"ggt", "application/vnd.geogebra.tool"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 472 "auto/extension_to_mime_type.gperf" + {"mny", "application/x-msmoney"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 841 "auto/extension_to_mime_type.gperf" + {"unityweb", "application/vnd.unity"}, +#line 572 "auto/extension_to_mime_type.gperf" + {"otg", "application/vnd.oasis.opendocument.graphics-template"}, +#line 814 "auto/extension_to_mime_type.gperf" + {"tgv", "application/x-tgwallpattern"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 526 "auto/extension_to_mime_type.gperf" + {"ngdat", "application/vnd.nokia.n-gage.data"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 20 "auto/extension_to_mime_type.gperf" + {"3g2", "video/3gpp2"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 345 "auto/extension_to_mime_type.gperf" + {"iges", "model/iges"}, + {"",nullptr}, +#line 608 "auto/extension_to_mime_type.gperf" + {"pgn", "application/x-chess-pgn"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 311 "auto/extension_to_mime_type.gperf" + {"gxt", "application/vnd.geonext"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 660 "auto/extension_to_mime_type.gperf" + {"qxt", "application/vnd.quark.quarkxpress"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 236 "auto/extension_to_mime_type.gperf" + {"ext", "application/vnd.novadigm.ext"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 560 "auto/extension_to_mime_type.gperf" + {"onetmp", "application/onenote"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 476 "auto/extension_to_mime_type.gperf" + {"movie", "video/x-sgi-movie"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 726 "auto/extension_to_mime_type.gperf" + {"sh", "application/x-sh"}, + {"",nullptr}, +#line 215 "auto/extension_to_mime_type.gperf" + {"efif", "application/vnd.picsel"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 561 "auto/extension_to_mime_type.gperf" + {"onetoc", "application/onenote"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 659 "auto/extension_to_mime_type.gperf" + {"qxl", "application/vnd.quark.quarkxpress"}, + {"",nullptr}, +#line 252 "auto/extension_to_mime_type.gperf" + {"fh", "image/x-freehand"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 411 "auto/extension_to_mime_type.gperf" + {"lnk", "application/x-ms-shortcut"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 718 "auto/extension_to_mime_type.gperf" + {"setreg", "application/set-registration-initiation"}, + {"",nullptr}, {"",nullptr}, +#line 471 "auto/extension_to_mime_type.gperf" + {"mng", "video/x-mng"}, + {"",nullptr}, {"",nullptr}, +#line 620 "auto/extension_to_mime_type.gperf" + {"png", "image/png"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 314 "auto/extension_to_mime_type.gperf" + {"h263", "video/h263"}, +#line 286 "auto/extension_to_mime_type.gperf" + {"geo", "application/vnd.dynageo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 371 "auto/extension_to_mime_type.gperf" + {"jlt", "application/vnd.hp-jlyt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 315 "auto/extension_to_mime_type.gperf" + {"h264", "video/h264"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 519 "auto/extension_to_mime_type.gperf" + {"n-gage", "application/vnd.nokia.n-gage.symbian.install"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 865 "auto/extension_to_mime_type.gperf" + {"uvvh", "video/vnd.dece.hd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 71 "auto/extension_to_mime_type.gperf" + {"bh2", "application/vnd.fujitsu.oasysprs"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 554 "auto/extension_to_mime_type.gperf" + {"oga", "audio/ogg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 296 "auto/extension_to_mime_type.gperf" + {"gph", "application/vnd.flographit"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 354 "auto/extension_to_mime_type.gperf" + {"ink", "application/inkml+xml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 89 "auto/extension_to_mime_type.gperf" + {"c4g", "application/vnd.clonk.c4group"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 419 "auto/extension_to_mime_type.gperf" + {"lzh", "application/x-lzh-compressed"}, + {"",nullptr}, {"",nullptr}, +#line 412 "auto/extension_to_mime_type.gperf" + {"log", "text/plain"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 382 "auto/extension_to_mime_type.gperf" + {"jsonml", "application/jsonml+json"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 147 "auto/extension_to_mime_type.gperf" + {"cryptonote", "application/vnd.rig.cryptonote"}, +#line 391 "auto/extension_to_mime_type.gperf" + {"kon", "application/vnd.kde.kontour"}, +#line 235 "auto/extension_to_mime_type.gperf" + {"exi", "application/exi"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 73 "auto/extension_to_mime_type.gperf" + {"blb", "application/x-blorb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 567 "auto/extension_to_mime_type.gperf" + {"org", "application/vnd.lotus-organizer"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 127 "auto/extension_to_mime_type.gperf" + {"clkk", "application/vnd.crick.clicker.keyboard"}, + {"",nullptr}, {"",nullptr}, +#line 562 "auto/extension_to_mime_type.gperf" + {"onetoc2", "application/onenote"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 622 "auto/extension_to_mime_type.gperf" + {"portpkg", "application/vnd.macports.portpkg"}, + {"",nullptr}, +#line 74 "auto/extension_to_mime_type.gperf" + {"blorb", "application/x-blorb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 376 "auto/extension_to_mime_type.gperf" + {"jpg", "image/jpeg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 603 "auto/extension_to_mime_type.gperf" + {"pfb", "application/x-font-type1"}, + {"",nullptr}, {"",nullptr}, +#line 556 "auto/extension_to_mime_type.gperf" + {"ogv", "video/ogg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 37 "auto/extension_to_mime_type.gperf" + {"ahead", "application/vnd.ahead.space"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 374 "auto/extension_to_mime_type.gperf" + {"jpe", "image/jpeg"}, +#line 885 "auto/extension_to_mime_type.gperf" + {"vob", "video/x-ms-vob"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 372 "auto/extension_to_mime_type.gperf" + {"jnlp", "application/x-java-jnlp-file"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 381 "auto/extension_to_mime_type.gperf" + {"json", "application/json"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 378 "auto/extension_to_mime_type.gperf" + {"jpgv", "video/jpeg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 670 "auto/extension_to_mime_type.gperf" + {"rgb", "image/x-rgb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 302 "auto/extension_to_mime_type.gperf" + {"gre", "application/vnd.geometry-explorer"}, + {"",nullptr}, +#line 525 "auto/extension_to_mime_type.gperf" + {"nfo", "text/x-nfo"}, +#line 792 "auto/extension_to_mime_type.gperf" + {"sxg", "application/vnd.sun.xml.writer.global"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 448 "auto/extension_to_mime_type.gperf" + {"mesh", "model/mesh"}, + {"",nullptr}, {"",nullptr}, +#line 343 "auto/extension_to_mime_type.gperf" + {"ifb", "text/calendar"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 840 "auto/extension_to_mime_type.gperf" + {"umj", "application/vnd.umajin"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 573 "auto/extension_to_mime_type.gperf" + {"oth", "application/vnd.oasis.opendocument.text-web"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 385 "auto/extension_to_mime_type.gperf" + {"kfo", "application/vnd.kde.kformula"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 389 "auto/extension_to_mime_type.gperf" + {"kne", "application/vnd.kinar"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 542 "auto/extension_to_mime_type.gperf" + {"obj", "application/x-tgif"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 555 "auto/extension_to_mime_type.gperf" + {"ogg", "audio/ogg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 373 "auto/extension_to_mime_type.gperf" + {"joda", "application/vnd.joost.joda-archive"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 288 "auto/extension_to_mime_type.gperf" + {"ggb", "application/vnd.geogebra.file"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 375 "auto/extension_to_mime_type.gperf" + {"jpeg", "image/jpeg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 324 "auto/extension_to_mime_type.gperf" + {"hh", "text/x-c"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 657 "auto/extension_to_mime_type.gperf" + {"qxb", "application/vnd.quark.quarkxpress"}, + {"",nullptr}, {"",nullptr}, +#line 77 "auto/extension_to_mime_type.gperf" + {"book", "application/vnd.framemaker"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 330 "auto/extension_to_mime_type.gperf" + {"htke", "application/vnd.kenameaapp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 234 "auto/extension_to_mime_type.gperf" + {"exe", "application/x-msdownload"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 559 "auto/extension_to_mime_type.gperf" + {"onepkg", "application/onenote"} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register unsigned int key = extension_hash (str, len); + + if (key <= MAX_HASH_VALUE) + { + register const char *s = wordlist[key].extension; + + if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s)) + return &wordlist[key]; + } + } + return 0; +} +#line 1010 "auto/extension_to_mime_type.gperf" + +const char *extension_to_mime_type(const char *extension, size_t extension_len) { + const auto &result = search_extension(extension, extension_len); + if (result == nullptr) { + return nullptr; + } + + return result->mime_type; +} diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.gperf b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.gperf new file mode 100644 index 0000000000..004502af1b --- /dev/null +++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/extension_to_mime_type.gperf @@ -0,0 +1,1018 @@ +%struct-type +%ignore-case +%language=ANSI-C +%readonly-tables +%includes +%enum +%define slot-name extension +%define initializer-suffix ,nullptr +%define slot-name extension +%define hash-function-name extension_hash +%define lookup-function-name search_extension +struct extension_and_mime_type { + const char *extension; + const char *mime_type; +} +%% +"123", "application/vnd.lotus-1-2-3" +"3dml", "text/vnd.in3d.3dml" +"3ds", "image/x-3ds" +"3g2", "video/3gpp2" +"3gp", "video/3gpp" +"7z", "application/x-7z-compressed" +"aab", "application/x-authorware-bin" +"aac", "audio/x-aac" +"aam", "application/x-authorware-map" +"aas", "application/x-authorware-seg" +"abw", "application/x-abiword" +"ac", "application/pkix-attr-cert" +"acc", "application/vnd.americandynamics.acc" +"ace", "application/x-ace-compressed" +"acu", "application/vnd.acucobol" +"acutc", "application/vnd.acucorp" +"adp", "audio/adpcm" +"aep", "application/vnd.audiograph" +"afm", "application/x-font-type1" +"afp", "application/vnd.ibm.modcap" +"ahead", "application/vnd.ahead.space" +"ai", "application/postscript" +"aif", "audio/x-aiff" +"aifc", "audio/x-aiff" +"aiff", "audio/x-aiff" +"air", "application/vnd.adobe.air-application-installer-package+zip" +"ait", "application/vnd.dvb.ait" +"ami", "application/vnd.amiga.ami" +"apk", "application/vnd.android.package-archive" +"appcache", "text/cache-manifest" +"application", "application/x-ms-application" +"apr", "application/vnd.lotus-approach" +"arc", "application/x-freearc" +"asc", "application/pgp-signature" +"asf", "video/x-ms-asf" +"asm", "text/x-asm" +"aso", "application/vnd.accpac.simply.aso" +"asx", "video/x-ms-asf" +"atc", "application/vnd.acucorp" +"atom", "application/atom+xml" +"atomcat", "application/atomcat+xml" +"atomsvc", "application/atomsvc+xml" +"atx", "application/vnd.antix.game-component" +"au", "audio/basic" +"avi", "video/x-msvideo" +"aw", "application/applixware" +"azf", "application/vnd.airzip.filesecure.azf" +"azs", "application/vnd.airzip.filesecure.azs" +"azw", "application/vnd.amazon.ebook" +"bat", "application/x-msdownload" +"bcpio", "application/x-bcpio" +"bdf", "application/x-font-bdf" +"bdm", "application/vnd.syncml.dm+wbxml" +"bed", "application/vnd.realvnc.bed" +"bh2", "application/vnd.fujitsu.oasysprs" +"bin", "application/octet-stream" +"blb", "application/x-blorb" +"blorb", "application/x-blorb" +"bmi", "application/vnd.bmi" +"bmp", "image/bmp" +"book", "application/vnd.framemaker" +"box", "application/vnd.previewsystems.box" +"boz", "application/x-bzip2" +"bpk", "application/octet-stream" +"btif", "image/prs.btif" +"bz", "application/x-bzip" +"bz2", "application/x-bzip2" +"c", "text/x-c" +"c11amc", "application/vnd.cluetrust.cartomobile-config" +"c11amz", "application/vnd.cluetrust.cartomobile-config-pkg" +"c4d", "application/vnd.clonk.c4group" +"c4f", "application/vnd.clonk.c4group" +"c4g", "application/vnd.clonk.c4group" +"c4p", "application/vnd.clonk.c4group" +"c4u", "application/vnd.clonk.c4group" +"cab", "application/vnd.ms-cab-compressed" +"caf", "audio/x-caf" +"cap", "application/vnd.tcpdump.pcap" +"car", "application/vnd.curl.car" +"cat", "application/vnd.ms-pki.seccat" +"cb7", "application/x-cbr" +"cba", "application/x-cbr" +"cbr", "application/x-cbr" +"cbt", "application/x-cbr" +"cbz", "application/x-cbr" +"cc", "text/x-c" +"cct", "application/x-director" +"ccxml", "application/ccxml+xml" +"cdbcmsg", "application/vnd.contact.cmsg" +"cdf", "application/x-netcdf" +"cdkey", "application/vnd.mediastation.cdkey" +"cdmia", "application/cdmi-capability" +"cdmic", "application/cdmi-container" +"cdmid", "application/cdmi-domain" +"cdmio", "application/cdmi-object" +"cdmiq", "application/cdmi-queue" +"cdx", "chemical/x-cdx" +"cdxml", "application/vnd.chemdraw+xml" +"cdy", "application/vnd.cinderella" +"cer", "application/pkix-cert" +"cfs", "application/x-cfs-compressed" +"cgm", "image/cgm" +"chat", "application/x-chat" +"chm", "application/vnd.ms-htmlhelp" +"chrt", "application/vnd.kde.kchart" +"cif", "chemical/x-cif" +"cii", "application/vnd.anser-web-certificate-issue-initiation" +"cil", "application/vnd.ms-artgalry" +"cla", "application/vnd.claymore" +"class", "application/java-vm" +"clkk", "application/vnd.crick.clicker.keyboard" +"clkp", "application/vnd.crick.clicker.palette" +"clkt", "application/vnd.crick.clicker.template" +"clkw", "application/vnd.crick.clicker.wordbank" +"clkx", "application/vnd.crick.clicker" +"clp", "application/x-msclip" +"cmc", "application/vnd.cosmocaller" +"cmdf", "chemical/x-cmdf" +"cml", "chemical/x-cml" +"cmp", "application/vnd.yellowriver-custom-menu" +"cmx", "image/x-cmx" +"cod", "application/vnd.rim.cod" +"com", "application/x-msdownload" +"conf", "text/plain" +"cpio", "application/x-cpio" +"cpp", "text/x-c" +"cpt", "application/mac-compactpro" +"crd", "application/x-mscardfile" +"crl", "application/pkix-crl" +"crt", "application/x-x509-ca-cert" +"cryptonote", "application/vnd.rig.cryptonote" +"csh", "application/x-csh" +"csml", "chemical/x-csml" +"csp", "application/vnd.commonspace" +"css", "text/css" +"cst", "application/x-director" +"csv", "text/csv" +"cu", "application/cu-seeme" +"curl", "text/vnd.curl" +"cww", "application/prs.cww" +"cxt", "application/x-director" +"cxx", "text/x-c" +"dae", "model/vnd.collada+xml" +"daf", "application/vnd.mobius.daf" +"dart", "application/vnd.dart" +"dataless", "application/vnd.fdsn.seed" +"davmount", "application/davmount+xml" +"dbk", "application/docbook+xml" +"dcr", "application/x-director" +"dcurl", "text/vnd.curl.dcurl" +"dd2", "application/vnd.oma.dd2+xml" +"ddd", "application/vnd.fujixerox.ddd" +"deb", "application/x-debian-package" +"def", "text/plain" +"deploy", "application/octet-stream" +"der", "application/x-x509-ca-cert" +"dfac", "application/vnd.dreamfactory" +"dgc", "application/x-dgc-compressed" +"dic", "text/x-c" +"dir", "application/x-director" +"dis", "application/vnd.mobius.dis" +"dist", "application/octet-stream" +"distz", "application/octet-stream" +"djv", "image/vnd.djvu" +"djvu", "image/vnd.djvu" +"dll", "application/x-msdownload" +"dmg", "application/x-apple-diskimage" +"dmp", "application/vnd.tcpdump.pcap" +"dms", "application/octet-stream" +"dna", "application/vnd.dna" +"doc", "application/msword" +"docm", "application/vnd.ms-word.document.macroenabled.12" +"docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" +"dot", "application/msword" +"dotm", "application/vnd.ms-word.template.macroenabled.12" +"dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" +"dp", "application/vnd.osgi.dp" +"dpg", "application/vnd.dpgraph" +"dra", "audio/vnd.dra" +"dsc", "text/prs.lines.tag" +"dssc", "application/dssc+der" +"dtb", "application/x-dtbook+xml" +"dtd", "application/xml-dtd" +"dts", "audio/vnd.dts" +"dtshd", "audio/vnd.dts.hd" +"dump", "application/octet-stream" +"dvb", "video/vnd.dvb.file" +"dvi", "application/x-dvi" +"dwf", "model/vnd.dwf" +"dwg", "image/vnd.dwg" +"dxf", "image/vnd.dxf" +"dxp", "application/vnd.spotfire.dxp" +"dxr", "application/x-director" +"ecelp4800", "audio/vnd.nuera.ecelp4800" +"ecelp7470", "audio/vnd.nuera.ecelp7470" +"ecelp9600", "audio/vnd.nuera.ecelp9600" +"edm", "application/vnd.novadigm.edm" +"edx", "application/vnd.novadigm.edx" +"efif", "application/vnd.picsel" +"ei6", "application/vnd.pg.osasli" +"elc", "application/octet-stream" +"emf", "application/x-msmetafile" +"eml", "message/rfc822" +"emma", "application/emma+xml" +"emz", "application/x-msmetafile" +"eol", "audio/vnd.digital-winds" +"eot", "application/vnd.ms-fontobject" +"eps", "application/postscript" +"epub", "application/epub+zip" +"es", "application/ecmascript" +"es3", "application/vnd.eszigno3+xml" +"esa", "application/vnd.osgi.subsystem" +"esf", "application/vnd.epson.esf" +"et3", "application/vnd.eszigno3+xml" +"etx", "text/x-setext" +"eva", "application/x-eva" +"evy", "application/x-envoy" +"exe", "application/x-msdownload" +"exi", "application/exi" +"ext", "application/vnd.novadigm.ext" +"ez", "application/andrew-inset" +"ez2", "application/vnd.ezpix-album" +"ez3", "application/vnd.ezpix-package" +"f", "text/x-fortran" +"f4v", "video/x-f4v" +"f77", "text/x-fortran" +"f90", "text/x-fortran" +"fb2", "application/x-fictionbook+xml" +"fbs", "image/vnd.fastbidsheet" +"fcdt", "application/vnd.adobe.formscentral.fcdt" +"fcs", "application/vnd.isac.fcs" +"fdf", "application/vnd.fdf" +"fe_launch", "application/vnd.denovo.fcselayout-link" +"fg5", "application/vnd.fujitsu.oasysgp" +"fgd", "application/x-director" +"fh", "image/x-freehand" +"fh4", "image/x-freehand" +"fh5", "image/x-freehand" +"fh7", "image/x-freehand" +"fhc", "image/x-freehand" +"fig", "application/x-xfig" +"flac", "audio/x-flac" +"fli", "video/x-fli" +"flo", "application/vnd.micrografx.flo" +"flv", "video/x-flv" +"flw", "application/vnd.kde.kivio" +"flx", "text/vnd.fmi.flexstor" +"fly", "text/vnd.fly" +"fm", "application/vnd.framemaker" +"fnc", "application/vnd.frogans.fnc" +"for", "text/x-fortran" +"fpx", "image/vnd.fpx" +"frame", "application/vnd.framemaker" +"fsc", "application/vnd.fsc.weblaunch" +"fst", "image/vnd.fst" +"ftc", "application/vnd.fluxtime.clip" +"fti", "application/vnd.anser-web-funds-transfer-initiation" +"fvt", "video/vnd.fvt" +"fxp", "application/vnd.adobe.fxp" +"fxpl", "application/vnd.adobe.fxp" +"fzs", "application/vnd.fuzzysheet" +"g2w", "application/vnd.geoplan" +"g3", "image/g3fax" +"g3w", "application/vnd.geospace" +"gac", "application/vnd.groove-account" +"gam", "application/x-tads" +"gbr", "application/rpki-ghostbusters" +"gca", "application/x-gca-compressed" +"gdl", "model/vnd.gdl" +"geo", "application/vnd.dynageo" +"gex", "application/vnd.geometry-explorer" +"ggb", "application/vnd.geogebra.file" +"ggt", "application/vnd.geogebra.tool" +"ghf", "application/vnd.groove-help" +"gif", "image/gif" +"gim", "application/vnd.groove-identity-message" +"gml", "application/gml+xml" +"gmx", "application/vnd.gmx" +"gnumeric", "application/x-gnumeric" +"gph", "application/vnd.flographit" +"gpx", "application/gpx+xml" +"gqf", "application/vnd.grafeq" +"gqs", "application/vnd.grafeq" +"gram", "application/srgs" +"gramps", "application/x-gramps-xml" +"gre", "application/vnd.geometry-explorer" +"grv", "application/vnd.groove-injector" +"grxml", "application/srgs+xml" +"gsf", "application/x-font-ghostscript" +"gtar", "application/x-gtar" +"gtm", "application/vnd.groove-tool-message" +"gtw", "model/vnd.gtw" +"gv", "text/vnd.graphviz" +"gxf", "application/gxf" +"gxt", "application/vnd.geonext" +"h", "text/x-c" +"h261", "video/h261" +"h263", "video/h263" +"h264", "video/h264" +"h265", "video/h265" +"hal", "application/vnd.hal+xml" +"hbci", "application/vnd.hbci" +"hdf", "application/x-hdf" +"heic", "image/heic" +"heics", "image/heic-sequence" +"heif", "image/heif" +"heifs", "image/heif-sequence" +"hh", "text/x-c" +"hlp", "application/winhlp" +"hpgl", "application/vnd.hp-hpgl" +"hpid", "application/vnd.hp-hpid" +"hps", "application/vnd.hp-hps" +"hqx", "application/mac-binhex40" +"htke", "application/vnd.kenameaapp" +"htm", "text/html" +"html", "text/html" +"hvd", "application/vnd.yamaha.hv-dic" +"hvp", "application/vnd.yamaha.hv-voice" +"hvs", "application/vnd.yamaha.hv-script" +"i2g", "application/vnd.intergeo" +"icc", "application/vnd.iccprofile" +"ice", "x-conference/x-cooltalk" +"icm", "application/vnd.iccprofile" +"ico", "image/x-icon" +"ics", "text/calendar" +"ief", "image/ief" +"ifb", "text/calendar" +"ifm", "application/vnd.shana.informed.formdata" +"iges", "model/iges" +"igl", "application/vnd.igloader" +"igm", "application/vnd.insors.igm" +"igs", "model/iges" +"igx", "application/vnd.micrografx.igx" +"iif", "application/vnd.shana.informed.interchange" +"imp", "application/vnd.accpac.simply.imp" +"ims", "application/vnd.ms-ims" +"in", "text/plain" +"ink", "application/inkml+xml" +"inkml", "application/inkml+xml" +"install", "application/x-install-instructions" +"iota", "application/vnd.astraea-software.iota" +"ipfix", "application/ipfix" +"ipk", "application/vnd.shana.informed.package" +"irm", "application/vnd.ibm.rights-management" +"irp", "application/vnd.irepository.package+xml" +"iso", "application/x-iso9660-image" +"itp", "application/vnd.shana.informed.formtemplate" +"ivp", "application/vnd.immervision-ivp" +"ivu", "application/vnd.immervision-ivu" +"jad", "text/vnd.sun.j2me.app-descriptor" +"jam", "application/vnd.jam" +"jar", "application/java-archive" +"java", "text/x-java-source" +"jisp", "application/vnd.jisp" +"jlt", "application/vnd.hp-jlyt" +"jnlp", "application/x-java-jnlp-file" +"joda", "application/vnd.joost.joda-archive" +"jpe", "image/jpeg" +"jpeg", "image/jpeg" +"jpg", "image/jpeg" +"jpgm", "video/jpm" +"jpgv", "video/jpeg" +"jpm", "video/jpm" +"js", "application/javascript" +"json", "application/json" +"jsonml", "application/jsonml+json" +"kar", "audio/midi" +"karbon", "application/vnd.kde.karbon" +"kfo", "application/vnd.kde.kformula" +"kia", "application/vnd.kidspiration" +"kml", "application/vnd.google-earth.kml+xml" +"kmz", "application/vnd.google-earth.kmz" +"kne", "application/vnd.kinar" +"knp", "application/vnd.kinar" +"kon", "application/vnd.kde.kontour" +"kpr", "application/vnd.kde.kpresenter" +"kpt", "application/vnd.kde.kpresenter" +"kpxx", "application/vnd.ds-keypoint" +"ksp", "application/vnd.kde.kspread" +"ktr", "application/vnd.kahootz" +"ktx", "image/ktx" +"ktz", "application/vnd.kahootz" +"kwd", "application/vnd.kde.kword" +"kwt", "application/vnd.kde.kword" +"lasxml", "application/vnd.las.las+xml" +"latex", "application/x-latex" +"lbd", "application/vnd.llamagraphics.life-balance.desktop" +"lbe", "application/vnd.llamagraphics.life-balance.exchange+xml" +"les", "application/vnd.hhe.lesson-player" +"lha", "application/x-lzh-compressed" +"link66", "application/vnd.route66.link66+xml" +"list", "text/plain" +"list3820", "application/vnd.ibm.modcap" +"listafp", "application/vnd.ibm.modcap" +"lnk", "application/x-ms-shortcut" +"log", "text/plain" +"lostxml", "application/lost+xml" +"lrf", "application/octet-stream" +"lrm", "application/vnd.ms-lrm" +"ltf", "application/vnd.frogans.ltf" +"lvp", "audio/vnd.lucent.voice" +"lwp", "application/vnd.lotus-wordpro" +"lzh", "application/x-lzh-compressed" +"m13", "application/x-msmediaview" +"m14", "application/x-msmediaview" +"m1v", "video/mpeg" +"m21", "application/mp21" +"m2a", "audio/mpeg" +"m2v", "video/mpeg" +"m3a", "audio/mpeg" +"m3u", "audio/x-mpegurl" +"m3u8", "application/vnd.apple.mpegurl" +"m4a", "audio/mp4" +"m4u", "video/vnd.mpegurl" +"m4v", "video/x-m4v" +"ma", "application/mathematica" +"mads", "application/mads+xml" +"mag", "application/vnd.ecowin.chart" +"maker", "application/vnd.framemaker" +"man", "text/troff" +"mar", "application/octet-stream" +"mathml", "application/mathml+xml" +"mb", "application/mathematica" +"mbk", "application/vnd.mobius.mbk" +"mbox", "application/mbox" +"mc1", "application/vnd.medcalcdata" +"mcd", "application/vnd.mcd" +"mcurl", "text/vnd.curl.mcurl" +"mdb", "application/x-msaccess" +"mdi", "image/vnd.ms-modi" +"me", "text/troff" +"mesh", "model/mesh" +"meta4", "application/metalink4+xml" +"metalink", "application/metalink+xml" +"mets", "application/mets+xml" +"mfm", "application/vnd.mfmp" +"mft", "application/rpki-manifest" +"mgp", "application/vnd.osgeo.mapguide.package" +"mgz", "application/vnd.proteus.magazine" +"mid", "audio/midi" +"midi", "audio/midi" +"mie", "application/x-mie" +"mif", "application/vnd.mif" +"mime", "message/rfc822" +"mj2", "video/mj2" +"mjp2", "video/mj2" +"mk3d", "video/x-matroska" +"mka", "audio/x-matroska" +"mks", "video/x-matroska" +"mkv", "video/x-matroska" +"mlp", "application/vnd.dolby.mlp" +"mmd", "application/vnd.chipnuts.karaoke-mmd" +"mmf", "application/vnd.smaf" +"mmr", "image/vnd.fujixerox.edmics-mmr" +"mng", "video/x-mng" +"mny", "application/x-msmoney" +"mobi", "application/x-mobipocket-ebook" +"mods", "application/mods+xml" +"mov", "video/quicktime" +"movie", "video/x-sgi-movie" +"mp2", "audio/mpeg" +"mp21", "application/mp21" +"mp2a", "audio/mpeg" +"mp3", "audio/mpeg" +"mp4", "video/mp4" +"mp4a", "audio/mp4" +"mp4s", "application/mp4" +"mp4v", "video/mp4" +"mpc", "application/vnd.mophun.certificate" +"mpe", "video/mpeg" +"mpeg", "video/mpeg" +"mpg", "video/mpeg" +"mpg4", "video/mp4" +"mpga", "audio/mpeg" +"mpkg", "application/vnd.apple.installer+xml" +"mpm", "application/vnd.blueice.multipass" +"mpn", "application/vnd.mophun.application" +"mpp", "application/vnd.ms-project" +"mpt", "application/vnd.ms-project" +"mpy", "application/vnd.ibm.minipay" +"mqy", "application/vnd.mobius.mqy" +"mrc", "application/marc" +"mrcx", "application/marcxml+xml" +"ms", "text/troff" +"mscml", "application/mediaservercontrol+xml" +"mseed", "application/vnd.fdsn.mseed" +"mseq", "application/vnd.mseq" +"msf", "application/vnd.epson.msf" +"msh", "model/mesh" +"msi", "application/x-msdownload" +"msl", "application/vnd.mobius.msl" +"msty", "application/vnd.muvee.style" +"mts", "model/vnd.mts" +"mus", "application/vnd.musician" +"musicxml", "application/vnd.recordare.musicxml+xml" +"mvb", "application/x-msmediaview" +"mwf", "application/vnd.mfer" +"mxf", "application/mxf" +"mxl", "application/vnd.recordare.musicxml" +"mxml", "application/xv+xml" +"mxs", "application/vnd.triscape.mxs" +"mxu", "video/vnd.mpegurl" +"n-gage", "application/vnd.nokia.n-gage.symbian.install" +"n3", "text/n3" +"nb", "application/mathematica" +"nbp", "application/vnd.wolfram.player" +"nc", "application/x-netcdf" +"ncx", "application/x-dtbncx+xml" +"nfo", "text/x-nfo" +"ngdat", "application/vnd.nokia.n-gage.data" +"nitf", "application/vnd.nitf" +"nlu", "application/vnd.neurolanguage.nlu" +"nml", "application/vnd.enliven" +"nnd", "application/vnd.noblenet-directory" +"nns", "application/vnd.noblenet-sealer" +"nnw", "application/vnd.noblenet-web" +"npx", "image/vnd.net-fpx" +"nsc", "application/x-conference" +"nsf", "application/vnd.lotus-notes" +"ntf", "application/vnd.nitf" +"nzb", "application/x-nzb" +"oa2", "application/vnd.fujitsu.oasys2" +"oa3", "application/vnd.fujitsu.oasys3" +"oas", "application/vnd.fujitsu.oasys" +"obd", "application/x-msbinder" +"obj", "application/x-tgif" +"oda", "application/oda" +"odb", "application/vnd.oasis.opendocument.database" +"odc", "application/vnd.oasis.opendocument.chart" +"odf", "application/vnd.oasis.opendocument.formula" +"odft", "application/vnd.oasis.opendocument.formula-template" +"odg", "application/vnd.oasis.opendocument.graphics" +"odi", "application/vnd.oasis.opendocument.image" +"odm", "application/vnd.oasis.opendocument.text-master" +"odp", "application/vnd.oasis.opendocument.presentation" +"ods", "application/vnd.oasis.opendocument.spreadsheet" +"odt", "application/vnd.oasis.opendocument.text" +"oga", "audio/ogg" +"ogg", "audio/ogg" +"ogv", "video/ogg" +"ogx", "application/ogg" +"omdoc", "application/omdoc+xml" +"onepkg", "application/onenote" +"onetmp", "application/onenote" +"onetoc", "application/onenote" +"onetoc2", "application/onenote" +"opf", "application/oebps-package+xml" +"opml", "text/x-opml" +"oprc", "application/vnd.palm" +"opus", "audio/ogg" +"org", "application/vnd.lotus-organizer" +"osf", "application/vnd.yamaha.openscoreformat" +"osfpvg", "application/vnd.yamaha.openscoreformat.osfpvg+xml" +"otc", "application/vnd.oasis.opendocument.chart-template" +"otf", "font/otf" +"otg", "application/vnd.oasis.opendocument.graphics-template" +"oth", "application/vnd.oasis.opendocument.text-web" +"oti", "application/vnd.oasis.opendocument.image-template" +"otp", "application/vnd.oasis.opendocument.presentation-template" +"ots", "application/vnd.oasis.opendocument.spreadsheet-template" +"ott", "application/vnd.oasis.opendocument.text-template" +"oxps", "application/oxps" +"oxt", "application/vnd.openofficeorg.extension" +"p", "text/x-pascal" +"p10", "application/pkcs10" +"p12", "application/x-pkcs12" +"p7b", "application/x-pkcs7-certificates" +"p7c", "application/pkcs7-mime" +"p7m", "application/pkcs7-mime" +"p7r", "application/x-pkcs7-certreqresp" +"p7s", "application/pkcs7-signature" +"p8", "application/pkcs8" +"pas", "text/x-pascal" +"paw", "application/vnd.pawaafile" +"pbd", "application/vnd.powerbuilder6" +"pbm", "image/x-portable-bitmap" +"pcap", "application/vnd.tcpdump.pcap" +"pcf", "application/x-font-pcf" +"pcl", "application/vnd.hp-pcl" +"pclxl", "application/vnd.hp-pclxl" +"pct", "image/x-pict" +"pcurl", "application/vnd.curl.pcurl" +"pcx", "image/x-pcx" +"pdb", "application/vnd.palm" +"pdf", "application/pdf" +"pfa", "application/x-font-type1" +"pfb", "application/x-font-type1" +"pfm", "application/x-font-type1" +"pfr", "application/font-tdpfr" +"pfx", "application/x-pkcs12" +"pgm", "image/x-portable-graymap" +"pgn", "application/x-chess-pgn" +"pgp", "application/pgp-encrypted" +"php", "text/x-php" +"pic", "image/x-pict" +"pkg", "application/octet-stream" +"pki", "application/pkixcmp" +"pkipath", "application/pkix-pkipath" +"plb", "application/vnd.3gpp.pic-bw-large" +"plc", "application/vnd.mobius.plc" +"plf", "application/vnd.pocketlearn" +"pls", "application/pls+xml" +"pml", "application/vnd.ctc-posml" +"png", "image/png" +"pnm", "image/x-portable-anymap" +"portpkg", "application/vnd.macports.portpkg" +"pot", "application/vnd.ms-powerpoint" +"potm", "application/vnd.ms-powerpoint.template.macroenabled.12" +"potx", "application/vnd.openxmlformats-officedocument.presentationml.template" +"ppam", "application/vnd.ms-powerpoint.addin.macroenabled.12" +"ppd", "application/vnd.cups-ppd" +"ppm", "image/x-portable-pixmap" +"pps", "application/vnd.ms-powerpoint" +"ppsm", "application/vnd.ms-powerpoint.slideshow.macroenabled.12" +"ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" +"ppt", "application/vnd.ms-powerpoint" +"pptm", "application/vnd.ms-powerpoint.presentation.macroenabled.12" +"pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" +"pqa", "application/vnd.palm" +"prc", "application/x-mobipocket-ebook" +"pre", "application/vnd.lotus-freelance" +"prf", "application/pics-rules" +"ps", "application/postscript" +"psb", "application/vnd.3gpp.pic-bw-small" +"psd", "image/vnd.adobe.photoshop" +"psf", "application/x-font-linux-psf" +"pskcxml", "application/pskc+xml" +"ptid", "application/vnd.pvi.ptid1" +"pub", "application/x-mspublisher" +"pvb", "application/vnd.3gpp.pic-bw-var" +"pwn", "application/vnd.3m.post-it-notes" +"pya", "audio/vnd.ms-playready.media.pya" +"pyv", "video/vnd.ms-playready.media.pyv" +"qam", "application/vnd.epson.quickanime" +"qbo", "application/vnd.intu.qbo" +"qfx", "application/vnd.intu.qfx" +"qps", "application/vnd.publishare-delta-tree" +"qt", "video/quicktime" +"qwd", "application/vnd.quark.quarkxpress" +"qwt", "application/vnd.quark.quarkxpress" +"qxb", "application/vnd.quark.quarkxpress" +"qxd", "application/vnd.quark.quarkxpress" +"qxl", "application/vnd.quark.quarkxpress" +"qxt", "application/vnd.quark.quarkxpress" +"ra", "audio/x-pn-realaudio" +"ram", "audio/x-pn-realaudio" +"rar", "application/x-rar-compressed" +"ras", "image/x-cmu-raster" +"rcprofile", "application/vnd.ipunplugged.rcprofile" +"rdf", "application/rdf+xml" +"rdz", "application/vnd.data-vision.rdz" +"rep", "application/vnd.businessobjects" +"res", "application/x-dtbresource+xml" +"rgb", "image/x-rgb" +"rif", "application/reginfo+xml" +"rip", "audio/vnd.rip" +"ris", "application/x-research-info-systems" +"rl", "application/resource-lists+xml" +"rlc", "image/vnd.fujixerox.edmics-rlc" +"rld", "application/resource-lists-diff+xml" +"rm", "application/vnd.rn-realmedia" +"rmi", "audio/midi" +"rmp", "audio/x-pn-realaudio-plugin" +"rms", "application/vnd.jcp.javame.midlet-rms" +"rmvb", "application/vnd.rn-realmedia-vbr" +"rnc", "application/relax-ng-compact-syntax" +"roa", "application/rpki-roa" +"roff", "text/troff" +"rp9", "application/vnd.cloanto.rp9" +"rpss", "application/vnd.nokia.radio-presets" +"rpst", "application/vnd.nokia.radio-preset" +"rq", "application/sparql-query" +"rs", "application/rls-services+xml" +"rsd", "application/rsd+xml" +"rss", "application/rss+xml" +"rtf", "application/rtf" +"rtx", "text/richtext" +"s", "text/x-asm" +"s3m", "audio/s3m" +"saf", "application/vnd.yamaha.smaf-audio" +"sbml", "application/sbml+xml" +"sc", "application/vnd.ibm.secure-container" +"scd", "application/x-msschedule" +"scm", "application/vnd.lotus-screencam" +"scq", "application/scvp-cv-request" +"scs", "application/scvp-cv-response" +"scurl", "text/vnd.curl.scurl" +"sda", "application/vnd.stardivision.draw" +"sdc", "application/vnd.stardivision.calc" +"sdd", "application/vnd.stardivision.impress" +"sdkd", "application/vnd.solent.sdkm+xml" +"sdkm", "application/vnd.solent.sdkm+xml" +"sdp", "application/sdp" +"sdw", "application/vnd.stardivision.writer" +"see", "application/vnd.seemail" +"seed", "application/vnd.fdsn.seed" +"sema", "application/vnd.sema" +"semd", "application/vnd.semd" +"semf", "application/vnd.semf" +"ser", "application/java-serialized-object" +"setpay", "application/set-payment-initiation" +"setreg", "application/set-registration-initiation" +"sfd-hdstx", "application/vnd.hydrostatix.sof-data" +"sfs", "application/vnd.spotfire.sfs" +"sfv", "text/x-sfv" +"sgi", "image/sgi" +"sgl", "application/vnd.stardivision.writer-global" +"sgm", "text/sgml" +"sgml", "text/sgml" +"sh", "application/x-sh" +"shar", "application/x-shar" +"shf", "application/shf+xml" +"sid", "image/x-mrsid-image" +"sig", "application/pgp-signature" +"sil", "audio/silk" +"silo", "model/mesh" +"sis", "application/vnd.symbian.install" +"sisx", "application/vnd.symbian.install" +"sit", "application/x-stuffit" +"sitx", "application/x-stuffitx" +"skd", "application/vnd.koan" +"skm", "application/vnd.koan" +"skp", "application/vnd.koan" +"skt", "application/vnd.koan" +"sldm", "application/vnd.ms-powerpoint.slide.macroenabled.12" +"sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide" +"slt", "application/vnd.epson.salt" +"sm", "application/vnd.stepmania.stepchart" +"smf", "application/vnd.stardivision.math" +"smi", "application/smil+xml" +"smil", "application/smil+xml" +"smv", "video/x-smv" +"smzip", "application/vnd.stepmania.package" +"snd", "audio/basic" +"snf", "application/x-font-snf" +"so", "application/octet-stream" +"spc", "application/x-pkcs7-certificates" +"spf", "application/vnd.yamaha.smaf-phrase" +"spl", "application/x-futuresplash" +"spot", "text/vnd.in3d.spot" +"spp", "application/scvp-vp-response" +"spq", "application/scvp-vp-request" +"spx", "audio/ogg" +"sql", "application/x-sql" +"src", "application/x-wais-source" +"srt", "application/x-subrip" +"sru", "application/sru+xml" +"srx", "application/sparql-results+xml" +"ssdl", "application/ssdl+xml" +"sse", "application/vnd.kodak-descriptor" +"ssf", "application/vnd.epson.ssf" +"ssml", "application/ssml+xml" +"st", "application/vnd.sailingtracker.track" +"stc", "application/vnd.sun.xml.calc.template" +"std", "application/vnd.sun.xml.draw.template" +"stf", "application/vnd.wt.stf" +"sti", "application/vnd.sun.xml.impress.template" +"stk", "application/hyperstudio" +"stl", "application/vnd.ms-pki.stl" +"str", "application/vnd.pg.format" +"stw", "application/vnd.sun.xml.writer.template" +"sub", "image/vnd.dvb.subtitle" +"sus", "application/vnd.sus-calendar" +"susp", "application/vnd.sus-calendar" +"sv4cpio", "application/x-sv4cpio" +"sv4crc", "application/x-sv4crc" +"svc", "application/vnd.dvb.service" +"svd", "application/vnd.svd" +"svg", "image/svg+xml" +"svgz", "image/svg+xml" +"swa", "application/x-director" +"swf", "application/x-shockwave-flash" +"swi", "application/vnd.aristanetworks.swi" +"sxc", "application/vnd.sun.xml.calc" +"sxd", "application/vnd.sun.xml.draw" +"sxg", "application/vnd.sun.xml.writer.global" +"sxi", "application/vnd.sun.xml.impress" +"sxm", "application/vnd.sun.xml.math" +"sxw", "application/vnd.sun.xml.writer" +"t", "text/troff" +"t3", "application/x-t3vm-image" +"taglet", "application/vnd.mynfc" +"tao", "application/vnd.tao.intent-module-archive" +"tar", "application/x-tar" +"tcap", "application/vnd.3gpp2.tcap" +"tcl", "application/x-tcl" +"teacher", "application/vnd.smart.teacher" +"tei", "application/tei+xml" +"teicorpus", "application/tei+xml" +"tex", "application/x-tex" +"texi", "application/x-texinfo" +"texinfo", "application/x-texinfo" +"text", "text/plain" +"tfi", "application/thraud+xml" +"tfm", "application/x-tex-tfm" +"tga", "image/x-tga" +"tgs", "application/x-tgsticker" +"tgv", "application/x-tgwallpattern" +"thmx", "application/vnd.ms-officetheme" +"tif", "image/tiff" +"tiff", "image/tiff" +"tmo", "application/vnd.tmobile-livetv" +"torrent", "application/x-bittorrent" +"tpl", "application/vnd.groove-tool-template" +"tpt", "application/vnd.trid.tpt" +"tr", "text/troff" +"tra", "application/vnd.trueapp" +"trm", "application/x-msterminal" +"tsd", "application/timestamped-data" +"tsv", "text/tab-separated-values" +"ttc", "font/collection" +"ttf", "font/ttf" +"ttl", "text/turtle" +"twd", "application/vnd.simtech-mindmapper" +"twds", "application/vnd.simtech-mindmapper" +"txd", "application/vnd.genomatix.tuxedo" +"txf", "application/vnd.mobius.txf" +"txt", "text/plain" +"u32", "application/x-authorware-bin" +"udeb", "application/x-debian-package" +"ufd", "application/vnd.ufdl" +"ufdl", "application/vnd.ufdl" +"ulx", "application/x-glulx" +"umj", "application/vnd.umajin" +"unityweb", "application/vnd.unity" +"uoml", "application/vnd.uoml+xml" +"uri", "text/uri-list" +"uris", "text/uri-list" +"urls", "text/uri-list" +"ustar", "application/x-ustar" +"utz", "application/vnd.uiq.theme" +"uu", "text/x-uuencode" +"uva", "audio/vnd.dece.audio" +"uvd", "application/vnd.dece.data" +"uvf", "application/vnd.dece.data" +"uvg", "image/vnd.dece.graphic" +"uvh", "video/vnd.dece.hd" +"uvi", "image/vnd.dece.graphic" +"uvm", "video/vnd.dece.mobile" +"uvp", "video/vnd.dece.pd" +"uvs", "video/vnd.dece.sd" +"uvt", "application/vnd.dece.ttml+xml" +"uvu", "video/vnd.uvvu.mp4" +"uvv", "video/vnd.dece.video" +"uvva", "audio/vnd.dece.audio" +"uvvd", "application/vnd.dece.data" +"uvvf", "application/vnd.dece.data" +"uvvg", "image/vnd.dece.graphic" +"uvvh", "video/vnd.dece.hd" +"uvvi", "image/vnd.dece.graphic" +"uvvm", "video/vnd.dece.mobile" +"uvvp", "video/vnd.dece.pd" +"uvvs", "video/vnd.dece.sd" +"uvvt", "application/vnd.dece.ttml+xml" +"uvvu", "video/vnd.uvvu.mp4" +"uvvv", "video/vnd.dece.video" +"uvvx", "application/vnd.dece.unspecified" +"uvvz", "application/vnd.dece.zip" +"uvx", "application/vnd.dece.unspecified" +"uvz", "application/vnd.dece.zip" +"vcard", "text/vcard" +"vcd", "application/x-cdlink" +"vcf", "text/x-vcard" +"vcg", "application/vnd.groove-vcard" +"vcs", "text/x-vcalendar" +"vcx", "application/vnd.vcx" +"vis", "application/vnd.visionary" +"viv", "video/vnd.vivo" +"vob", "video/x-ms-vob" +"vor", "application/vnd.stardivision.writer" +"vox", "application/x-authorware-bin" +"vrml", "model/vrml" +"vsd", "application/vnd.visio" +"vsf", "application/vnd.vsf" +"vss", "application/vnd.visio" +"vst", "application/vnd.visio" +"vsw", "application/vnd.visio" +"vtu", "model/vnd.vtu" +"vxml", "application/voicexml+xml" +"w3d", "application/x-director" +"wad", "application/x-doom" +"wav", "audio/x-wav" +"wax", "audio/x-ms-wax" +"wbmp", "image/vnd.wap.wbmp" +"wbs", "application/vnd.criticaltools.wbs+xml" +"wbxml", "application/vnd.wap.wbxml" +"wcm", "application/vnd.ms-works" +"wdb", "application/vnd.ms-works" +"wdp", "image/vnd.ms-photo" +"weba", "audio/webm" +"webm", "video/webm" +"webp", "image/webp" +"wg", "application/vnd.pmi.widget" +"wgt", "application/widget" +"wks", "application/vnd.ms-works" +"wm", "video/x-ms-wm" +"wma", "audio/x-ms-wma" +"wmd", "application/x-ms-wmd" +"wmf", "application/x-msmetafile" +"wml", "text/vnd.wap.wml" +"wmlc", "application/vnd.wap.wmlc" +"wmls", "text/vnd.wap.wmlscript" +"wmlsc", "application/vnd.wap.wmlscriptc" +"wmv", "video/x-ms-wmv" +"wmx", "video/x-ms-wmx" +"wmz", "application/x-ms-wmz" +"woff", "font/woff" +"woff2", "font/woff2" +"wpd", "application/vnd.wordperfect" +"wpl", "application/vnd.ms-wpl" +"wps", "application/vnd.ms-works" +"wqd", "application/vnd.wqd" +"wri", "application/x-mswrite" +"wrl", "model/vrml" +"wsdl", "application/wsdl+xml" +"wspolicy", "application/wspolicy+xml" +"wtb", "application/vnd.webturbo" +"wvx", "video/x-ms-wvx" +"x32", "application/x-authorware-bin" +"x3d", "model/x3d+xml" +"x3db", "model/x3d+binary" +"x3dbz", "model/x3d+binary" +"x3dv", "model/x3d+vrml" +"x3dvz", "model/x3d+vrml" +"x3dz", "model/x3d+xml" +"xaml", "application/xaml+xml" +"xap", "application/x-silverlight-app" +"xar", "application/vnd.xara" +"xbap", "application/x-ms-xbap" +"xbd", "application/vnd.fujixerox.docuworks.binder" +"xbm", "image/x-xbitmap" +"xdf", "application/xcap-diff+xml" +"xdm", "application/vnd.syncml.dm+xml" +"xdp", "application/vnd.adobe.xdp+xml" +"xdssc", "application/dssc+xml" +"xdw", "application/vnd.fujixerox.docuworks" +"xenc", "application/xenc+xml" +"xer", "application/patch-ops-error+xml" +"xfdf", "application/vnd.adobe.xfdf" +"xfdl", "application/vnd.xfdl" +"xht", "application/xhtml+xml" +"xhtml", "application/xhtml+xml" +"xhvml", "application/xv+xml" +"xif", "image/vnd.xiff" +"xla", "application/vnd.ms-excel" +"xlam", "application/vnd.ms-excel.addin.macroenabled.12" +"xlc", "application/vnd.ms-excel" +"xlf", "application/x-xliff+xml" +"xlm", "application/vnd.ms-excel" +"xls", "application/vnd.ms-excel" +"xlsb", "application/vnd.ms-excel.sheet.binary.macroenabled.12" +"xlsm", "application/vnd.ms-excel.sheet.macroenabled.12" +"xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" +"xlt", "application/vnd.ms-excel" +"xltm", "application/vnd.ms-excel.template.macroenabled.12" +"xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" +"xlw", "application/vnd.ms-excel" +"xm", "audio/xm" +"xml", "application/xml" +"xo", "application/vnd.olpc-sugar" +"xop", "application/xop+xml" +"xpi", "application/x-xpinstall" +"xpl", "application/xproc+xml" +"xpm", "image/x-xpixmap" +"xpr", "application/vnd.is-xpr" +"xps", "application/vnd.ms-xpsdocument" +"xpw", "application/vnd.intercon.formnet" +"xpx", "application/vnd.intercon.formnet" +"xsl", "application/xml" +"xslt", "application/xslt+xml" +"xsm", "application/vnd.syncml+xml" +"xspf", "application/xspf+xml" +"xul", "application/vnd.mozilla.xul+xml" +"xvm", "application/xv+xml" +"xvml", "application/xv+xml" +"xwd", "image/x-xwindowdump" +"xyz", "chemical/x-xyz" +"xz", "application/x-xz" +"yang", "application/yang" +"yin", "application/yin+xml" +"z1", "application/x-zmachine" +"z2", "application/x-zmachine" +"z3", "application/x-zmachine" +"z4", "application/x-zmachine" +"z5", "application/x-zmachine" +"z6", "application/x-zmachine" +"z7", "application/x-zmachine" +"z8", "application/x-zmachine" +"zaz", "application/vnd.zzazz.deck+xml" +"zip", "application/zip" +"zir", "application/vnd.zul" +"zirz", "application/vnd.zul" +"zmm", "application/vnd.handheld-entertainment+xml" +%% +const char *extension_to_mime_type(const char *extension, size_t extension_len) { + const auto &result = search_extension(extension, extension_len); + if (result == nullptr) { + return nullptr; + } + + return result->mime_type; +} diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.cpp b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.cpp new file mode 100644 index 0000000000..77af524d83 --- /dev/null +++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.cpp @@ -0,0 +1,3031 @@ +/* ANSI-C code produced by gperf version 3.1 */ +/* Command-line: 'W:\\Test\\td\\vcpkg\\installed\\x64-windows\\tools\\gperf.exe' -m100 --output-file=auto/mime_type_to_extension.cpp auto/mime_type_to_extension.gperf */ +/* Computed positions: -k'1,6-7,9-10,13-18,20,23,25-26,31,36,$' */ + +#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ + && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ + && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ + && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ + && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ + && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ + && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ + && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \ + && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \ + && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \ + && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \ + && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \ + && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \ + && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \ + && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \ + && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \ + && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \ + && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \ + && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \ + && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \ + && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \ + && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \ + && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) +/* The character set is not based on ISO-646. */ +#error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gperf@gnu.org>." +#endif + +#line 12 "auto/mime_type_to_extension.gperf" +struct mime_type_and_extension { + const char *mime_type; + const char *extension; +}; +#include <string.h> +/* maximum key range = 4605, duplicates = 0 */ + +#ifndef GPERF_DOWNCASE +#define GPERF_DOWNCASE 1 +static unsigned char gperf_downcase[256] = + { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255 + }; +#endif + +#ifndef GPERF_CASE_STRCMP +#define GPERF_CASE_STRCMP 1 +static int +gperf_case_strcmp (register const char *s1, register const char *s2) +{ + for (;;) + { + unsigned char c1 = gperf_downcase[(unsigned char)*s1++]; + unsigned char c2 = gperf_downcase[(unsigned char)*s2++]; + if (c1 != 0 && c1 == c2) + continue; + return (int)c1 - (int)c2; + } +} +#endif + +#ifdef __GNUC__ +__inline +#else +#ifdef __cplusplus +inline +#endif +#endif +static unsigned int +mime_type_hash (register const char *str, register size_t len) +{ + static const unsigned short asso_values[] = + { + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 885, 4686, 246, 74, 610, 13, 13, + 208, 32, 14, 17, 23, 15, 12, 12, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 15, 927, 27, 48, 15, + 336, 654, 914, 13, 766, 1405, 205, 14, 12, 14, + 13, 30, 37, 12, 22, 755, 34, 1200, 156, 1446, + 392, 4686, 4686, 4686, 4686, 4686, 4686, 15, 927, 27, + 48, 15, 336, 654, 914, 13, 766, 1405, 205, 14, + 12, 14, 13, 30, 37, 12, 22, 755, 34, 1200, + 156, 1446, 392, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, 4686, + 4686, 4686, 4686, 4686, 4686, 4686 + }; + register unsigned int hval = len; + + switch (hval) + { + default: + hval += asso_values[(unsigned char)str[35]]; + /*FALLTHROUGH*/ + case 35: + case 34: + case 33: + case 32: + case 31: + hval += asso_values[(unsigned char)str[30]]; + /*FALLTHROUGH*/ + case 30: + case 29: + case 28: + case 27: + case 26: + hval += asso_values[(unsigned char)str[25]]; + /*FALLTHROUGH*/ + case 25: + hval += asso_values[(unsigned char)str[24]]; + /*FALLTHROUGH*/ + case 24: + case 23: + hval += asso_values[(unsigned char)str[22]]; + /*FALLTHROUGH*/ + case 22: + case 21: + case 20: + hval += asso_values[(unsigned char)str[19]]; + /*FALLTHROUGH*/ + case 19: + case 18: + hval += asso_values[(unsigned char)str[17]]; + /*FALLTHROUGH*/ + case 17: + hval += asso_values[(unsigned char)str[16]]; + /*FALLTHROUGH*/ + case 16: + hval += asso_values[(unsigned char)str[15]]; + /*FALLTHROUGH*/ + case 15: + hval += asso_values[(unsigned char)str[14]]; + /*FALLTHROUGH*/ + case 14: + hval += asso_values[(unsigned char)str[13]]; + /*FALLTHROUGH*/ + case 13: + hval += asso_values[(unsigned char)str[12]]; + /*FALLTHROUGH*/ + case 12: + case 11: + case 10: + hval += asso_values[(unsigned char)str[9]]; + /*FALLTHROUGH*/ + case 9: + hval += asso_values[(unsigned char)str[8]]; + /*FALLTHROUGH*/ + case 8: + case 7: + hval += asso_values[(unsigned char)str[6]]; + /*FALLTHROUGH*/ + case 6: + hval += asso_values[(unsigned char)str[5]]; + /*FALLTHROUGH*/ + case 5: + case 4: + case 3: + case 2: + case 1: + hval += asso_values[(unsigned char)str[0]]; + break; + } + return hval + asso_values[(unsigned char)str[len - 1]]; +} + +const struct mime_type_and_extension * +search_mime_type (register const char *str, register size_t len) +{ + enum + { + TOTAL_KEYWORDS = 779, + MIN_WORD_LENGTH = 7, + MAX_WORD_LENGTH = 73, + MIN_HASH_VALUE = 81, + MAX_HASH_VALUE = 4685 + }; + + static const struct mime_type_and_extension wordlist[] = + { + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 716 "auto/mime_type_to_extension.gperf" + {"text/css", "css"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 717 "auto/mime_type_to_extension.gperf" + {"text/csv", "csv"}, + {"",nullptr}, +#line 719 "auto/mime_type_to_extension.gperf" + {"text/n3", "n3"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 65 "auto/mime_type_to_extension.gperf" + {"application/mp4", "mp4s"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 715 "auto/mime_type_to_extension.gperf" + {"text/calendar", "ics"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 110 "auto/mime_type_to_extension.gperf" + {"application/sdp", "sdp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 69 "auto/mime_type_to_extension.gperf" + {"application/oda", "oda"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 73 "auto/mime_type_to_extension.gperf" + {"application/onenote", "onetoc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 54 "auto/mime_type_to_extension.gperf" + {"application/marc", "mrc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 728 "auto/mime_type_to_extension.gperf" + {"text/vcard", "vcard"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 90 "auto/mime_type_to_extension.gperf" + {"application/postscript", "ai"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 33 "auto/mime_type_to_extension.gperf" + {"application/ecmascript", "es"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 720 "auto/mime_type_to_extension.gperf" + {"text/plain", "txt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 36 "auto/mime_type_to_extension.gperf" + {"application/exi", "exi"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 74 "auto/mime_type_to_extension.gperf" + {"application/oxps", "oxps"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 323 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-ims", "ims"}, + {"",nullptr}, {"",nullptr}, +#line 387 "auto/mime_type_to_extension.gperf" + {"application/vnd.palm", "pdb"}, +#line 410 "auto/mime_type_to_extension.gperf" + {"application/vnd.sema", "sema"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 194 "auto/mime_type_to_extension.gperf" + {"application/vnd.enliven", "nml"}, +#line 385 "auto/mime_type_to_extension.gperf" + {"application/vnd.osgi.dp", "dp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 260 "auto/mime_type_to_extension.gperf" + {"application/vnd.intergeo", "i2g"}, +#line 185 "auto/mime_type_to_extension.gperf" + {"application/vnd.dna", "dna"}, +#line 459 "auto/mime_type_to_extension.gperf" + {"application/vnd.visio", "vsd"}, + {"",nullptr}, {"",nullptr}, +#line 124 "auto/mime_type_to_extension.gperf" + {"application/timestamped-data", "tsd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 340 "auto/mime_type_to_extension.gperf" + {"application/vnd.mseq", "mseq"}, + {"",nullptr}, +#line 296 "auto/mime_type_to_extension.gperf" + {"application/vnd.mcd", "mcd"}, +#line 64 "auto/mime_type_to_extension.gperf" + {"application/mp21", "m21"}, + {"",nullptr}, +#line 388 "auto/mime_type_to_extension.gperf" + {"application/vnd.pawaafile", "paw"}, + {"",nullptr}, +#line 442 "auto/mime_type_to_extension.gperf" + {"application/vnd.svd", "svd"}, + {"",nullptr}, +#line 266 "auto/mime_type_to_extension.gperf" + {"application/vnd.isac.fcs", "fcs"}, + {"",nullptr}, {"",nullptr}, +#line 133 "auto/mime_type_to_extension.gperf" + {"application/vnd.acucorp", "atc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 452 "auto/mime_type_to_extension.gperf" + {"application/vnd.trueapp", "tra"}, + {"",nullptr}, {"",nullptr}, +#line 738 "auto/mime_type_to_extension.gperf" + {"text/vnd.in3d.spot", "spot"}, +#line 178 "auto/mime_type_to_extension.gperf" + {"application/vnd.dart", "dart"}, +#line 183 "auto/mime_type_to_extension.gperf" + {"application/vnd.dece.zip", "uvz"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 328 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-powerpoint", "ppt"}, + {"",nullptr}, {"",nullptr}, +#line 325 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-officetheme", "thmx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 256 "auto/mime_type_to_extension.gperf" + {"application/vnd.immervision-ivp", "ivp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 411 "auto/mime_type_to_extension.gperf" + {"application/vnd.semd", "semd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 180 "auto/mime_type_to_extension.gperf" + {"application/vnd.dece.data", "uvf"}, + {"",nullptr}, {"",nullptr}, +#line 165 "auto/mime_type_to_extension.gperf" + {"application/vnd.commonspace", "csp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 297 "auto/mime_type_to_extension.gperf" + {"application/vnd.medcalcdata", "mc1"}, + {"",nullptr}, {"",nullptr}, +#line 363 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.image", "odi"}, +#line 450 "auto/mime_type_to_extension.gperf" + {"application/vnd.trid.tpt", "tpt"}, + {"",nullptr}, {"",nullptr}, +#line 365 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.presentation", "odp"}, + {"",nullptr}, {"",nullptr}, +#line 396 "auto/mime_type_to_extension.gperf" + {"application/vnd.proteus.magazine", "mgz"}, +#line 197 "auto/mime_type_to_extension.gperf" + {"application/vnd.epson.quickanime", "qam"}, +#line 364 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.image-template", "oti"}, +#line 129 "auto/mime_type_to_extension.gperf" + {"application/vnd.3m.post-it-notes", "pwn"}, + {"",nullptr}, +#line 367 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.spreadsheet", "ods"}, +#line 305 "auto/mime_type_to_extension.gperf" + {"application/vnd.mobius.dis", "dis"}, +#line 368 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.spreadsheet-template", "ots"}, +#line 369 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.text", "odt"}, +#line 366 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.presentation-template", "otp"}, +#line 371 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.text-template", "ott"}, + {"",nullptr}, {"",nullptr}, +#line 398 "auto/mime_type_to_extension.gperf" + {"application/vnd.pvi.ptid1", "ptid"}, +#line 356 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.chart", "odc"}, + {"",nullptr}, +#line 357 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.chart-template", "otc"}, + {"",nullptr}, {"",nullptr}, +#line 448 "auto/mime_type_to_extension.gperf" + {"application/vnd.tcpdump.pcap", "pcap"}, + {"",nullptr}, +#line 419 "auto/mime_type_to_extension.gperf" + {"application/vnd.smart.teacher", "teacher"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 352 "auto/mime_type_to_extension.gperf" + {"application/vnd.nokia.radio-presets", "rpss"}, + {"",nullptr}, {"",nullptr}, +#line 370 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.text-master", "odm"}, +#line 358 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.database", "odb"}, +#line 425 "auto/mime_type_to_extension.gperf" + {"application/vnd.stardivision.impress", "sdd"}, +#line 423 "auto/mime_type_to_extension.gperf" + {"application/vnd.stardivision.calc", "sdc"}, +#line 326 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-pki.seccat", "cat"}, +#line 743 "auto/mime_type_to_extension.gperf" + {"text/x-c", "c"}, +#line 351 "auto/mime_type_to_extension.gperf" + {"application/vnd.nokia.radio-preset", "rpst"}, + {"",nullptr}, +#line 422 "auto/mime_type_to_extension.gperf" + {"application/vnd.spotfire.sfs", "sfs"}, +#line 429 "auto/mime_type_to_extension.gperf" + {"application/vnd.stepmania.package", "smzip"}, +#line 451 "auto/mime_type_to_extension.gperf" + {"application/vnd.triscape.mxs", "mxs"}, +#line 182 "auto/mime_type_to_extension.gperf" + {"application/vnd.dece.unspecified", "uvx"}, + {"",nullptr}, +#line 131 "auto/mime_type_to_extension.gperf" + {"application/vnd.accpac.simply.imp", "imp"}, +#line 152 "auto/mime_type_to_extension.gperf" + {"application/vnd.astraea-software.iota", "iota"}, + {"",nullptr}, +#line 130 "auto/mime_type_to_extension.gperf" + {"application/vnd.accpac.simply.aso", "aso"}, + {"",nullptr}, {"",nullptr}, +#line 470 "auto/mime_type_to_extension.gperf" + {"application/vnd.xara", "xar"}, +#line 742 "auto/mime_type_to_extension.gperf" + {"text/x-asm", "asm"}, +#line 190 "auto/mime_type_to_extension.gperf" + {"application/vnd.dvb.ait", "ait"}, +#line 168 "auto/mime_type_to_extension.gperf" + {"application/vnd.crick.clicker", "clkx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 430 "auto/mime_type_to_extension.gperf" + {"application/vnd.stepmania.stepchart", "sm"}, + {"",nullptr}, +#line 392 "auto/mime_type_to_extension.gperf" + {"application/vnd.pmi.widget", "wg"}, + {"",nullptr}, +#line 458 "auto/mime_type_to_extension.gperf" + {"application/vnd.vcx", "vcx"}, + {"",nullptr}, {"",nullptr}, +#line 427 "auto/mime_type_to_extension.gperf" + {"application/vnd.stardivision.writer", "sdw"}, +#line 265 "auto/mime_type_to_extension.gperf" + {"application/vnd.is-xpr", "xpr"}, + {"",nullptr}, {"",nullptr}, +#line 404 "auto/mime_type_to_extension.gperf" + {"application/vnd.rim.cod", "cod"}, + {"",nullptr}, +#line 170 "auto/mime_type_to_extension.gperf" + {"application/vnd.crick.clicker.palette", "clkp"}, + {"",nullptr}, +#line 421 "auto/mime_type_to_extension.gperf" + {"application/vnd.spotfire.dxp", "dxp"}, +#line 171 "auto/mime_type_to_extension.gperf" + {"application/vnd.crick.clicker.template", "clkt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 68 "auto/mime_type_to_extension.gperf" + {"application/octet-stream", "bin"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 27 "auto/mime_type_to_extension.gperf" + {"application/cdmi-queue", "cdmiq"}, + {"",nullptr}, {"",nullptr}, +#line 391 "auto/mime_type_to_extension.gperf" + {"application/vnd.picsel", "efif"}, +#line 750 "auto/mime_type_to_extension.gperf" + {"text/x-setext", "etx"}, +#line 324 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-lrm", "lrm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 754 "auto/mime_type_to_extension.gperf" + {"text/x-vcard", "vcf"}, +#line 191 "auto/mime_type_to_extension.gperf" + {"application/vnd.dvb.service", "svc"}, +#line 744 "auto/mime_type_to_extension.gperf" + {"text/x-fortran", "f"}, + {"",nullptr}, +#line 607 "auto/mime_type_to_extension.gperf" + {"application/zip", "zip"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 111 "auto/mime_type_to_extension.gperf" + {"application/set-payment-initiation", "setpay"}, +#line 316 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-excel", "xls"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 25 "auto/mime_type_to_extension.gperf" + {"application/cdmi-domain", "cdmid"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 18 "auto/mime_type_to_extension.gperf" + {"application/applixware", "aw"}, + {"",nullptr}, +#line 52 "auto/mime_type_to_extension.gperf" + {"application/mac-compactpro", "cpt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 540 "auto/mime_type_to_extension.gperf" + {"application/x-mie", "mie"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 132 "auto/mime_type_to_extension.gperf" + {"application/vnd.acucobol", "acu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 198 "auto/mime_type_to_extension.gperf" + {"application/vnd.epson.salt", "slt"}, +#line 516 "auto/mime_type_to_extension.gperf" + {"application/x-eva", "eva"}, + {"",nullptr}, {"",nullptr}, +#line 505 "auto/mime_type_to_extension.gperf" + {"application/x-cpio", "cpio"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 729 "auto/mime_type_to_extension.gperf" + {"text/vnd.curl", "curl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 24 "auto/mime_type_to_extension.gperf" + {"application/cdmi-container", "cdmic"}, + {"",nullptr}, +#line 112 "auto/mime_type_to_extension.gperf" + {"application/set-registration-initiation", "setreg"}, +#line 161 "auto/mime_type_to_extension.gperf" + {"application/vnd.cloanto.rp9", "rp9"}, +#line 547 "auto/mime_type_to_extension.gperf" + {"application/x-msaccess", "mdb"}, + {"",nullptr}, {"",nullptr}, +#line 167 "auto/mime_type_to_extension.gperf" + {"application/vnd.cosmocaller", "cmc"}, + {"",nullptr}, +#line 510 "auto/mime_type_to_extension.gperf" + {"application/x-doom", "wad"}, + {"",nullptr}, {"",nullptr}, +#line 514 "auto/mime_type_to_extension.gperf" + {"application/x-dvi", "dvi"}, + {"",nullptr}, +#line 577 "auto/mime_type_to_extension.gperf" + {"application/x-tads", "gam"}, +#line 578 "auto/mime_type_to_extension.gperf" + {"application/x-tar", "tar"}, + {"",nullptr}, +#line 159 "auto/mime_type_to_extension.gperf" + {"application/vnd.cinderella", "cdy"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 332 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-powerpoint.slideshow.macroenabled.12", "ppsm"}, +#line 574 "auto/mime_type_to_extension.gperf" + {"application/x-sv4cpio", "sv4cpio"}, + {"",nullptr}, {"",nullptr}, +#line 330 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-powerpoint.presentation.macroenabled.12", "pptm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 753 "auto/mime_type_to_extension.gperf" + {"text/x-vcalendar", "vcs"}, +#line 333 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-powerpoint.template.macroenabled.12", "potm"}, + {"",nullptr}, +#line 303 "auto/mime_type_to_extension.gperf" + {"application/vnd.mif", "mif"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 575 "auto/mime_type_to_extension.gperf" + {"application/x-sv4crc", "sv4crc"}, +#line 300 "auto/mime_type_to_extension.gperf" + {"application/vnd.mfmp", "mfm"}, +#line 405 "auto/mime_type_to_extension.gperf" + {"application/vnd.rn-realmedia", "rm"}, + {"",nullptr}, {"",nullptr}, +#line 309 "auto/mime_type_to_extension.gperf" + {"application/vnd.mobius.plc", "plc"}, +#line 461 "auto/mime_type_to_extension.gperf" + {"application/vnd.vsf", "vsf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 646 "auto/mime_type_to_extension.gperf" + {"font/collection", "ttc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 747 "auto/mime_type_to_extension.gperf" + {"text/x-opml", "opml"}, + {"",nullptr}, {"",nullptr}, +#line 664 "auto/mime_type_to_extension.gperf" + {"image/sgi", "sgi"}, +#line 79 "auto/mime_type_to_extension.gperf" + {"application/pics-rules", "prf"}, +#line 315 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-cab-compressed", "cab"}, +#line 551 "auto/mime_type_to_extension.gperf" + {"application/x-msdownload", "exe"}, +#line 614 "auto/mime_type_to_extension.gperf" + {"audio/s3m", "s3m"}, + {"",nullptr}, +#line 611 "auto/mime_type_to_extension.gperf" + {"audio/mp4", "m4a"}, + {"",nullptr}, +#line 331 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-powerpoint.slide.macroenabled.12", "sldm"}, +#line 598 "auto/mime_type_to_extension.gperf" + {"application/xml", "xml"}, +#line 509 "auto/mime_type_to_extension.gperf" + {"application/x-director", "dir"}, +#line 329 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-powerpoint.addin.macroenabled.12", "ppam"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 702 "auto/mime_type_to_extension.gperf" + {"model/iges", "igs"}, +#line 652 "auto/mime_type_to_extension.gperf" + {"image/cgm", "cgm"}, +#line 401 "auto/mime_type_to_extension.gperf" + {"application/vnd.recordare.musicxml", "mxl"}, + {"",nullptr}, {"",nullptr}, +#line 320 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-excel.template.macroenabled.12", "xltm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 764 "auto/mime_type_to_extension.gperf" + {"video/mp4", "mp4"}, +#line 299 "auto/mime_type_to_extension.gperf" + {"application/vnd.mfer", "mwf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 608 "auto/mime_type_to_extension.gperf" + {"audio/adpcm", "adp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 647 "auto/mime_type_to_extension.gperf" + {"font/otf", "otf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 610 "auto/mime_type_to_extension.gperf" + {"audio/midi", "midi"}, +#line 648 "auto/mime_type_to_extension.gperf" + {"font/ttf", "ttf"}, +#line 755 "auto/mime_type_to_extension.gperf" + {"video/3gpp", "3gp"}, +#line 409 "auto/mime_type_to_extension.gperf" + {"application/vnd.seemail", "see"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 319 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-excel.sheet.macroenabled.12", "xlsm"}, + {"",nullptr}, {"",nullptr}, +#line 317 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-excel.addin.macroenabled.12", "xlam"}, + {"",nullptr}, {"",nullptr}, +#line 359 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.formula", "odf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 375 "auto/mime_type_to_extension.gperf" + {"application/vnd.openofficeorg.extension", "oxt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 360 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.formula-template", "odft"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 318 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-excel.sheet.binary.macroenabled.12", "xlsb"}, + {"",nullptr}, {"",nullptr}, +#line 208 "auto/mime_type_to_extension.gperf" + {"application/vnd.framemaker", "fm"}, +#line 107 "auto/mime_type_to_extension.gperf" + {"application/scvp-cv-response", "scs"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 109 "auto/mime_type_to_extension.gperf" + {"application/scvp-vp-response", "spp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 205 "auto/mime_type_to_extension.gperf" + {"application/vnd.fdsn.seed", "seed"}, +#line 259 "auto/mime_type_to_extension.gperf" + {"application/vnd.intercon.formnet", "xpw"}, +#line 767 "auto/mime_type_to_extension.gperf" + {"video/quicktime", "mov"}, + {"",nullptr}, +#line 43 "auto/mime_type_to_extension.gperf" + {"application/ipfix", "ipfix"}, + {"",nullptr}, +#line 550 "auto/mime_type_to_extension.gperf" + {"application/x-msclip", "clp"}, +#line 482 "auto/mime_type_to_extension.gperf" + {"application/voicexml+xml", "vxml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 106 "auto/mime_type_to_extension.gperf" + {"application/scvp-cv-request", "scq"}, + {"",nullptr}, +#line 204 "auto/mime_type_to_extension.gperf" + {"application/vnd.fdsn.mseed", "mseed"}, +#line 746 "auto/mime_type_to_extension.gperf" + {"text/x-nfo", "nfo"}, +#line 737 "auto/mime_type_to_extension.gperf" + {"text/vnd.in3d.3dml", "3dml"}, +#line 553 "auto/mime_type_to_extension.gperf" + {"application/x-msmetafile", "wmf"}, + {"",nullptr}, +#line 108 "auto/mime_type_to_extension.gperf" + {"application/scvp-vp-request", "spq"}, +#line 639 "auto/mime_type_to_extension.gperf" + {"audio/xm", "xm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 557 "auto/mime_type_to_extension.gperf" + {"application/x-msterminal", "trm"}, +#line 37 "auto/mime_type_to_extension.gperf" + {"application/font-tdpfr", "pfr"}, +#line 149 "auto/mime_type_to_extension.gperf" + {"application/vnd.apple.installer+xml", "mpkg"}, +#line 556 "auto/mime_type_to_extension.gperf" + {"application/x-msschedule", "scd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 308 "auto/mime_type_to_extension.gperf" + {"application/vnd.mobius.msl", "msl"}, + {"",nullptr}, +#line 708 "auto/mime_type_to_extension.gperf" + {"model/vnd.mts", "mts"}, +#line 619 "auto/mime_type_to_extension.gperf" + {"audio/vnd.dts", "dts"}, + {"",nullptr}, +#line 626 "auto/mime_type_to_extension.gperf" + {"audio/vnd.rip", "rip"}, + {"",nullptr}, {"",nullptr}, +#line 327 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-pki.stl", "stl"}, +#line 618 "auto/mime_type_to_extension.gperf" + {"audio/vnd.dra", "dra"}, + {"",nullptr}, {"",nullptr}, +#line 117 "auto/mime_type_to_extension.gperf" + {"application/srgs", "gram"}, + {"",nullptr}, {"",nullptr}, +#line 104 "auto/mime_type_to_extension.gperf" + {"application/rtf", "rtf"}, + {"",nullptr}, +#line 76 "auto/mime_type_to_extension.gperf" + {"application/pdf", "pdf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 675 "auto/mime_type_to_extension.gperf" + {"image/vnd.fst", "fst"}, + {"",nullptr}, +#line 751 "auto/mime_type_to_extension.gperf" + {"text/x-sfv", "sfv"}, +#line 691 "auto/mime_type_to_extension.gperf" + {"image/x-pict", "pic"}, + {"",nullptr}, {"",nullptr}, +#line 599 "auto/mime_type_to_extension.gperf" + {"application/xml-dtd", "dtd"}, +#line 688 "auto/mime_type_to_extension.gperf" + {"image/x-icon", "ico"}, + {"",nullptr}, +#line 588 "auto/mime_type_to_extension.gperf" + {"application/x-x509-ca-cert", "der"}, +#line 549 "auto/mime_type_to_extension.gperf" + {"application/x-mscardfile", "crd"}, + {"",nullptr}, +#line 402 "auto/mime_type_to_extension.gperf" + {"application/vnd.recordare.musicxml+xml", "musicxml"}, +#line 628 "auto/mime_type_to_extension.gperf" + {"audio/x-aac", "aac"}, + {"",nullptr}, {"",nullptr}, +#line 580 "auto/mime_type_to_extension.gperf" + {"application/x-tex", "tex"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 535 "auto/mime_type_to_extension.gperf" + {"application/x-install-instructions", "install"}, +#line 774 "auto/mime_type_to_extension.gperf" + {"video/vnd.fvt", "fvt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 347 "auto/mime_type_to_extension.gperf" + {"application/vnd.noblenet-sealer", "nns"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 635 "auto/mime_type_to_extension.gperf" + {"audio/x-ms-wma", "wma"}, + {"",nullptr}, +#line 788 "auto/mime_type_to_extension.gperf" + {"video/x-ms-wm", "wm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 794 "auto/mime_type_to_extension.gperf" + {"video/x-smv", "smv"}, + {"",nullptr}, +#line 783 "auto/mime_type_to_extension.gperf" + {"video/x-m4v", "m4v"}, +#line 748 "auto/mime_type_to_extension.gperf" + {"text/x-pascal", "pas"}, + {"",nullptr}, +#line 778 "auto/mime_type_to_extension.gperf" + {"video/vnd.vivo", "viv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 543 "auto/mime_type_to_extension.gperf" + {"application/x-ms-shortcut", "lnk"}, + {"",nullptr}, +#line 684 "auto/mime_type_to_extension.gperf" + {"image/x-3ds", "3ds"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 542 "auto/mime_type_to_extension.gperf" + {"application/x-ms-application", "application"}, +#line 301 "auto/mime_type_to_extension.gperf" + {"application/vnd.micrografx.flo", "flo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 377 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.presentationml.slide", "sldx"}, +#line 254 "auto/mime_type_to_extension.gperf" + {"application/vnd.iccprofile", "icc"}, +#line 381 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx"}, +#line 379 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.presentationml.template", "potx"}, +#line 376 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx"}, +#line 383 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx"}, +#line 380 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 428 "auto/mime_type_to_extension.gperf" + {"application/vnd.stardivision.writer-global", "sgl"}, +#line 382 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx"}, + {"",nullptr}, {"",nullptr}, +#line 48 "auto/mime_type_to_extension.gperf" + {"application/json", "json"}, + {"",nullptr}, +#line 538 "auto/mime_type_to_extension.gperf" + {"application/x-latex", "latex"}, + {"",nullptr}, {"",nullptr}, +#line 756 "auto/mime_type_to_extension.gperf" + {"video/3gpp2", "3g2"}, +#line 789 "auto/mime_type_to_extension.gperf" + {"video/x-ms-wmv", "wmv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 792 "auto/mime_type_to_extension.gperf" + {"video/x-msvideo", "avi"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 489 "auto/mime_type_to_extension.gperf" + {"application/x-ace-compressed", "ace"}, +#line 67 "auto/mime_type_to_extension.gperf" + {"application/mxf", "mxf"}, + {"",nullptr}, {"",nullptr}, +#line 525 "auto/mime_type_to_extension.gperf" + {"application/x-font-type1", "pfa"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 570 "auto/mime_type_to_extension.gperf" + {"application/x-sql", "sql"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 285 "auto/mime_type_to_extension.gperf" + {"application/vnd.las.las+xml", "lasxml"}, + {"",nullptr}, +#line 579 "auto/mime_type_to_extension.gperf" + {"application/x-tcl", "tcl"}, +#line 546 "auto/mime_type_to_extension.gperf" + {"application/x-ms-xbap", "xbap"}, +#line 374 "auto/mime_type_to_extension.gperf" + {"application/vnd.oma.dd2+xml", "dd2"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 345 "auto/mime_type_to_extension.gperf" + {"application/vnd.nitf", "ntf"}, +#line 418 "auto/mime_type_to_extension.gperf" + {"application/vnd.smaf", "mmf"}, +#line 412 "auto/mime_type_to_extension.gperf" + {"application/vnd.semf", "semf"}, +#line 564 "auto/mime_type_to_extension.gperf" + {"application/x-rar-compressed", "rar"}, + {"",nullptr}, +#line 527 "auto/mime_type_to_extension.gperf" + {"application/x-freearc", "arc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 504 "auto/mime_type_to_extension.gperf" + {"application/x-conference", "nsc"}, + {"",nullptr}, {"",nullptr}, +#line 226 "auto/mime_type_to_extension.gperf" + {"application/vnd.geoplan", "g2w"}, + {"",nullptr}, {"",nullptr}, +#line 593 "auto/mime_type_to_extension.gperf" + {"application/x-zmachine", "z1"}, + {"",nullptr}, +#line 690 "auto/mime_type_to_extension.gperf" + {"image/x-pcx", "pcx"}, +#line 686 "auto/mime_type_to_extension.gperf" + {"image/x-cmx", "cmx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 203 "auto/mime_type_to_extension.gperf" + {"application/vnd.fdf", "fdf"}, + {"",nullptr}, {"",nullptr}, +#line 174 "auto/mime_type_to_extension.gperf" + {"application/vnd.ctc-posml", "pml"}, + {"",nullptr}, +#line 390 "auto/mime_type_to_extension.gperf" + {"application/vnd.pg.osasli", "ei6"}, + {"",nullptr}, {"",nullptr}, +#line 227 "auto/mime_type_to_extension.gperf" + {"application/vnd.geospace", "g3w"}, +#line 225 "auto/mime_type_to_extension.gperf" + {"application/vnd.geonext", "gxt"}, +#line 144 "auto/mime_type_to_extension.gperf" + {"application/vnd.amiga.ami", "ami"}, + {"",nullptr}, +#line 199 "auto/mime_type_to_extension.gperf" + {"application/vnd.epson.ssf", "ssf"}, + {"",nullptr}, +#line 196 "auto/mime_type_to_extension.gperf" + {"application/vnd.epson.msf", "msf"}, +#line 195 "auto/mime_type_to_extension.gperf" + {"application/vnd.epson.esf", "esf"}, + {"",nullptr}, {"",nullptr}, +#line 255 "auto/mime_type_to_extension.gperf" + {"application/vnd.igloader", "igl"}, +#line 47 "auto/mime_type_to_extension.gperf" + {"application/javascript", "js"}, + {"",nullptr}, {"",nullptr}, +#line 685 "auto/mime_type_to_extension.gperf" + {"image/x-cmu-raster", "ras"}, + {"",nullptr}, +#line 621 "auto/mime_type_to_extension.gperf" + {"audio/vnd.lucent.voice", "lvp"}, + {"",nullptr}, {"",nullptr}, +#line 699 "auto/mime_type_to_extension.gperf" + {"image/x-xpixmap", "xpm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 302 "auto/mime_type_to_extension.gperf" + {"application/vnd.micrografx.igx", "igx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 349 "auto/mime_type_to_extension.gperf" + {"application/vnd.nokia.n-gage.data", "ngdat"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 128 "auto/mime_type_to_extension.gperf" + {"application/vnd.3gpp2.tcap", "tcap"}, +#line 771 "auto/mime_type_to_extension.gperf" + {"video/vnd.dece.sd", "uvs"}, +#line 770 "auto/mime_type_to_extension.gperf" + {"video/vnd.dece.pd", "uvp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 726 "auto/mime_type_to_extension.gperf" + {"text/turtle", "ttl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 361 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.graphics", "odg"}, +#line 772 "auto/mime_type_to_extension.gperf" + {"video/vnd.dece.video", "uvv"}, +#line 166 "auto/mime_type_to_extension.gperf" + {"application/vnd.contact.cmsg", "cdbcmsg"}, +#line 490 "auto/mime_type_to_extension.gperf" + {"application/x-apple-diskimage", "dmg"}, + {"",nullptr}, +#line 582 "auto/mime_type_to_extension.gperf" + {"application/x-texinfo", "texinfo"}, + {"",nullptr}, +#line 722 "auto/mime_type_to_extension.gperf" + {"text/richtext", "rtx"}, +#line 267 "auto/mime_type_to_extension.gperf" + {"application/vnd.jam", "jam"}, + {"",nullptr}, +#line 148 "auto/mime_type_to_extension.gperf" + {"application/vnd.antix.game-component", "atx"}, + {"",nullptr}, +#line 362 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.graphics-template", "otg"}, + {"",nullptr}, {"",nullptr}, +#line 258 "auto/mime_type_to_extension.gperf" + {"application/vnd.insors.igm", "igm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 269 "auto/mime_type_to_extension.gperf" + {"application/vnd.jisp", "jisp"}, +#line 353 "auto/mime_type_to_extension.gperf" + {"application/vnd.novadigm.edm", "edm"}, + {"",nullptr}, +#line 304 "auto/mime_type_to_extension.gperf" + {"application/vnd.mobius.daf", "daf"}, + {"",nullptr}, {"",nullptr}, +#line 763 "auto/mime_type_to_extension.gperf" + {"video/mj2", "mj2"}, + {"",nullptr}, +#line 341 "auto/mime_type_to_extension.gperf" + {"application/vnd.musician", "mus"}, +#line 355 "auto/mime_type_to_extension.gperf" + {"application/vnd.novadigm.ext", "ext"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 710 "auto/mime_type_to_extension.gperf" + {"model/vrml", "wrl"}, + {"",nullptr}, {"",nullptr}, +#line 228 "auto/mime_type_to_extension.gperf" + {"application/vnd.gmx", "gmx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 725 "auto/mime_type_to_extension.gperf" + {"text/troff", "t"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 674 "auto/mime_type_to_extension.gperf" + {"image/vnd.fpx", "fpx"}, + {"",nullptr}, +#line 207 "auto/mime_type_to_extension.gperf" + {"application/vnd.fluxtime.clip", "ftc"}, +#line 723 "auto/mime_type_to_extension.gperf" + {"text/sgml", "sgml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 384 "auto/mime_type_to_extension.gperf" + {"application/vnd.osgeo.mapguide.package", "mgp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 175 "auto/mime_type_to_extension.gperf" + {"application/vnd.cups-ppd", "ppd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 591 "auto/mime_type_to_extension.gperf" + {"application/x-xpinstall", "xpi"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 678 "auto/mime_type_to_extension.gperf" + {"image/vnd.ms-modi", "mdi"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 634 "auto/mime_type_to_extension.gperf" + {"audio/x-ms-wax", "wax"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 56 "auto/mime_type_to_extension.gperf" + {"application/mathematica", "ma"}, +#line 334 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-project", "mpp"}, + {"",nullptr}, {"",nullptr}, +#line 629 "auto/mime_type_to_extension.gperf" + {"audio/x-aiff", "aif"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 454 "auto/mime_type_to_extension.gperf" + {"application/vnd.uiq.theme", "utz"}, + {"",nullptr}, +#line 790 "auto/mime_type_to_extension.gperf" + {"video/x-ms-wmx", "wmx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 630 "auto/mime_type_to_extension.gperf" + {"audio/x-caf", "caf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 471 "auto/mime_type_to_extension.gperf" + {"application/vnd.xfdl", "xfdl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 179 "auto/mime_type_to_extension.gperf" + {"application/vnd.data-vision.rdz", "rdz"}, +#line 791 "auto/mime_type_to_extension.gperf" + {"video/x-ms-wvx", "wvx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 780 "auto/mime_type_to_extension.gperf" + {"video/x-f4v", "f4v"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 706 "auto/mime_type_to_extension.gperf" + {"model/vnd.gdl", "gdl"}, +#line 28 "auto/mime_type_to_extension.gperf" + {"application/cu-seeme", "cu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 640 "auto/mime_type_to_extension.gperf" + {"chemical/x-cdx", "cdx"}, +#line 31 "auto/mime_type_to_extension.gperf" + {"application/dssc+der", "dssc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 399 "auto/mime_type_to_extension.gperf" + {"application/vnd.quark.quarkxpress", "qxd"}, +#line 77 "auto/mime_type_to_extension.gperf" + {"application/pgp-encrypted", "pgp"}, + {"",nullptr}, {"",nullptr}, +#line 354 "auto/mime_type_to_extension.gperf" + {"application/vnd.novadigm.edx", "edx"}, +#line 310 "auto/mime_type_to_extension.gperf" + {"application/vnd.mobius.txf", "txf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 155 "auto/mime_type_to_extension.gperf" + {"application/vnd.bmi", "bmi"}, + {"",nullptr}, +#line 46 "auto/mime_type_to_extension.gperf" + {"application/java-vm", "class"}, + {"",nullptr}, +#line 29 "auto/mime_type_to_extension.gperf" + {"application/davmount+xml", "davmount"}, + {"",nullptr}, {"",nullptr}, +#line 623 "auto/mime_type_to_extension.gperf" + {"audio/vnd.nuera.ecelp4800", "ecelp4800"}, + {"",nullptr}, +#line 624 "auto/mime_type_to_extension.gperf" + {"audio/vnd.nuera.ecelp7470", "ecelp7470"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 523 "auto/mime_type_to_extension.gperf" + {"application/x-font-snf", "snf"}, +#line 522 "auto/mime_type_to_extension.gperf" + {"application/x-font-pcf", "pcf"}, +#line 521 "auto/mime_type_to_extension.gperf" + {"application/x-font-otf", "otf"}, +#line 625 "auto/mime_type_to_extension.gperf" + {"audio/vnd.nuera.ecelp9600", "ecelp9600"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 524 "auto/mime_type_to_extension.gperf" + {"application/x-font-ttf", "ttf"}, +#line 96 "auto/mime_type_to_extension.gperf" + {"application/resource-lists+xml", "rl"}, + {"",nullptr}, {"",nullptr}, +#line 559 "auto/mime_type_to_extension.gperf" + {"application/x-netcdf", "nc"}, +#line 565 "auto/mime_type_to_extension.gperf" + {"application/x-research-info-systems", "ris"}, +#line 162 "auto/mime_type_to_extension.gperf" + {"application/vnd.clonk.c4group", "c4g"}, + {"",nullptr}, +#line 501 "auto/mime_type_to_extension.gperf" + {"application/x-cfs-compressed", "cfs"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 447 "auto/mime_type_to_extension.gperf" + {"application/vnd.tao.intent-module-archive", "tao"}, + {"",nullptr}, +#line 533 "auto/mime_type_to_extension.gperf" + {"application/x-gtar", "gtar"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 643 "auto/mime_type_to_extension.gperf" + {"chemical/x-cml", "cml"}, + {"",nullptr}, +#line 44 "auto/mime_type_to_extension.gperf" + {"application/java-archive", "jar"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 26 "auto/mime_type_to_extension.gperf" + {"application/cdmi-object", "cdmio"}, + {"",nullptr}, +#line 221 "auto/mime_type_to_extension.gperf" + {"application/vnd.genomatix.tuxedo", "txd"}, + {"",nullptr}, {"",nullptr}, +#line 536 "auto/mime_type_to_extension.gperf" + {"application/x-iso9660-image", "iso"}, + {"",nullptr}, +#line 644 "auto/mime_type_to_extension.gperf" + {"chemical/x-csml", "csml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 139 "auto/mime_type_to_extension.gperf" + {"application/vnd.ahead.space", "ahead"}, +#line 236 "auto/mime_type_to_extension.gperf" + {"application/vnd.groove-tool-message", "gtm"}, +#line 576 "auto/mime_type_to_extension.gperf" + {"application/x-t3vm-image", "t3"}, + {"",nullptr}, +#line 581 "auto/mime_type_to_extension.gperf" + {"application/x-tex-tfm", "tfm"}, +#line 487 "auto/mime_type_to_extension.gperf" + {"application/x-7z-compressed", "7z"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 752 "auto/mime_type_to_extension.gperf" + {"text/x-uuencode", "uu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 186 "auto/mime_type_to_extension.gperf" + {"application/vnd.dolby.mlp", "mlp"}, +#line 724 "auto/mime_type_to_extension.gperf" + {"text/tab-separated-values", "tsv"}, + {"",nullptr}, +#line 232 "auto/mime_type_to_extension.gperf" + {"application/vnd.groove-account", "gac"}, + {"",nullptr}, +#line 237 "auto/mime_type_to_extension.gperf" + {"application/vnd.groove-tool-template", "tpl"}, + {"",nullptr}, {"",nullptr}, +#line 291 "auto/mime_type_to_extension.gperf" + {"application/vnd.lotus-notes", "nsf"}, +#line 176 "auto/mime_type_to_extension.gperf" + {"application/vnd.curl.car", "car"}, +#line 339 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-xpsdocument", "xps"}, +#line 659 "auto/mime_type_to_extension.gperf" + {"image/ief", "ief"}, + {"",nullptr}, {"",nullptr}, +#line 584 "auto/mime_type_to_extension.gperf" + {"application/x-tgsticker", "tgs"}, +#line 238 "auto/mime_type_to_extension.gperf" + {"application/vnd.groove-vcard", "vcg"}, +#line 727 "auto/mime_type_to_extension.gperf" + {"text/uri-list", "uri"}, + {"",nullptr}, +#line 417 "auto/mime_type_to_extension.gperf" + {"application/vnd.simtech-mindmapper", "twd"}, + {"",nullptr}, +#line 72 "auto/mime_type_to_extension.gperf" + {"application/omdoc+xml", "omdoc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 231 "auto/mime_type_to_extension.gperf" + {"application/vnd.grafeq", "gqf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 389 "auto/mime_type_to_extension.gperf" + {"application/vnd.pg.format", "str"}, + {"",nullptr}, +#line 224 "auto/mime_type_to_extension.gperf" + {"application/vnd.geometry-explorer", "gex"}, +#line 372 "auto/mime_type_to_extension.gperf" + {"application/vnd.oasis.opendocument.text-web", "oth"}, + {"",nullptr}, {"",nullptr}, +#line 426 "auto/mime_type_to_extension.gperf" + {"application/vnd.stardivision.math", "smf"}, + {"",nullptr}, +#line 586 "auto/mime_type_to_extension.gperf" + {"application/x-ustar", "ustar"}, + {"",nullptr}, +#line 735 "auto/mime_type_to_extension.gperf" + {"text/vnd.fmi.flexstor", "flx"}, +#line 293 "auto/mime_type_to_extension.gperf" + {"application/vnd.lotus-screencam", "scm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 394 "auto/mime_type_to_extension.gperf" + {"application/vnd.powerbuilder6", "pbd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 631 "auto/mime_type_to_extension.gperf" + {"audio/x-flac", "flac"}, +#line 311 "auto/mime_type_to_extension.gperf" + {"application/vnd.mophun.application", "mpn"}, + {"",nullptr}, {"",nullptr}, +#line 781 "auto/mime_type_to_extension.gperf" + {"video/x-fli", "fli"}, +#line 745 "auto/mime_type_to_extension.gperf" + {"text/x-java-source", "java"}, +#line 58 "auto/mime_type_to_extension.gperf" + {"application/mbox", "mbox"}, +#line 373 "auto/mime_type_to_extension.gperf" + {"application/vnd.olpc-sugar", "xo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 749 "auto/mime_type_to_extension.gperf" + {"text/x-php", "php"}, +#line 145 "auto/mime_type_to_extension.gperf" + {"application/vnd.android.package-archive", "apk"}, + {"",nullptr}, +#line 718 "auto/mime_type_to_extension.gperf" + {"text/html", "html"}, + {"",nullptr}, {"",nullptr}, +#line 435 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.impress", "sxi"}, +#line 251 "auto/mime_type_to_extension.gperf" + {"application/vnd.ibm.modcap", "afp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 782 "auto/mime_type_to_extension.gperf" + {"video/x-flv", "flv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 431 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.calc", "sxc"}, +#line 312 "auto/mime_type_to_extension.gperf" + {"application/vnd.mophun.certificate", "mpc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 150 "auto/mime_type_to_extension.gperf" + {"application/vnd.apple.mpegurl", "m3u8"}, + {"",nullptr}, {"",nullptr}, +#line 436 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.impress.template", "sti"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 122 "auto/mime_type_to_extension.gperf" + {"application/tei+xml", "tei"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 247 "auto/mime_type_to_extension.gperf" + {"application/vnd.hp-pcl", "pcl"}, + {"",nullptr}, +#line 663 "auto/mime_type_to_extension.gperf" + {"image/prs.btif", "btif"}, + {"",nullptr}, {"",nullptr}, +#line 103 "auto/mime_type_to_extension.gperf" + {"application/rss+xml", "rss"}, +#line 59 "auto/mime_type_to_extension.gperf" + {"application/mediaservercontrol+xml", "mscml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 432 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.calc.template", "stc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 714 "auto/mime_type_to_extension.gperf" + {"text/cache-manifest", "appcache"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 592 "auto/mime_type_to_extension.gperf" + {"application/x-xz", "xz"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 762 "auto/mime_type_to_extension.gperf" + {"video/jpm", "jpm"}, + {"",nullptr}, {"",nullptr}, +#line 268 "auto/mime_type_to_extension.gperf" + {"application/vnd.jcp.javame.midlet-rms", "rms"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 601 "auto/mime_type_to_extension.gperf" + {"application/xproc+xml", "xpl"}, +#line 116 "auto/mime_type_to_extension.gperf" + {"application/sparql-results+xml", "srx"}, + {"",nullptr}, {"",nullptr}, +#line 102 "auto/mime_type_to_extension.gperf" + {"application/rsd+xml", "rsd"}, +#line 532 "auto/mime_type_to_extension.gperf" + {"application/x-gramps-xml", "gramps"}, + {"",nullptr}, +#line 233 "auto/mime_type_to_extension.gperf" + {"application/vnd.groove-help", "ghf"}, +#line 672 "auto/mime_type_to_extension.gperf" + {"image/vnd.dxf", "dxf"}, +#line 705 "auto/mime_type_to_extension.gperf" + {"model/vnd.dwf", "dwf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 457 "auto/mime_type_to_extension.gperf" + {"application/vnd.uoml+xml", "uoml"}, + {"",nullptr}, {"",nullptr}, +#line 434 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.draw.template", "std"}, + {"",nullptr}, {"",nullptr}, +#line 66 "auto/mime_type_to_extension.gperf" + {"application/msword", "doc"}, + {"",nullptr}, +#line 253 "auto/mime_type_to_extension.gperf" + {"application/vnd.ibm.secure-container", "sc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 697 "auto/mime_type_to_extension.gperf" + {"image/x-tga", "tga"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 17 "auto/mime_type_to_extension.gperf" + {"application/andrew-inset", "ez"}, + {"",nullptr}, {"",nullptr}, +#line 739 "auto/mime_type_to_extension.gperf" + {"text/vnd.sun.j2me.app-descriptor", "jad"}, + {"",nullptr}, {"",nullptr}, +#line 785 "auto/mime_type_to_extension.gperf" + {"video/x-mng", "mng"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 494 "auto/mime_type_to_extension.gperf" + {"application/x-bcpio", "bcpio"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 732 "auto/mime_type_to_extension.gperf" + {"text/vnd.curl.scurl", "scurl"}, +#line 502 "auto/mime_type_to_extension.gperf" + {"application/x-chat", "chat"}, +#line 731 "auto/mime_type_to_extension.gperf" + {"text/vnd.curl.mcurl", "mcurl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 20 "auto/mime_type_to_extension.gperf" + {"application/atomcat+xml", "atomcat"}, + {"",nullptr}, {"",nullptr}, +#line 449 "auto/mime_type_to_extension.gperf" + {"application/vnd.tmobile-livetv", "tmo"}, +#line 21 "auto/mime_type_to_extension.gperf" + {"application/atomsvc+xml", "atomsvc"}, + {"",nullptr}, {"",nullptr}, +#line 595 "auto/mime_type_to_extension.gperf" + {"application/xcap-diff+xml", "xdf"}, + {"",nullptr}, {"",nullptr}, +#line 567 "auto/mime_type_to_extension.gperf" + {"application/x-shar", "shar"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 786 "auto/mime_type_to_extension.gperf" + {"video/x-ms-asf", "asf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 499 "auto/mime_type_to_extension.gperf" + {"application/x-cbr", "cbr"}, + {"",nullptr}, {"",nullptr}, +#line 641 "auto/mime_type_to_extension.gperf" + {"chemical/x-cif", "cif"}, +#line 264 "auto/mime_type_to_extension.gperf" + {"application/vnd.irepository.package+xml", "irp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 730 "auto/mime_type_to_extension.gperf" + {"text/vnd.curl.dcurl", "dcurl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 206 "auto/mime_type_to_extension.gperf" + {"application/vnd.flographit", "gph"}, + {"",nullptr}, {"",nullptr}, +#line 600 "auto/mime_type_to_extension.gperf" + {"application/xop+xml", "xop"}, + {"",nullptr}, +#line 262 "auto/mime_type_to_extension.gperf" + {"application/vnd.intu.qfx", "qfx"}, +#line 468 "auto/mime_type_to_extension.gperf" + {"application/vnd.wqd", "wqd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 400 "auto/mime_type_to_extension.gperf" + {"application/vnd.realvnc.bed", "bed"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 548 "auto/mime_type_to_extension.gperf" + {"application/x-msbinder", "obd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 495 "auto/mime_type_to_extension.gperf" + {"application/x-bittorrent", "torrent"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 248 "auto/mime_type_to_extension.gperf" + {"application/vnd.hp-pclxl", "pclxl"}, + {"",nullptr}, +#line 529 "auto/mime_type_to_extension.gperf" + {"application/x-gca-compressed", "gca"}, +#line 200 "auto/mime_type_to_extension.gperf" + {"application/vnd.eszigno3+xml", "es3"}, +#line 40 "auto/mime_type_to_extension.gperf" + {"application/gxf", "gxf"}, +#line 83 "auto/mime_type_to_extension.gperf" + {"application/pkcs8", "p8"}, + {"",nullptr}, +#line 642 "auto/mime_type_to_extension.gperf" + {"chemical/x-cmdf", "cmdf"}, +#line 651 "auto/mime_type_to_extension.gperf" + {"image/bmp", "bmp"}, + {"",nullptr}, {"",nullptr}, +#line 793 "auto/mime_type_to_extension.gperf" + {"video/x-sgi-movie", "movie"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 97 "auto/mime_type_to_extension.gperf" + {"application/resource-lists-diff+xml", "rld"}, +#line 89 "auto/mime_type_to_extension.gperf" + {"application/pls+xml", "pls"}, + {"",nullptr}, +#line 441 "auto/mime_type_to_extension.gperf" + {"application/vnd.sus-calendar", "sus"}, + {"",nullptr}, {"",nullptr}, +#line 80 "auto/mime_type_to_extension.gperf" + {"application/pkcs10", "p10"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 406 "auto/mime_type_to_extension.gperf" + {"application/vnd.rn-realmedia-vbr", "rmvb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 508 "auto/mime_type_to_extension.gperf" + {"application/x-dgc-compressed", "dgc"}, +#line 34 "auto/mime_type_to_extension.gperf" + {"application/emma+xml", "emma"}, +#line 655 "auto/mime_type_to_extension.gperf" + {"image/heic", "heic"}, +#line 609 "auto/mime_type_to_extension.gperf" + {"audio/basic", "au"}, + {"",nullptr}, +#line 757 "auto/mime_type_to_extension.gperf" + {"video/h261", "h261"}, +#line 62 "auto/mime_type_to_extension.gperf" + {"application/mets+xml", "mets"}, +#line 759 "auto/mime_type_to_extension.gperf" + {"video/h264", "h264"}, +#line 19 "auto/mime_type_to_extension.gperf" + {"application/atom+xml", "atom"}, + {"",nullptr}, {"",nullptr}, +#line 480 "auto/mime_type_to_extension.gperf" + {"application/vnd.zul", "zir"}, + {"",nullptr}, +#line 760 "auto/mime_type_to_extension.gperf" + {"video/h265", "h265"}, + {"",nullptr}, +#line 519 "auto/mime_type_to_extension.gperf" + {"application/x-font-ghostscript", "gsf"}, + {"",nullptr}, +#line 136 "auto/mime_type_to_extension.gperf" + {"application/vnd.adobe.fxp", "fxp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 22 "auto/mime_type_to_extension.gperf" + {"application/ccxml+xml", "ccxml"}, +#line 134 "auto/mime_type_to_extension.gperf" + {"application/vnd.adobe.air-application-installer-package+zip", "air"}, + {"",nullptr}, {"",nullptr}, +#line 467 "auto/mime_type_to_extension.gperf" + {"application/vnd.wordperfect", "wpd"}, +#line 63 "auto/mime_type_to_extension.gperf" + {"application/mods+xml", "mods"}, +#line 53 "auto/mime_type_to_extension.gperf" + {"application/mads+xml", "mads"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 57 "auto/mime_type_to_extension.gperf" + {"application/mathml+xml", "mathml"}, +#line 424 "auto/mime_type_to_extension.gperf" + {"application/vnd.stardivision.draw", "sda"}, +#line 290 "auto/mime_type_to_extension.gperf" + {"application/vnd.lotus-freelance", "pre"}, +#line 32 "auto/mime_type_to_extension.gperf" + {"application/dssc+xml", "xdssc"}, +#line 758 "auto/mime_type_to_extension.gperf" + {"video/h263", "h263"}, + {"",nullptr}, +#line 322 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-htmlhelp", "chm"}, + {"",nullptr}, {"",nullptr}, +#line 313 "auto/mime_type_to_extension.gperf" + {"application/vnd.mozilla.xul+xml", "xul"}, + {"",nullptr}, {"",nullptr}, +#line 666 "auto/mime_type_to_extension.gperf" + {"image/tiff", "tiff"}, + {"",nullptr}, +#line 55 "auto/mime_type_to_extension.gperf" + {"application/marcxml+xml", "mrcx"}, + {"",nullptr}, +#line 571 "auto/mime_type_to_extension.gperf" + {"application/x-stuffit", "sit"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 151 "auto/mime_type_to_extension.gperf" + {"application/vnd.aristanetworks.swi", "swi"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 181 "auto/mime_type_to_extension.gperf" + {"application/vnd.dece.ttml+xml", "uvt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 407 "auto/mime_type_to_extension.gperf" + {"application/vnd.route66.link66+xml", "link66"}, + {"",nullptr}, {"",nullptr}, +#line 209 "auto/mime_type_to_extension.gperf" + {"application/vnd.frogans.fnc", "fnc"}, +#line 701 "auto/mime_type_to_extension.gperf" + {"message/rfc822", "eml"}, +#line 416 "auto/mime_type_to_extension.gperf" + {"application/vnd.shana.informed.package", "ipk"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 217 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujixerox.ddd", "ddd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 338 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-wpl", "wpl"}, + {"",nullptr}, +#line 414 "auto/mime_type_to_extension.gperf" + {"application/vnd.shana.informed.formtemplate", "itp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 283 "auto/mime_type_to_extension.gperf" + {"application/vnd.koan", "skp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 415 "auto/mime_type_to_extension.gperf" + {"application/vnd.shana.informed.interchange", "iif"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 680 "auto/mime_type_to_extension.gperf" + {"image/vnd.net-fpx", "npx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 413 "auto/mime_type_to_extension.gperf" + {"application/vnd.shana.informed.formdata", "ifm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 777 "auto/mime_type_to_extension.gperf" + {"video/vnd.uvvu.mp4", "uvu"}, + {"",nullptr}, {"",nullptr}, +#line 177 "auto/mime_type_to_extension.gperf" + {"application/vnd.curl.pcurl", "pcurl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 282 "auto/mime_type_to_extension.gperf" + {"application/vnd.kinar", "kne"}, +#line 88 "auto/mime_type_to_extension.gperf" + {"application/pkixcmp", "pki"}, + {"",nullptr}, {"",nullptr}, +#line 503 "auto/mime_type_to_extension.gperf" + {"application/x-chess-pgn", "pgn"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 569 "auto/mime_type_to_extension.gperf" + {"application/x-silverlight-app", "xap"}, +#line 288 "auto/mime_type_to_extension.gperf" + {"application/vnd.lotus-1-2-3", "123"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 604 "auto/mime_type_to_extension.gperf" + {"application/xv+xml", "mxml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 616 "auto/mime_type_to_extension.gperf" + {"audio/vnd.dece.audio", "uva"}, + {"",nullptr}, +#line 596 "auto/mime_type_to_extension.gperf" + {"application/xenc+xml", "xenc"}, + {"",nullptr}, +#line 280 "auto/mime_type_to_extension.gperf" + {"application/vnd.kenameaapp", "htke"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 453 "auto/mime_type_to_extension.gperf" + {"application/vnd.ufdl", "ufd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 93 "auto/mime_type_to_extension.gperf" + {"application/rdf+xml", "rdf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 281 "auto/mime_type_to_extension.gperf" + {"application/vnd.kidspiration", "kia"}, +#line 653 "auto/mime_type_to_extension.gperf" + {"image/g3fax", "g3"}, + {"",nullptr}, +#line 463 "auto/mime_type_to_extension.gperf" + {"application/vnd.wap.wmlc", "wmlc"}, +#line 121 "auto/mime_type_to_extension.gperf" + {"application/ssml+xml", "ssml"}, +#line 114 "auto/mime_type_to_extension.gperf" + {"application/smil+xml", "smi"}, + {"",nullptr}, +#line 682 "auto/mime_type_to_extension.gperf" + {"image/vnd.xiff", "xif"}, +#line 572 "auto/mime_type_to_extension.gperf" + {"application/x-stuffitx", "sitx"}, + {"",nullptr}, +#line 189 "auto/mime_type_to_extension.gperf" + {"application/vnd.ds-keypoint", "kpxx"}, + {"",nullptr}, {"",nullptr}, +#line 558 "auto/mime_type_to_extension.gperf" + {"application/x-mswrite", "wri"}, +#line 50 "auto/mime_type_to_extension.gperf" + {"application/lost+xml", "lostxml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 192 "auto/mime_type_to_extension.gperf" + {"application/vnd.dynageo", "geo"}, + {"",nullptr}, {"",nullptr}, +#line 721 "auto/mime_type_to_extension.gperf" + {"text/prs.lines.tag", "dsc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 455 "auto/mime_type_to_extension.gperf" + {"application/vnd.umajin", "umj"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 587 "auto/mime_type_to_extension.gperf" + {"application/x-wais-source", "src"}, + {"",nullptr}, +#line 120 "auto/mime_type_to_extension.gperf" + {"application/ssdl+xml", "ssdl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 75 "auto/mime_type_to_extension.gperf" + {"application/patch-ops-error+xml", "xer"}, + {"",nullptr}, {"",nullptr}, +#line 469 "auto/mime_type_to_extension.gperf" + {"application/vnd.wt.stf", "stf"}, +#line 173 "auto/mime_type_to_extension.gperf" + {"application/vnd.criticaltools.wbs+xml", "wbs"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 81 "auto/mime_type_to_extension.gperf" + {"application/pkcs7-mime", "p7m"}, + {"",nullptr}, +#line 689 "auto/mime_type_to_extension.gperf" + {"image/x-mrsid-image", "sid"}, + {"",nullptr}, +#line 284 "auto/mime_type_to_extension.gperf" + {"application/vnd.kodak-descriptor", "sse"}, +#line 78 "auto/mime_type_to_extension.gperf" + {"application/pgp-signature", "asc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 497 "auto/mime_type_to_extension.gperf" + {"application/x-bzip", "bz"}, + {"",nullptr}, {"",nullptr}, +#line 583 "auto/mime_type_to_extension.gperf" + {"application/x-tgif", "obj"}, +#line 275 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.kivio", "flw"}, +#line 464 "auto/mime_type_to_extension.gperf" + {"application/vnd.wap.wmlscriptc", "wmlsc"}, +#line 336 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-word.template.macroenabled.12", "dotm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 673 "auto/mime_type_to_extension.gperf" + {"image/vnd.fastbidsheet", "fbs"}, + {"",nullptr}, {"",nullptr}, +#line 257 "auto/mime_type_to_extension.gperf" + {"application/vnd.immervision-ivu", "ivu"}, + {"",nullptr}, +#line 188 "auto/mime_type_to_extension.gperf" + {"application/vnd.dreamfactory", "dfac"}, + {"",nullptr}, +#line 298 "auto/mime_type_to_extension.gperf" + {"application/vnd.mediastation.cdkey", "cdkey"}, +#line 272 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.karbon", "karbon"}, +#line 210 "auto/mime_type_to_extension.gperf" + {"application/vnd.frogans.ltf", "ltf"}, + {"",nullptr}, +#line 335 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-word.document.macroenabled.12", "docm"}, + {"",nullptr}, +#line 101 "auto/mime_type_to_extension.gperf" + {"application/rpki-roa", "roa"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 620 "auto/mime_type_to_extension.gperf" + {"audio/vnd.dts.hd", "dtshd"}, +#line 511 "auto/mime_type_to_extension.gperf" + {"application/x-dtbncx+xml", "ncx"}, + {"",nullptr}, {"",nullptr}, +#line 278 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.kspread", "ksp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 403 "auto/mime_type_to_extension.gperf" + {"application/vnd.rig.cryptonote", "cryptonote"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 636 "auto/mime_type_to_extension.gperf" + {"audio/x-pn-realaudio", "ram"}, +#line 100 "auto/mime_type_to_extension.gperf" + {"application/rpki-manifest", "mft"}, + {"",nullptr}, +#line 277 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.kpresenter", "kpr"}, + {"",nullptr}, +#line 184 "auto/mime_type_to_extension.gperf" + {"application/vnd.denovo.fcselayout-link", "fe_launch"}, + {"",nullptr}, +#line 279 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.kword", "kwd"}, + {"",nullptr}, +#line 169 "auto/mime_type_to_extension.gperf" + {"application/vnd.crick.clicker.keyboard", "clkk"}, +#line 478 "auto/mime_type_to_extension.gperf" + {"application/vnd.yamaha.smaf-phrase", "spf"}, + {"",nullptr}, {"",nullptr}, +#line 49 "auto/mime_type_to_extension.gperf" + {"application/jsonml+json", "jsonml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 477 "auto/mime_type_to_extension.gperf" + {"application/vnd.yamaha.smaf-audio", "saf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 698 "auto/mime_type_to_extension.gperf" + {"image/x-xbitmap", "xbm"}, +#line 115 "auto/mime_type_to_extension.gperf" + {"application/sparql-query", "rq"}, +#line 98 "auto/mime_type_to_extension.gperf" + {"application/rls-services+xml", "rs"}, + {"",nullptr}, +#line 734 "auto/mime_type_to_extension.gperf" + {"text/vnd.fly", "fly"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 475 "auto/mime_type_to_extension.gperf" + {"application/vnd.yamaha.openscoreformat", "osf"}, +#line 223 "auto/mime_type_to_extension.gperf" + {"application/vnd.geogebra.tool", "ggt"}, +#line 768 "auto/mime_type_to_extension.gperf" + {"video/vnd.dece.hd", "uvh"}, +#line 143 "auto/mime_type_to_extension.gperf" + {"application/vnd.americandynamics.acc", "acc"}, +#line 594 "auto/mime_type_to_extension.gperf" + {"application/xaml+xml", "xaml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 602 "auto/mime_type_to_extension.gperf" + {"application/xslt+xml", "xslt"}, + {"",nullptr}, {"",nullptr}, +#line 662 "auto/mime_type_to_extension.gperf" + {"image/png", "png"}, + {"",nullptr}, {"",nullptr}, +#line 613 "auto/mime_type_to_extension.gperf" + {"audio/ogg", "oga"}, + {"",nullptr}, +#line 654 "auto/mime_type_to_extension.gperf" + {"image/gif", "gif"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 677 "auto/mime_type_to_extension.gperf" + {"image/vnd.fujixerox.edmics-rlc", "rlc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 612 "auto/mime_type_to_extension.gperf" + {"audio/mpeg", "mp3"}, + {"",nullptr}, +#line 676 "auto/mime_type_to_extension.gperf" + {"image/vnd.fujixerox.edmics-mmr", "mmr"}, +#line 766 "auto/mime_type_to_extension.gperf" + {"video/ogg", "ogv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 240 "auto/mime_type_to_extension.gperf" + {"application/vnd.handheld-entertainment+xml", "zmm"}, +#line 393 "auto/mime_type_to_extension.gperf" + {"application/vnd.pocketlearn", "plf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 263 "auto/mime_type_to_extension.gperf" + {"application/vnd.ipunplugged.rcprofile", "rcprofile"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 765 "auto/mime_type_to_extension.gperf" + {"video/mpeg", "mpeg"}, + {"",nullptr}, +#line 23 "auto/mime_type_to_extension.gperf" + {"application/cdmi-capability", "cdmia"}, + {"",nullptr}, {"",nullptr}, +#line 617 "auto/mime_type_to_extension.gperf" + {"audio/vnd.digital-winds", "eol"}, +#line 261 "auto/mime_type_to_extension.gperf" + {"application/vnd.intu.qbo", "qbo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 160 "auto/mime_type_to_extension.gperf" + {"application/vnd.claymore", "cla"}, +#line 531 "auto/mime_type_to_extension.gperf" + {"application/x-gnumeric", "gnumeric"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 246 "auto/mime_type_to_extension.gperf" + {"application/vnd.hp-jlyt", "jlt"}, + {"",nullptr}, +#line 292 "auto/mime_type_to_extension.gperf" + {"application/vnd.lotus-organizer", "org"}, + {"",nullptr}, +#line 60 "auto/mime_type_to_extension.gperf" + {"application/metalink+xml", "metalink"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 554 "auto/mime_type_to_extension.gperf" + {"application/x-msmoney", "mny"}, + {"",nullptr}, +#line 85 "auto/mime_type_to_extension.gperf" + {"application/pkix-cert", "cer"}, +#line 633 "auto/mime_type_to_extension.gperf" + {"audio/x-mpegurl", "m3u"}, +#line 515 "auto/mime_type_to_extension.gperf" + {"application/x-envoy", "evy"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 679 "auto/mime_type_to_extension.gperf" + {"image/vnd.ms-photo", "wdp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 252 "auto/mime_type_to_extension.gperf" + {"application/vnd.ibm.rights-management", "irm"}, +#line 638 "auto/mime_type_to_extension.gperf" + {"audio/x-wav", "wav"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 135 "auto/mime_type_to_extension.gperf" + {"application/vnd.adobe.formscentral.fcdt", "fcdt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 498 "auto/mime_type_to_extension.gperf" + {"application/x-bzip2", "bz2"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 222 "auto/mime_type_to_extension.gperf" + {"application/vnd.geogebra.file", "ggb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 603 "auto/mime_type_to_extension.gperf" + {"application/xspf+xml", "xspf"}, + {"",nullptr}, +#line 544 "auto/mime_type_to_extension.gperf" + {"application/x-ms-wmd", "wmd"}, +#line 71 "auto/mime_type_to_extension.gperf" + {"application/ogg", "ogx"}, +#line 483 "auto/mime_type_to_extension.gperf" + {"application/widget", "wgt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 235 "auto/mime_type_to_extension.gperf" + {"application/vnd.groove-injector", "grv"}, + {"",nullptr}, +#line 84 "auto/mime_type_to_extension.gperf" + {"application/pkix-attr-cert", "ac"}, + {"",nullptr}, +#line 378 "auto/mime_type_to_extension.gperf" + {"application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 343 "auto/mime_type_to_extension.gperf" + {"application/vnd.mynfc", "taglet"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 671 "auto/mime_type_to_extension.gperf" + {"image/vnd.dwg", "dwg"}, +#line 466 "auto/mime_type_to_extension.gperf" + {"application/vnd.wolfram.player", "nbp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 769 "auto/mime_type_to_extension.gperf" + {"video/vnd.dece.mobile", "uvm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 245 "auto/mime_type_to_extension.gperf" + {"application/vnd.hp-hps", "hps"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 462 "auto/mime_type_to_extension.gperf" + {"application/vnd.wap.wbxml", "wbxml"}, + {"",nullptr}, {"",nullptr}, +#line 476 "auto/mime_type_to_extension.gperf" + {"application/vnd.yamaha.openscoreformat.osfpvg+xml", "osfpvg"}, +#line 713 "auto/mime_type_to_extension.gperf" + {"model/x3d+xml", "x3d"}, +#line 534 "auto/mime_type_to_extension.gperf" + {"application/x-hdf", "hdf"}, +#line 472 "auto/mime_type_to_extension.gperf" + {"application/vnd.yamaha.hv-dic", "hvd"}, +#line 241 "auto/mime_type_to_extension.gperf" + {"application/vnd.hbci", "hbci"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 474 "auto/mime_type_to_extension.gperf" + {"application/vnd.yamaha.hv-voice", "hvp"}, +#line 138 "auto/mime_type_to_extension.gperf" + {"application/vnd.adobe.xfdf", "xfdf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 473 "auto/mime_type_to_extension.gperf" + {"application/vnd.yamaha.hv-script", "hvs"}, + {"",nullptr}, +#line 712 "auto/mime_type_to_extension.gperf" + {"model/x3d+vrml", "x3dv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 518 "auto/mime_type_to_extension.gperf" + {"application/x-font-bdf", "bdf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 141 "auto/mime_type_to_extension.gperf" + {"application/vnd.airzip.filesecure.azs", "azs"}, +#line 202 "auto/mime_type_to_extension.gperf" + {"application/vnd.ezpix-package", "ez3"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 119 "auto/mime_type_to_extension.gperf" + {"application/sru+xml", "sru"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 212 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujitsu.oasys", "oas"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 39 "auto/mime_type_to_extension.gperf" + {"application/gpx+xml", "gpx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 215 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujitsu.oasysgp", "fg5"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 187 "auto/mime_type_to_extension.gperf" + {"application/vnd.dpgraph", "dpg"}, +#line 214 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujitsu.oasys3", "oa3"}, + {"",nullptr}, {"",nullptr}, +#line 687 "auto/mime_type_to_extension.gperf" + {"image/x-freehand", "fh"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 244 "auto/mime_type_to_extension.gperf" + {"application/vnd.hp-hpid", "hpid"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 216 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujitsu.oasysprs", "bh2"}, +#line 125 "auto/mime_type_to_extension.gperf" + {"application/vnd.3gpp.pic-bw-large", "plb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 649 "auto/mime_type_to_extension.gperf" + {"font/woff", "woff"}, +#line 657 "auto/mime_type_to_extension.gperf" + {"image/heif", "heif"}, + {"",nullptr}, +#line 733 "auto/mime_type_to_extension.gperf" + {"text/vnd.dvb.subtitle", "sub"}, +#line 289 "auto/mime_type_to_extension.gperf" + {"application/vnd.lotus-approach", "apr"}, +#line 38 "auto/mime_type_to_extension.gperf" + {"application/gml+xml", "gml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 127 "auto/mime_type_to_extension.gperf" + {"application/vnd.3gpp.pic-bw-var", "pvb"}, +#line 154 "auto/mime_type_to_extension.gperf" + {"application/vnd.blueice.multipass", "mpm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 123 "auto/mime_type_to_extension.gperf" + {"application/thraud+xml", "tfi"}, + {"",nullptr}, {"",nullptr}, +#line 420 "auto/mime_type_to_extension.gperf" + {"application/vnd.solent.sdkm+xml", "sdkm"}, + {"",nullptr}, +#line 573 "auto/mime_type_to_extension.gperf" + {"application/x-subrip", "srt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 163 "auto/mime_type_to_extension.gperf" + {"application/vnd.cluetrust.cartomobile-config", "c11amc"}, + {"",nullptr}, +#line 437 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.math", "sxm"}, +#line 118 "auto/mime_type_to_extension.gperf" + {"application/srgs+xml", "grxml"}, +#line 164 "auto/mime_type_to_extension.gperf" + {"application/vnd.cluetrust.cartomobile-config-pkg", "c11amz"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 397 "auto/mime_type_to_extension.gperf" + {"application/vnd.publishare-delta-tree", "qps"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 632 "auto/mime_type_to_extension.gperf" + {"audio/x-matroska", "mka"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 51 "auto/mime_type_to_extension.gperf" + {"application/mac-binhex40", "hqx"}, + {"",nullptr}, {"",nullptr}, +#line 346 "auto/mime_type_to_extension.gperf" + {"application/vnd.noblenet-directory", "nnd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 709 "auto/mime_type_to_extension.gperf" + {"model/vnd.vtu", "vtu"}, + {"",nullptr}, {"",nullptr}, +#line 784 "auto/mime_type_to_extension.gperf" + {"video/x-matroska", "mkv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 230 "auto/mime_type_to_extension.gperf" + {"application/vnd.google-earth.kmz", "kmz"}, + {"",nullptr}, +#line 650 "auto/mime_type_to_extension.gperf" + {"font/woff2", "woff2"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 589 "auto/mime_type_to_extension.gperf" + {"application/x-xfig", "fig"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 229 "auto/mime_type_to_extension.gperf" + {"application/vnd.google-earth.kml+xml", "kml"}, + {"",nullptr}, {"",nullptr}, +#line 563 "auto/mime_type_to_extension.gperf" + {"application/x-pkcs7-certreqresp", "p7r"}, + {"",nullptr}, +#line 669 "auto/mime_type_to_extension.gperf" + {"image/vnd.djvu", "djvu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 566 "auto/mime_type_to_extension.gperf" + {"application/x-sh", "sh"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 661 "auto/mime_type_to_extension.gperf" + {"image/ktx", "ktx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 61 "auto/mime_type_to_extension.gperf" + {"application/metalink4+xml", "meta4"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 506 "auto/mime_type_to_extension.gperf" + {"application/x-csh", "csh"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 86 "auto/mime_type_to_extension.gperf" + {"application/pkix-crl", "crl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 213 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujitsu.oasys2", "oa2"}, +#line 561 "auto/mime_type_to_extension.gperf" + {"application/x-pkcs12", "p12"}, +#line 321 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-fontobject", "eot"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 126 "auto/mime_type_to_extension.gperf" + {"application/vnd.3gpp.pic-bw-small", "psb"}, + {"",nullptr}, {"",nullptr}, +#line 704 "auto/mime_type_to_extension.gperf" + {"model/vnd.collada+xml", "dae"}, +#line 539 "auto/mime_type_to_extension.gperf" + {"application/x-lzh-compressed", "lzh"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 773 "auto/mime_type_to_extension.gperf" + {"video/vnd.dvb.file", "dvb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 696 "auto/mime_type_to_extension.gperf" + {"image/x-rgb", "rgb"}, + {"",nullptr}, +#line 201 "auto/mime_type_to_extension.gperf" + {"application/vnd.ezpix-album", "ez2"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 695 "auto/mime_type_to_extension.gperf" + {"image/x-portable-pixmap", "ppm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 30 "auto/mime_type_to_extension.gperf" + {"application/docbook+xml", "dbk"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 520 "auto/mime_type_to_extension.gperf" + {"application/x-font-linux-psf", "psf"}, +#line 465 "auto/mime_type_to_extension.gperf" + {"application/vnd.webturbo", "wtb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 656 "auto/mime_type_to_extension.gperf" + {"image/heic-sequence", "heics"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 94 "auto/mime_type_to_extension.gperf" + {"application/reginfo+xml", "rif"}, + {"",nullptr}, {"",nullptr}, +#line 484 "auto/mime_type_to_extension.gperf" + {"application/winhlp", "hlp"}, + {"",nullptr}, {"",nullptr}, +#line 70 "auto/mime_type_to_extension.gperf" + {"application/oebps-package+xml", "opf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 530 "auto/mime_type_to_extension.gperf" + {"application/x-glulx", "ulx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 140 "auto/mime_type_to_extension.gperf" + {"application/vnd.airzip.filesecure.azf", "azf"}, + {"",nullptr}, {"",nullptr}, +#line 537 "auto/mime_type_to_extension.gperf" + {"application/x-java-jnlp-file", "jnlp"}, +#line 703 "auto/mime_type_to_extension.gperf" + {"model/mesh", "msh"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 271 "auto/mime_type_to_extension.gperf" + {"application/vnd.kahootz", "ktz"}, +#line 295 "auto/mime_type_to_extension.gperf" + {"application/vnd.macports.portpkg", "portpkg"}, + {"",nullptr}, +#line 157 "auto/mime_type_to_extension.gperf" + {"application/vnd.chemdraw+xml", "cdxml"}, + {"",nullptr}, +#line 555 "auto/mime_type_to_extension.gperf" + {"application/x-mspublisher", "pub"}, +#line 239 "auto/mime_type_to_extension.gperf" + {"application/vnd.hal+xml", "hal"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 456 "auto/mime_type_to_extension.gperf" + {"application/vnd.unity", "unityweb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 590 "auto/mime_type_to_extension.gperf" + {"application/x-xliff+xml", "xlf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 597 "auto/mime_type_to_extension.gperf" + {"application/xhtml+xml", "xhtml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 243 "auto/mime_type_to_extension.gperf" + {"application/vnd.hp-hpgl", "hpgl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 137 "auto/mime_type_to_extension.gperf" + {"application/vnd.adobe.xdp+xml", "xdp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 344 "auto/mime_type_to_extension.gperf" + {"application/vnd.neurolanguage.nlu", "nlu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 193 "auto/mime_type_to_extension.gperf" + {"application/vnd.ecowin.chart", "mag"}, +#line 386 "auto/mime_type_to_extension.gperf" + {"application/vnd.osgi.subsystem", "esa"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 294 "auto/mime_type_to_extension.gperf" + {"application/vnd.lotus-wordpro", "lwp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 668 "auto/mime_type_to_extension.gperf" + {"image/vnd.dece.graphic", "uvi"}, + {"",nullptr}, {"",nullptr}, +#line 492 "auto/mime_type_to_extension.gperf" + {"application/x-authorware-map", "aam"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 736 "auto/mime_type_to_extension.gperf" + {"text/vnd.graphviz", "gv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 665 "auto/mime_type_to_extension.gperf" + {"image/svg+xml", "svg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 438 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.writer", "sxw"}, + {"",nullptr}, {"",nullptr}, +#line 274 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.kformula", "kfo"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 433 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.draw", "sxd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 496 "auto/mime_type_to_extension.gperf" + {"application/x-blorb", "blb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 276 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.kontour", "kon"}, +#line 113 "auto/mime_type_to_extension.gperf" + {"application/shf+xml", "shf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 562 "auto/mime_type_to_extension.gperf" + {"application/x-pkcs7-certificates", "p7b"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 45 "auto/mime_type_to_extension.gperf" + {"application/java-serialized-object", "ser"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 314 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-artgalry", "cil"}, + {"",nullptr}, +#line 82 "auto/mime_type_to_extension.gperf" + {"application/pkcs7-signature", "p7s"}, + {"",nullptr}, +#line 91 "auto/mime_type_to_extension.gperf" + {"application/prs.cww", "cww"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 350 "auto/mime_type_to_extension.gperf" + {"application/vnd.nokia.n-gage.symbian.install", "n-gage"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 775 "auto/mime_type_to_extension.gperf" + {"video/vnd.mpegurl", "mxu"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 585 "auto/mime_type_to_extension.gperf" + {"application/x-tgwallpattern", "tgv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 513 "auto/mime_type_to_extension.gperf" + {"application/x-dtbresource+xml", "res"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 787 "auto/mime_type_to_extension.gperf" + {"video/x-ms-vob", "vob"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 105 "auto/mime_type_to_extension.gperf" + {"application/sbml+xml", "sbml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 660 "auto/mime_type_to_extension.gperf" + {"image/jpeg", "jpg"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 220 "auto/mime_type_to_extension.gperf" + {"application/vnd.fuzzysheet", "fzs"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 342 "auto/mime_type_to_extension.gperf" + {"application/vnd.muvee.style", "msty"}, + {"",nullptr}, +#line 761 "auto/mime_type_to_extension.gperf" + {"video/jpeg", "jpgv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 488 "auto/mime_type_to_extension.gperf" + {"application/x-abiword", "abw"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 147 "auto/mime_type_to_extension.gperf" + {"application/vnd.anser-web-funds-transfer-initiation", "fti"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 560 "auto/mime_type_to_extension.gperf" + {"application/x-nzb", "nzb"}, +#line 545 "auto/mime_type_to_extension.gperf" + {"application/x-ms-wmz", "wmz"}, + {"",nullptr}, {"",nullptr}, +#line 526 "auto/mime_type_to_extension.gperf" + {"application/x-font-woff", "woff"}, + {"",nullptr}, {"",nullptr}, +#line 146 "auto/mime_type_to_extension.gperf" + {"application/vnd.anser-web-certificate-issue-initiation", "cii"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 658 "auto/mime_type_to_extension.gperf" + {"image/heif-sequence", "heifs"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 234 "auto/mime_type_to_extension.gperf" + {"application/vnd.groove-identity-message", "gim"}, +#line 250 "auto/mime_type_to_extension.gperf" + {"application/vnd.ibm.minipay", "mpy"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 637 "auto/mime_type_to_extension.gperf" + {"audio/x-pn-realaudio-plugin", "rmp"}, + {"",nullptr}, +#line 683 "auto/mime_type_to_extension.gperf" + {"image/webp", "webp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 627 "auto/mime_type_to_extension.gperf" + {"audio/webm", "weba"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 273 "auto/mime_type_to_extension.gperf" + {"application/vnd.kde.kchart", "chrt"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 779 "auto/mime_type_to_extension.gperf" + {"video/webm", "webm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 479 "auto/mime_type_to_extension.gperf" + {"application/vnd.yellowriver-custom-menu", "cmp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 606 "auto/mime_type_to_extension.gperf" + {"application/yin+xml", "yin"}, +#line 286 "auto/mime_type_to_extension.gperf" + {"application/vnd.llamagraphics.life-balance.desktop", "lbd"}, +#line 270 "auto/mime_type_to_extension.gperf" + {"application/vnd.joost.joda-archive", "joda"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 42 "auto/mime_type_to_extension.gperf" + {"application/inkml+xml", "ink"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 439 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.writer.global", "sxg"}, + {"",nullptr}, +#line 440 "auto/mime_type_to_extension.gperf" + {"application/vnd.sun.xml.writer.template", "stw"}, + {"",nullptr}, +#line 218 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujixerox.docuworks", "xdw"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 605 "auto/mime_type_to_extension.gperf" + {"application/yang", "yang"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 348 "auto/mime_type_to_extension.gperf" + {"application/vnd.noblenet-web", "nnw"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 87 "auto/mime_type_to_extension.gperf" + {"application/pkix-pkipath", "pkipath"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 337 "auto/mime_type_to_extension.gperf" + {"application/vnd.ms-works", "wps"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 741 "auto/mime_type_to_extension.gperf" + {"text/vnd.wap.wmlscript", "wmls"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 694 "auto/mime_type_to_extension.gperf" + {"image/x-portable-graymap", "pgm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 153 "auto/mime_type_to_extension.gperf" + {"application/vnd.audiograph", "aep"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 446 "auto/mime_type_to_extension.gperf" + {"application/vnd.syncml.dm+xml", "xdm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 156 "auto/mime_type_to_extension.gperf" + {"application/vnd.businessobjects", "rep"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 219 "auto/mime_type_to_extension.gperf" + {"application/vnd.fujixerox.docuworks.binder", "xbd"}, + {"",nullptr}, {"",nullptr}, +#line 507 "auto/mime_type_to_extension.gperf" + {"application/x-debian-package", "deb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 552 "auto/mime_type_to_extension.gperf" + {"application/x-msmediaview", "mvb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 92 "auto/mime_type_to_extension.gperf" + {"application/pskc+xml", "pskcxml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 485 "auto/mime_type_to_extension.gperf" + {"application/wsdl+xml", "wsdl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 287 "auto/mime_type_to_extension.gperf" + {"application/vnd.llamagraphics.life-balance.exchange+xml", "lbe"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 681 "auto/mime_type_to_extension.gperf" + {"image/vnd.wap.wbmp", "wbmp"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 740 "auto/mime_type_to_extension.gperf" + {"text/vnd.wap.wml", "wml"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 172 "auto/mime_type_to_extension.gperf" + {"application/vnd.crick.clicker.wordbank", "clkw"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 444 "auto/mime_type_to_extension.gperf" + {"application/vnd.syncml+xml", "xsm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 645 "auto/mime_type_to_extension.gperf" + {"chemical/x-xyz", "xyz"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 95 "auto/mime_type_to_extension.gperf" + {"application/relax-ng-compact-syntax", "rnc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 249 "auto/mime_type_to_extension.gperf" + {"application/vnd.hydrostatix.sof-data", "sfd-hdstx"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 443 "auto/mime_type_to_extension.gperf" + {"application/vnd.symbian.install", "sis"}, + {"",nullptr}, +#line 35 "auto/mime_type_to_extension.gperf" + {"application/epub+zip", "epub"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 142 "auto/mime_type_to_extension.gperf" + {"application/vnd.amazon.ebook", "azw"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 481 "auto/mime_type_to_extension.gperf" + {"application/vnd.zzazz.deck+xml", "zaz"}, + {"",nullptr}, +#line 512 "auto/mime_type_to_extension.gperf" + {"application/x-dtbook+xml", "dtb"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 445 "auto/mime_type_to_extension.gperf" + {"application/vnd.syncml.dm+wbxml", "bdm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 541 "auto/mime_type_to_extension.gperf" + {"application/x-mobipocket-ebook", "prc"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 707 "auto/mime_type_to_extension.gperf" + {"model/vnd.gtw", "gtw"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 493 "auto/mime_type_to_extension.gperf" + {"application/x-authorware-seg", "aas"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 693 "auto/mime_type_to_extension.gperf" + {"image/x-portable-bitmap", "pbm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 486 "auto/mime_type_to_extension.gperf" + {"application/wspolicy+xml", "wspolicy"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 460 "auto/mime_type_to_extension.gperf" + {"application/vnd.visionary", "vis"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 395 "auto/mime_type_to_extension.gperf" + {"application/vnd.previewsystems.box", "box"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 211 "auto/mime_type_to_extension.gperf" + {"application/vnd.fsc.weblaunch", "fsc"}, +#line 307 "auto/mime_type_to_extension.gperf" + {"application/vnd.mobius.mqy", "mqy"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 41 "auto/mime_type_to_extension.gperf" + {"application/hyperstudio", "stk"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 517 "auto/mime_type_to_extension.gperf" + {"application/x-fictionbook+xml", "fb2"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 99 "auto/mime_type_to_extension.gperf" + {"application/rpki-ghostbusters", "gbr"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 491 "auto/mime_type_to_extension.gperf" + {"application/x-authorware-bin", "aab"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 670 "auto/mime_type_to_extension.gperf" + {"image/vnd.dvb.subtitle", "sub"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 500 "auto/mime_type_to_extension.gperf" + {"application/x-cdlink", "vcd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 615 "auto/mime_type_to_extension.gperf" + {"audio/silk", "sil"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 242 "auto/mime_type_to_extension.gperf" + {"application/vnd.hhe.lesson-player", "les"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, +#line 667 "auto/mime_type_to_extension.gperf" + {"image/vnd.adobe.photoshop", "psd"}, +#line 692 "auto/mime_type_to_extension.gperf" + {"image/x-portable-anymap", "pnm"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 408 "auto/mime_type_to_extension.gperf" + {"application/vnd.sailingtracker.track", "st"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 306 "auto/mime_type_to_extension.gperf" + {"application/vnd.mobius.mbk", "mbk"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 568 "auto/mime_type_to_extension.gperf" + {"application/x-shockwave-flash", "swf"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 158 "auto/mime_type_to_extension.gperf" + {"application/vnd.chipnuts.karaoke-mmd", "mmd"}, + {"",nullptr}, +#line 700 "auto/mime_type_to_extension.gperf" + {"image/x-xwindowdump", "xwd"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 622 "auto/mime_type_to_extension.gperf" + {"audio/vnd.ms-playready.media.pya", "pya"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 776 "auto/mime_type_to_extension.gperf" + {"video/vnd.ms-playready.media.pyv", "pyv"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, +#line 528 "auto/mime_type_to_extension.gperf" + {"application/x-futuresplash", "spl"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 795 "auto/mime_type_to_extension.gperf" + {"x-conference/x-cooltalk", "ice"}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, + {"",nullptr}, {"",nullptr}, {"",nullptr}, {"",nullptr}, +#line 711 "auto/mime_type_to_extension.gperf" + {"model/x3d+binary", "x3db"} + }; + + if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) + { + register unsigned int key = mime_type_hash (str, len); + + if (key <= MAX_HASH_VALUE) + { + register const char *s = wordlist[key].mime_type; + + if ((((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gperf_case_strcmp (str, s)) + return &wordlist[key]; + } + } + return 0; +} +#line 796 "auto/mime_type_to_extension.gperf" + +const char *mime_type_to_extension(const char *mime_type, size_t mime_type_len) { + const auto &result = search_mime_type(mime_type, mime_type_len); + if (result == nullptr) { + return nullptr; + } + + return result->extension; +} diff --git a/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.gperf b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.gperf new file mode 100644 index 0000000000..269f07e17f --- /dev/null +++ b/protocols/Telegram/tdlib/td/tdutils/generate/auto/mime_type_to_extension.gperf @@ -0,0 +1,804 @@ +%struct-type +%ignore-case +%language=ANSI-C +%readonly-tables +%includes +%enum +%define slot-name mime_type +%define initializer-suffix ,nullptr +%define slot-name mime_type +%define hash-function-name mime_type_hash +%define lookup-function-name search_mime_type +struct mime_type_and_extension { + const char *mime_type; + const char *extension; +} +%% +"application/andrew-inset", "ez" +"application/applixware", "aw" +"application/atom+xml", "atom" +"application/atomcat+xml", "atomcat" +"application/atomsvc+xml", "atomsvc" +"application/ccxml+xml", "ccxml" +"application/cdmi-capability", "cdmia" +"application/cdmi-container", "cdmic" +"application/cdmi-domain", "cdmid" +"application/cdmi-object", "cdmio" +"application/cdmi-queue", "cdmiq" +"application/cu-seeme", "cu" +"application/davmount+xml", "davmount" +"application/docbook+xml", "dbk" +"application/dssc+der", "dssc" +"application/dssc+xml", "xdssc" +"application/ecmascript", "es" +"application/emma+xml", "emma" +"application/epub+zip", "epub" +"application/exi", "exi" +"application/font-tdpfr", "pfr" +"application/gml+xml", "gml" +"application/gpx+xml", "gpx" +"application/gxf", "gxf" +"application/hyperstudio", "stk" +"application/inkml+xml", "ink" +"application/ipfix", "ipfix" +"application/java-archive", "jar" +"application/java-serialized-object", "ser" +"application/java-vm", "class" +"application/javascript", "js" +"application/json", "json" +"application/jsonml+json", "jsonml" +"application/lost+xml", "lostxml" +"application/mac-binhex40", "hqx" +"application/mac-compactpro", "cpt" +"application/mads+xml", "mads" +"application/marc", "mrc" +"application/marcxml+xml", "mrcx" +"application/mathematica", "ma" +"application/mathml+xml", "mathml" +"application/mbox", "mbox" +"application/mediaservercontrol+xml", "mscml" +"application/metalink+xml", "metalink" +"application/metalink4+xml", "meta4" +"application/mets+xml", "mets" +"application/mods+xml", "mods" +"application/mp21", "m21" +"application/mp4", "mp4s" +"application/msword", "doc" +"application/mxf", "mxf" +"application/octet-stream", "bin" +"application/oda", "oda" +"application/oebps-package+xml", "opf" +"application/ogg", "ogx" +"application/omdoc+xml", "omdoc" +"application/onenote", "onetoc" +"application/oxps", "oxps" +"application/patch-ops-error+xml", "xer" +"application/pdf", "pdf" +"application/pgp-encrypted", "pgp" +"application/pgp-signature", "asc" +"application/pics-rules", "prf" +"application/pkcs10", "p10" +"application/pkcs7-mime", "p7m" +"application/pkcs7-signature", "p7s" +"application/pkcs8", "p8" +"application/pkix-attr-cert", "ac" +"application/pkix-cert", "cer" +"application/pkix-crl", "crl" +"application/pkix-pkipath", "pkipath" +"application/pkixcmp", "pki" +"application/pls+xml", "pls" +"application/postscript", "ai" +"application/prs.cww", "cww" +"application/pskc+xml", "pskcxml" +"application/rdf+xml", "rdf" +"application/reginfo+xml", "rif" +"application/relax-ng-compact-syntax", "rnc" +"application/resource-lists+xml", "rl" +"application/resource-lists-diff+xml", "rld" +"application/rls-services+xml", "rs" +"application/rpki-ghostbusters", "gbr" +"application/rpki-manifest", "mft" +"application/rpki-roa", "roa" +"application/rsd+xml", "rsd" +"application/rss+xml", "rss" +"application/rtf", "rtf" +"application/sbml+xml", "sbml" +"application/scvp-cv-request", "scq" +"application/scvp-cv-response", "scs" +"application/scvp-vp-request", "spq" +"application/scvp-vp-response", "spp" +"application/sdp", "sdp" +"application/set-payment-initiation", "setpay" +"application/set-registration-initiation", "setreg" +"application/shf+xml", "shf" +"application/smil+xml", "smi" +"application/sparql-query", "rq" +"application/sparql-results+xml", "srx" +"application/srgs", "gram" +"application/srgs+xml", "grxml" +"application/sru+xml", "sru" +"application/ssdl+xml", "ssdl" +"application/ssml+xml", "ssml" +"application/tei+xml", "tei" +"application/thraud+xml", "tfi" +"application/timestamped-data", "tsd" +"application/vnd.3gpp.pic-bw-large", "plb" +"application/vnd.3gpp.pic-bw-small", "psb" +"application/vnd.3gpp.pic-bw-var", "pvb" +"application/vnd.3gpp2.tcap", "tcap" +"application/vnd.3m.post-it-notes", "pwn" +"application/vnd.accpac.simply.aso", "aso" +"application/vnd.accpac.simply.imp", "imp" +"application/vnd.acucobol", "acu" +"application/vnd.acucorp", "atc" +"application/vnd.adobe.air-application-installer-package+zip", "air" +"application/vnd.adobe.formscentral.fcdt", "fcdt" +"application/vnd.adobe.fxp", "fxp" +"application/vnd.adobe.xdp+xml", "xdp" +"application/vnd.adobe.xfdf", "xfdf" +"application/vnd.ahead.space", "ahead" +"application/vnd.airzip.filesecure.azf", "azf" +"application/vnd.airzip.filesecure.azs", "azs" +"application/vnd.amazon.ebook", "azw" +"application/vnd.americandynamics.acc", "acc" +"application/vnd.amiga.ami", "ami" +"application/vnd.android.package-archive", "apk" +"application/vnd.anser-web-certificate-issue-initiation", "cii" +"application/vnd.anser-web-funds-transfer-initiation", "fti" +"application/vnd.antix.game-component", "atx" +"application/vnd.apple.installer+xml", "mpkg" +"application/vnd.apple.mpegurl", "m3u8" +"application/vnd.aristanetworks.swi", "swi" +"application/vnd.astraea-software.iota", "iota" +"application/vnd.audiograph", "aep" +"application/vnd.blueice.multipass", "mpm" +"application/vnd.bmi", "bmi" +"application/vnd.businessobjects", "rep" +"application/vnd.chemdraw+xml", "cdxml" +"application/vnd.chipnuts.karaoke-mmd", "mmd" +"application/vnd.cinderella", "cdy" +"application/vnd.claymore", "cla" +"application/vnd.cloanto.rp9", "rp9" +"application/vnd.clonk.c4group", "c4g" +"application/vnd.cluetrust.cartomobile-config", "c11amc" +"application/vnd.cluetrust.cartomobile-config-pkg", "c11amz" +"application/vnd.commonspace", "csp" +"application/vnd.contact.cmsg", "cdbcmsg" +"application/vnd.cosmocaller", "cmc" +"application/vnd.crick.clicker", "clkx" +"application/vnd.crick.clicker.keyboard", "clkk" +"application/vnd.crick.clicker.palette", "clkp" +"application/vnd.crick.clicker.template", "clkt" +"application/vnd.crick.clicker.wordbank", "clkw" +"application/vnd.criticaltools.wbs+xml", "wbs" +"application/vnd.ctc-posml", "pml" +"application/vnd.cups-ppd", "ppd" +"application/vnd.curl.car", "car" +"application/vnd.curl.pcurl", "pcurl" +"application/vnd.dart", "dart" +"application/vnd.data-vision.rdz", "rdz" +"application/vnd.dece.data", "uvf" +"application/vnd.dece.ttml+xml", "uvt" +"application/vnd.dece.unspecified", "uvx" +"application/vnd.dece.zip", "uvz" +"application/vnd.denovo.fcselayout-link", "fe_launch" +"application/vnd.dna", "dna" +"application/vnd.dolby.mlp", "mlp" +"application/vnd.dpgraph", "dpg" +"application/vnd.dreamfactory", "dfac" +"application/vnd.ds-keypoint", "kpxx" +"application/vnd.dvb.ait", "ait" +"application/vnd.dvb.service", "svc" +"application/vnd.dynageo", "geo" +"application/vnd.ecowin.chart", "mag" +"application/vnd.enliven", "nml" +"application/vnd.epson.esf", "esf" +"application/vnd.epson.msf", "msf" +"application/vnd.epson.quickanime", "qam" +"application/vnd.epson.salt", "slt" +"application/vnd.epson.ssf", "ssf" +"application/vnd.eszigno3+xml", "es3" +"application/vnd.ezpix-album", "ez2" +"application/vnd.ezpix-package", "ez3" +"application/vnd.fdf", "fdf" +"application/vnd.fdsn.mseed", "mseed" +"application/vnd.fdsn.seed", "seed" +"application/vnd.flographit", "gph" +"application/vnd.fluxtime.clip", "ftc" +"application/vnd.framemaker", "fm" +"application/vnd.frogans.fnc", "fnc" +"application/vnd.frogans.ltf", "ltf" +"application/vnd.fsc.weblaunch", "fsc" +"application/vnd.fujitsu.oasys", "oas" +"application/vnd.fujitsu.oasys2", "oa2" +"application/vnd.fujitsu.oasys3", "oa3" +"application/vnd.fujitsu.oasysgp", "fg5" +"application/vnd.fujitsu.oasysprs", "bh2" +"application/vnd.fujixerox.ddd", "ddd" +"application/vnd.fujixerox.docuworks", "xdw" +"application/vnd.fujixerox.docuworks.binder", "xbd" +"application/vnd.fuzzysheet", "fzs" +"application/vnd.genomatix.tuxedo", "txd" +"application/vnd.geogebra.file", "ggb" +"application/vnd.geogebra.tool", "ggt" +"application/vnd.geometry-explorer", "gex" +"application/vnd.geonext", "gxt" +"application/vnd.geoplan", "g2w" +"application/vnd.geospace", "g3w" +"application/vnd.gmx", "gmx" +"application/vnd.google-earth.kml+xml", "kml" +"application/vnd.google-earth.kmz", "kmz" +"application/vnd.grafeq", "gqf" +"application/vnd.groove-account", "gac" +"application/vnd.groove-help", "ghf" +"application/vnd.groove-identity-message", "gim" +"application/vnd.groove-injector", "grv" +"application/vnd.groove-tool-message", "gtm" +"application/vnd.groove-tool-template", "tpl" +"application/vnd.groove-vcard", "vcg" +"application/vnd.hal+xml", "hal" +"application/vnd.handheld-entertainment+xml", "zmm" +"application/vnd.hbci", "hbci" +"application/vnd.hhe.lesson-player", "les" +"application/vnd.hp-hpgl", "hpgl" +"application/vnd.hp-hpid", "hpid" +"application/vnd.hp-hps", "hps" +"application/vnd.hp-jlyt", "jlt" +"application/vnd.hp-pcl", "pcl" +"application/vnd.hp-pclxl", "pclxl" +"application/vnd.hydrostatix.sof-data", "sfd-hdstx" +"application/vnd.ibm.minipay", "mpy" +"application/vnd.ibm.modcap", "afp" +"application/vnd.ibm.rights-management", "irm" +"application/vnd.ibm.secure-container", "sc" +"application/vnd.iccprofile", "icc" +"application/vnd.igloader", "igl" +"application/vnd.immervision-ivp", "ivp" +"application/vnd.immervision-ivu", "ivu" +"application/vnd.insors.igm", "igm" +"application/vnd.intercon.formnet", "xpw" +"application/vnd.intergeo", "i2g" +"application/vnd.intu.qbo", "qbo" +"application/vnd.intu.qfx", "qfx" +"application/vnd.ipunplugged.rcprofile", "rcprofile" +"application/vnd.irepository.package+xml", "irp" +"application/vnd.is-xpr", "xpr" +"application/vnd.isac.fcs", "fcs" +"application/vnd.jam", "jam" +"application/vnd.jcp.javame.midlet-rms", "rms" +"application/vnd.jisp", "jisp" +"application/vnd.joost.joda-archive", "joda" +"application/vnd.kahootz", "ktz" +"application/vnd.kde.karbon", "karbon" +"application/vnd.kde.kchart", "chrt" +"application/vnd.kde.kformula", "kfo" +"application/vnd.kde.kivio", "flw" +"application/vnd.kde.kontour", "kon" +"application/vnd.kde.kpresenter", "kpr" +"application/vnd.kde.kspread", "ksp" +"application/vnd.kde.kword", "kwd" +"application/vnd.kenameaapp", "htke" +"application/vnd.kidspiration", "kia" +"application/vnd.kinar", "kne" +"application/vnd.koan", "skp" +"application/vnd.kodak-descriptor", "sse" +"application/vnd.las.las+xml", "lasxml" +"application/vnd.llamagraphics.life-balance.desktop", "lbd" +"application/vnd.llamagraphics.life-balance.exchange+xml", "lbe" +"application/vnd.lotus-1-2-3", "123" +"application/vnd.lotus-approach", "apr" +"application/vnd.lotus-freelance", "pre" +"application/vnd.lotus-notes", "nsf" +"application/vnd.lotus-organizer", "org" +"application/vnd.lotus-screencam", "scm" +"application/vnd.lotus-wordpro", "lwp" +"application/vnd.macports.portpkg", "portpkg" +"application/vnd.mcd", "mcd" +"application/vnd.medcalcdata", "mc1" +"application/vnd.mediastation.cdkey", "cdkey" +"application/vnd.mfer", "mwf" +"application/vnd.mfmp", "mfm" +"application/vnd.micrografx.flo", "flo" +"application/vnd.micrografx.igx", "igx" +"application/vnd.mif", "mif" +"application/vnd.mobius.daf", "daf" +"application/vnd.mobius.dis", "dis" +"application/vnd.mobius.mbk", "mbk" +"application/vnd.mobius.mqy", "mqy" +"application/vnd.mobius.msl", "msl" +"application/vnd.mobius.plc", "plc" +"application/vnd.mobius.txf", "txf" +"application/vnd.mophun.application", "mpn" +"application/vnd.mophun.certificate", "mpc" +"application/vnd.mozilla.xul+xml", "xul" +"application/vnd.ms-artgalry", "cil" +"application/vnd.ms-cab-compressed", "cab" +"application/vnd.ms-excel", "xls" +"application/vnd.ms-excel.addin.macroenabled.12", "xlam" +"application/vnd.ms-excel.sheet.binary.macroenabled.12", "xlsb" +"application/vnd.ms-excel.sheet.macroenabled.12", "xlsm" +"application/vnd.ms-excel.template.macroenabled.12", "xltm" +"application/vnd.ms-fontobject", "eot" +"application/vnd.ms-htmlhelp", "chm" +"application/vnd.ms-ims", "ims" +"application/vnd.ms-lrm", "lrm" +"application/vnd.ms-officetheme", "thmx" +"application/vnd.ms-pki.seccat", "cat" +"application/vnd.ms-pki.stl", "stl" +"application/vnd.ms-powerpoint", "ppt" +"application/vnd.ms-powerpoint.addin.macroenabled.12", "ppam" +"application/vnd.ms-powerpoint.presentation.macroenabled.12", "pptm" +"application/vnd.ms-powerpoint.slide.macroenabled.12", "sldm" +"application/vnd.ms-powerpoint.slideshow.macroenabled.12", "ppsm" +"application/vnd.ms-powerpoint.template.macroenabled.12", "potm" +"application/vnd.ms-project", "mpp" +"application/vnd.ms-word.document.macroenabled.12", "docm" +"application/vnd.ms-word.template.macroenabled.12", "dotm" +"application/vnd.ms-works", "wps" +"application/vnd.ms-wpl", "wpl" +"application/vnd.ms-xpsdocument", "xps" +"application/vnd.mseq", "mseq" +"application/vnd.musician", "mus" +"application/vnd.muvee.style", "msty" +"application/vnd.mynfc", "taglet" +"application/vnd.neurolanguage.nlu", "nlu" +"application/vnd.nitf", "ntf" +"application/vnd.noblenet-directory", "nnd" +"application/vnd.noblenet-sealer", "nns" +"application/vnd.noblenet-web", "nnw" +"application/vnd.nokia.n-gage.data", "ngdat" +"application/vnd.nokia.n-gage.symbian.install", "n-gage" +"application/vnd.nokia.radio-preset", "rpst" +"application/vnd.nokia.radio-presets", "rpss" +"application/vnd.novadigm.edm", "edm" +"application/vnd.novadigm.edx", "edx" +"application/vnd.novadigm.ext", "ext" +"application/vnd.oasis.opendocument.chart", "odc" +"application/vnd.oasis.opendocument.chart-template", "otc" +"application/vnd.oasis.opendocument.database", "odb" +"application/vnd.oasis.opendocument.formula", "odf" +"application/vnd.oasis.opendocument.formula-template", "odft" +"application/vnd.oasis.opendocument.graphics", "odg" +"application/vnd.oasis.opendocument.graphics-template", "otg" +"application/vnd.oasis.opendocument.image", "odi" +"application/vnd.oasis.opendocument.image-template", "oti" +"application/vnd.oasis.opendocument.presentation", "odp" +"application/vnd.oasis.opendocument.presentation-template", "otp" +"application/vnd.oasis.opendocument.spreadsheet", "ods" +"application/vnd.oasis.opendocument.spreadsheet-template", "ots" +"application/vnd.oasis.opendocument.text", "odt" +"application/vnd.oasis.opendocument.text-master", "odm" +"application/vnd.oasis.opendocument.text-template", "ott" +"application/vnd.oasis.opendocument.text-web", "oth" +"application/vnd.olpc-sugar", "xo" +"application/vnd.oma.dd2+xml", "dd2" +"application/vnd.openofficeorg.extension", "oxt" +"application/vnd.openxmlformats-officedocument.presentationml.presentation", "pptx" +"application/vnd.openxmlformats-officedocument.presentationml.slide", "sldx" +"application/vnd.openxmlformats-officedocument.presentationml.slideshow", "ppsx" +"application/vnd.openxmlformats-officedocument.presentationml.template", "potx" +"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx" +"application/vnd.openxmlformats-officedocument.spreadsheetml.template", "xltx" +"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "docx" +"application/vnd.openxmlformats-officedocument.wordprocessingml.template", "dotx" +"application/vnd.osgeo.mapguide.package", "mgp" +"application/vnd.osgi.dp", "dp" +"application/vnd.osgi.subsystem", "esa" +"application/vnd.palm", "pdb" +"application/vnd.pawaafile", "paw" +"application/vnd.pg.format", "str" +"application/vnd.pg.osasli", "ei6" +"application/vnd.picsel", "efif" +"application/vnd.pmi.widget", "wg" +"application/vnd.pocketlearn", "plf" +"application/vnd.powerbuilder6", "pbd" +"application/vnd.previewsystems.box", "box" +"application/vnd.proteus.magazine", "mgz" +"application/vnd.publishare-delta-tree", "qps" +"application/vnd.pvi.ptid1", "ptid" +"application/vnd.quark.quarkxpress", "qxd" +"application/vnd.realvnc.bed", "bed" +"application/vnd.recordare.musicxml", "mxl" +"application/vnd.recordare.musicxml+xml", "musicxml" +"application/vnd.rig.cryptonote", "cryptonote" +"application/vnd.rim.cod", "cod" +"application/vnd.rn-realmedia", "rm" +"application/vnd.rn-realmedia-vbr", "rmvb" +"application/vnd.route66.link66+xml", "link66" +"application/vnd.sailingtracker.track", "st" +"application/vnd.seemail", "see" +"application/vnd.sema", "sema" +"application/vnd.semd", "semd" +"application/vnd.semf", "semf" +"application/vnd.shana.informed.formdata", "ifm" +"application/vnd.shana.informed.formtemplate", "itp" +"application/vnd.shana.informed.interchange", "iif" +"application/vnd.shana.informed.package", "ipk" +"application/vnd.simtech-mindmapper", "twd" +"application/vnd.smaf", "mmf" +"application/vnd.smart.teacher", "teacher" +"application/vnd.solent.sdkm+xml", "sdkm" +"application/vnd.spotfire.dxp", "dxp" +"application/vnd.spotfire.sfs", "sfs" +"application/vnd.stardivision.calc", "sdc" +"application/vnd.stardivision.draw", "sda" +"application/vnd.stardivision.impress", "sdd" +"application/vnd.stardivision.math", "smf" +"application/vnd.stardivision.writer", "sdw" +"application/vnd.stardivision.writer-global", "sgl" +"application/vnd.stepmania.package", "smzip" +"application/vnd.stepmania.stepchart", "sm" +"application/vnd.sun.xml.calc", "sxc" +"application/vnd.sun.xml.calc.template", "stc" +"application/vnd.sun.xml.draw", "sxd" +"application/vnd.sun.xml.draw.template", "std" +"application/vnd.sun.xml.impress", "sxi" +"application/vnd.sun.xml.impress.template", "sti" +"application/vnd.sun.xml.math", "sxm" +"application/vnd.sun.xml.writer", "sxw" +"application/vnd.sun.xml.writer.global", "sxg" +"application/vnd.sun.xml.writer.template", "stw" +"application/vnd.sus-calendar", "sus" +"application/vnd.svd", "svd" +"application/vnd.symbian.install", "sis" +"application/vnd.syncml+xml", "xsm" +"application/vnd.syncml.dm+wbxml", "bdm" +"application/vnd.syncml.dm+xml", "xdm" +"application/vnd.tao.intent-module-archive", "tao" +"application/vnd.tcpdump.pcap", "pcap" +"application/vnd.tmobile-livetv", "tmo" +"application/vnd.trid.tpt", "tpt" +"application/vnd.triscape.mxs", "mxs" +"application/vnd.trueapp", "tra" +"application/vnd.ufdl", "ufd" +"application/vnd.uiq.theme", "utz" +"application/vnd.umajin", "umj" +"application/vnd.unity", "unityweb" +"application/vnd.uoml+xml", "uoml" +"application/vnd.vcx", "vcx" +"application/vnd.visio", "vsd" +"application/vnd.visionary", "vis" +"application/vnd.vsf", "vsf" +"application/vnd.wap.wbxml", "wbxml" +"application/vnd.wap.wmlc", "wmlc" +"application/vnd.wap.wmlscriptc", "wmlsc" +"application/vnd.webturbo", "wtb" +"application/vnd.wolfram.player", "nbp" +"application/vnd.wordperfect", "wpd" +"application/vnd.wqd", "wqd" +"application/vnd.wt.stf", "stf" +"application/vnd.xara", "xar" +"application/vnd.xfdl", "xfdl" +"application/vnd.yamaha.hv-dic", "hvd" +"application/vnd.yamaha.hv-script", "hvs" +"application/vnd.yamaha.hv-voice", "hvp" +"application/vnd.yamaha.openscoreformat", "osf" +"application/vnd.yamaha.openscoreformat.osfpvg+xml", "osfpvg" +"application/vnd.yamaha.smaf-audio", "saf" +"application/vnd.yamaha.smaf-phrase", "spf" +"application/vnd.yellowriver-custom-menu", "cmp" +"application/vnd.zul", "zir" +"application/vnd.zzazz.deck+xml", "zaz" +"application/voicexml+xml", "vxml" +"application/widget", "wgt" +"application/winhlp", "hlp" +"application/wsdl+xml", "wsdl" +"application/wspolicy+xml", "wspolicy" +"application/x-7z-compressed", "7z" +"application/x-abiword", "abw" +"application/x-ace-compressed", "ace" +"application/x-apple-diskimage", "dmg" +"application/x-authorware-bin", "aab" +"application/x-authorware-map", "aam" +"application/x-authorware-seg", "aas" +"application/x-bcpio", "bcpio" +"application/x-bittorrent", "torrent" +"application/x-blorb", "blb" +"application/x-bzip", "bz" +"application/x-bzip2", "bz2" +"application/x-cbr", "cbr" +"application/x-cdlink", "vcd" +"application/x-cfs-compressed", "cfs" +"application/x-chat", "chat" +"application/x-chess-pgn", "pgn" +"application/x-conference", "nsc" +"application/x-cpio", "cpio" +"application/x-csh", "csh" +"application/x-debian-package", "deb" +"application/x-dgc-compressed", "dgc" +"application/x-director", "dir" +"application/x-doom", "wad" +"application/x-dtbncx+xml", "ncx" +"application/x-dtbook+xml", "dtb" +"application/x-dtbresource+xml", "res" +"application/x-dvi", "dvi" +"application/x-envoy", "evy" +"application/x-eva", "eva" +"application/x-fictionbook+xml", "fb2" +"application/x-font-bdf", "bdf" +"application/x-font-ghostscript", "gsf" +"application/x-font-linux-psf", "psf" +"application/x-font-otf", "otf" +"application/x-font-pcf", "pcf" +"application/x-font-snf", "snf" +"application/x-font-ttf", "ttf" +"application/x-font-type1", "pfa" +"application/x-font-woff", "woff" +"application/x-freearc", "arc" +"application/x-futuresplash", "spl" +"application/x-gca-compressed", "gca" +"application/x-glulx", "ulx" +"application/x-gnumeric", "gnumeric" +"application/x-gramps-xml", "gramps" +"application/x-gtar", "gtar" +"application/x-hdf", "hdf" +"application/x-install-instructions", "install" +"application/x-iso9660-image", "iso" +"application/x-java-jnlp-file", "jnlp" +"application/x-latex", "latex" +"application/x-lzh-compressed", "lzh" +"application/x-mie", "mie" +"application/x-mobipocket-ebook", "prc" +"application/x-ms-application", "application" +"application/x-ms-shortcut", "lnk" +"application/x-ms-wmd", "wmd" +"application/x-ms-wmz", "wmz" +"application/x-ms-xbap", "xbap" +"application/x-msaccess", "mdb" +"application/x-msbinder", "obd" +"application/x-mscardfile", "crd" +"application/x-msclip", "clp" +"application/x-msdownload", "exe" +"application/x-msmediaview", "mvb" +"application/x-msmetafile", "wmf" +"application/x-msmoney", "mny" +"application/x-mspublisher", "pub" +"application/x-msschedule", "scd" +"application/x-msterminal", "trm" +"application/x-mswrite", "wri" +"application/x-netcdf", "nc" +"application/x-nzb", "nzb" +"application/x-pkcs12", "p12" +"application/x-pkcs7-certificates", "p7b" +"application/x-pkcs7-certreqresp", "p7r" +"application/x-rar-compressed", "rar" +"application/x-research-info-systems", "ris" +"application/x-sh", "sh" +"application/x-shar", "shar" +"application/x-shockwave-flash", "swf" +"application/x-silverlight-app", "xap" +"application/x-sql", "sql" +"application/x-stuffit", "sit" +"application/x-stuffitx", "sitx" +"application/x-subrip", "srt" +"application/x-sv4cpio", "sv4cpio" +"application/x-sv4crc", "sv4crc" +"application/x-t3vm-image", "t3" +"application/x-tads", "gam" +"application/x-tar", "tar" +"application/x-tcl", "tcl" +"application/x-tex", "tex" +"application/x-tex-tfm", "tfm" +"application/x-texinfo", "texinfo" +"application/x-tgif", "obj" +"application/x-tgsticker", "tgs" +"application/x-tgwallpattern", "tgv" +"application/x-ustar", "ustar" +"application/x-wais-source", "src" +"application/x-x509-ca-cert", "der" +"application/x-xfig", "fig" +"application/x-xliff+xml", "xlf" +"application/x-xpinstall", "xpi" +"application/x-xz", "xz" +"application/x-zmachine", "z1" +"application/xaml+xml", "xaml" +"application/xcap-diff+xml", "xdf" +"application/xenc+xml", "xenc" +"application/xhtml+xml", "xhtml" +"application/xml", "xml" +"application/xml-dtd", "dtd" +"application/xop+xml", "xop" +"application/xproc+xml", "xpl" +"application/xslt+xml", "xslt" +"application/xspf+xml", "xspf" +"application/xv+xml", "mxml" +"application/yang", "yang" +"application/yin+xml", "yin" +"application/zip", "zip" +"audio/adpcm", "adp" +"audio/basic", "au" +"audio/midi", "midi" +"audio/mp4", "m4a" +"audio/mpeg", "mp3" +"audio/ogg", "oga" +"audio/s3m", "s3m" +"audio/silk", "sil" +"audio/vnd.dece.audio", "uva" +"audio/vnd.digital-winds", "eol" +"audio/vnd.dra", "dra" +"audio/vnd.dts", "dts" +"audio/vnd.dts.hd", "dtshd" +"audio/vnd.lucent.voice", "lvp" +"audio/vnd.ms-playready.media.pya", "pya" +"audio/vnd.nuera.ecelp4800", "ecelp4800" +"audio/vnd.nuera.ecelp7470", "ecelp7470" +"audio/vnd.nuera.ecelp9600", "ecelp9600" +"audio/vnd.rip", "rip" +"audio/webm", "weba" +"audio/x-aac", "aac" +"audio/x-aiff", "aif" +"audio/x-caf", "caf" +"audio/x-flac", "flac" +"audio/x-matroska", "mka" +"audio/x-mpegurl", "m3u" +"audio/x-ms-wax", "wax" +"audio/x-ms-wma", "wma" +"audio/x-pn-realaudio", "ram" +"audio/x-pn-realaudio-plugin", "rmp" +"audio/x-wav", "wav" +"audio/xm", "xm" +"chemical/x-cdx", "cdx" +"chemical/x-cif", "cif" +"chemical/x-cmdf", "cmdf" +"chemical/x-cml", "cml" +"chemical/x-csml", "csml" +"chemical/x-xyz", "xyz" +"font/collection", "ttc" +"font/otf", "otf" +"font/ttf", "ttf" +"font/woff", "woff" +"font/woff2", "woff2" +"image/bmp", "bmp" +"image/cgm", "cgm" +"image/g3fax", "g3" +"image/gif", "gif" +"image/heic", "heic" +"image/heic-sequence", "heics" +"image/heif", "heif" +"image/heif-sequence", "heifs" +"image/ief", "ief" +"image/jpeg", "jpg" +"image/ktx", "ktx" +"image/png", "png" +"image/prs.btif", "btif" +"image/sgi", "sgi" +"image/svg+xml", "svg" +"image/tiff", "tiff" +"image/vnd.adobe.photoshop", "psd" +"image/vnd.dece.graphic", "uvi" +"image/vnd.djvu", "djvu" +"image/vnd.dvb.subtitle", "sub" +"image/vnd.dwg", "dwg" +"image/vnd.dxf", "dxf" +"image/vnd.fastbidsheet", "fbs" +"image/vnd.fpx", "fpx" +"image/vnd.fst", "fst" +"image/vnd.fujixerox.edmics-mmr", "mmr" +"image/vnd.fujixerox.edmics-rlc", "rlc" +"image/vnd.ms-modi", "mdi" +"image/vnd.ms-photo", "wdp" +"image/vnd.net-fpx", "npx" +"image/vnd.wap.wbmp", "wbmp" +"image/vnd.xiff", "xif" +"image/webp", "webp" +"image/x-3ds", "3ds" +"image/x-cmu-raster", "ras" +"image/x-cmx", "cmx" +"image/x-freehand", "fh" +"image/x-icon", "ico" +"image/x-mrsid-image", "sid" +"image/x-pcx", "pcx" +"image/x-pict", "pic" +"image/x-portable-anymap", "pnm" +"image/x-portable-bitmap", "pbm" +"image/x-portable-graymap", "pgm" +"image/x-portable-pixmap", "ppm" +"image/x-rgb", "rgb" +"image/x-tga", "tga" +"image/x-xbitmap", "xbm" +"image/x-xpixmap", "xpm" +"image/x-xwindowdump", "xwd" +"message/rfc822", "eml" +"model/iges", "igs" +"model/mesh", "msh" +"model/vnd.collada+xml", "dae" +"model/vnd.dwf", "dwf" +"model/vnd.gdl", "gdl" +"model/vnd.gtw", "gtw" +"model/vnd.mts", "mts" +"model/vnd.vtu", "vtu" +"model/vrml", "wrl" +"model/x3d+binary", "x3db" +"model/x3d+vrml", "x3dv" +"model/x3d+xml", "x3d" +"text/cache-manifest", "appcache" +"text/calendar", "ics" +"text/css", "css" +"text/csv", "csv" +"text/html", "html" +"text/n3", "n3" +"text/plain", "txt" +"text/prs.lines.tag", "dsc" +"text/richtext", "rtx" +"text/sgml", "sgml" +"text/tab-separated-values", "tsv" +"text/troff", "t" +"text/turtle", "ttl" +"text/uri-list", "uri" +"text/vcard", "vcard" +"text/vnd.curl", "curl" +"text/vnd.curl.dcurl", "dcurl" +"text/vnd.curl.mcurl", "mcurl" +"text/vnd.curl.scurl", "scurl" +"text/vnd.dvb.subtitle", "sub" +"text/vnd.fly", "fly" +"text/vnd.fmi.flexstor", "flx" +"text/vnd.graphviz", "gv" +"text/vnd.in3d.3dml", "3dml" +"text/vnd.in3d.spot", "spot" +"text/vnd.sun.j2me.app-descriptor", "jad" +"text/vnd.wap.wml", "wml" +"text/vnd.wap.wmlscript", "wmls" +"text/x-asm", "asm" +"text/x-c", "c" +"text/x-fortran", "f" +"text/x-java-source", "java" +"text/x-nfo", "nfo" +"text/x-opml", "opml" +"text/x-pascal", "pas" +"text/x-php", "php" +"text/x-setext", "etx" +"text/x-sfv", "sfv" +"text/x-uuencode", "uu" +"text/x-vcalendar", "vcs" +"text/x-vcard", "vcf" +"video/3gpp", "3gp" +"video/3gpp2", "3g2" +"video/h261", "h261" +"video/h263", "h263" +"video/h264", "h264" +"video/h265", "h265" +"video/jpeg", "jpgv" +"video/jpm", "jpm" +"video/mj2", "mj2" +"video/mp4", "mp4" +"video/mpeg", "mpeg" +"video/ogg", "ogv" +"video/quicktime", "mov" +"video/vnd.dece.hd", "uvh" +"video/vnd.dece.mobile", "uvm" +"video/vnd.dece.pd", "uvp" +"video/vnd.dece.sd", "uvs" +"video/vnd.dece.video", "uvv" +"video/vnd.dvb.file", "dvb" +"video/vnd.fvt", "fvt" +"video/vnd.mpegurl", "mxu" +"video/vnd.ms-playready.media.pyv", "pyv" +"video/vnd.uvvu.mp4", "uvu" +"video/vnd.vivo", "viv" +"video/webm", "webm" +"video/x-f4v", "f4v" +"video/x-fli", "fli" +"video/x-flv", "flv" +"video/x-m4v", "m4v" +"video/x-matroska", "mkv" +"video/x-mng", "mng" +"video/x-ms-asf", "asf" +"video/x-ms-vob", "vob" +"video/x-ms-wm", "wm" +"video/x-ms-wmv", "wmv" +"video/x-ms-wmx", "wmx" +"video/x-ms-wvx", "wvx" +"video/x-msvideo", "avi" +"video/x-sgi-movie", "movie" +"video/x-smv", "smv" +"x-conference/x-cooltalk", "ice" +%% +const char *mime_type_to_extension(const char *mime_type, size_t mime_type_len) { + const auto &result = search_mime_type(mime_type, mime_type_len); + if (result == nullptr) { + return nullptr; + } + + return result->extension; +} |